summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
author宋文武 <iyzsong@member.fsf.org>2023-08-17 18:38:23 +0800
committer宋文武 <iyzsong@member.fsf.org>2023-08-17 18:38:23 +0800
commit0ffbdf34567aedb0ae6cef6b869370a415cfaa65 (patch)
tree76425d441657ffbc6cfe996144cda706eb997a12 /gnu
parentd9320de5aa9b77adf5fa31c6429ec8eb08c24458 (diff)
parent1b2d43fe016848ea2ec16ff18cbc14340944fc4e (diff)
downloadguix-0ffbdf34567aedb0ae6cef6b869370a415cfaa65.tar.gz
Merge remote-tracking branch 'origin/master' into kde-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk15
-rw-r--r--gnu/packages/accessibility.scm4
-rw-r--r--gnu/packages/admin.scm9
-rw-r--r--gnu/packages/audio.scm15
-rw-r--r--gnu/packages/backup.scm4
-rw-r--r--gnu/packages/build-tools.scm2
-rw-r--r--gnu/packages/ci.scm6
-rw-r--r--gnu/packages/conky.scm4
-rw-r--r--gnu/packages/cpp.scm4
-rw-r--r--gnu/packages/cran.scm4
-rw-r--r--gnu/packages/crates-gtk.scm231
-rw-r--r--gnu/packages/crates-io.scm12287
-rw-r--r--gnu/packages/databases.scm18
-rw-r--r--gnu/packages/dezyne.scm6
-rw-r--r--gnu/packages/disk.scm74
-rw-r--r--gnu/packages/display-managers.scm4
-rw-r--r--gnu/packages/dns.scm71
-rw-r--r--gnu/packages/dunst.scm4
-rw-r--r--gnu/packages/ebook.scm3
-rw-r--r--gnu/packages/education.scm6
-rw-r--r--gnu/packages/emacs-xyz.scm30
-rw-r--r--gnu/packages/engineering.scm2
-rw-r--r--gnu/packages/file-systems.scm7
-rw-r--r--gnu/packages/fonts.scm4
-rw-r--r--gnu/packages/freedesktop.scm132
-rw-r--r--gnu/packages/fvwm.scm4
-rw-r--r--gnu/packages/games.scm51
-rw-r--r--gnu/packages/genealogy.scm2
-rw-r--r--gnu/packages/geo.scm12
-rw-r--r--gnu/packages/gettext.scm6
-rw-r--r--gnu/packages/gnome.scm21
-rw-r--r--gnu/packages/golang.scm39
-rw-r--r--gnu/packages/gpodder.scm4
-rw-r--r--gnu/packages/graphics.scm2
-rw-r--r--gnu/packages/guile-xyz.scm10
-rw-r--r--gnu/packages/image-processing.scm4
-rw-r--r--gnu/packages/image.scm19
-rw-r--r--gnu/packages/imagemagick.scm4
-rw-r--r--gnu/packages/java.scm2
-rw-r--r--gnu/packages/language.scm2
-rw-r--r--gnu/packages/linux.scm35
-rw-r--r--gnu/packages/lua.scm4
-rw-r--r--gnu/packages/lxqt.scm6
-rw-r--r--gnu/packages/machine-learning.scm19
-rw-r--r--gnu/packages/mail.scm61
-rw-r--r--gnu/packages/mastodon.scm4
-rw-r--r--gnu/packages/maths.scm6
-rw-r--r--gnu/packages/mc.scm100
-rw-r--r--gnu/packages/messaging.scm2
-rw-r--r--gnu/packages/mpd.scm16
-rw-r--r--gnu/packages/music.scm18
-rw-r--r--gnu/packages/networking.scm98
-rw-r--r--gnu/packages/noweb.scm112
-rw-r--r--gnu/packages/ntp.scm54
-rw-r--r--gnu/packages/openbox.scm4
-rw-r--r--gnu/packages/package-management.scm2
-rw-r--r--gnu/packages/patches/ddclient-skip-test.patch43
-rw-r--r--gnu/packages/patches/elogind-fix-rpath.patch60
-rw-r--r--gnu/packages/patches/elogind-revert-polkit-detection.patch41
-rw-r--r--gnu/packages/patches/fbreader-fix-icon.patch29
-rw-r--r--gnu/packages/patches/highlight-gui-data-dir.patch51
-rw-r--r--gnu/packages/patches/maturin-no-cross-compile.patch55
-rw-r--r--gnu/packages/patches/mcrl2-fix-1687.patch337
-rw-r--r--gnu/packages/patches/mcrl2-fix-counterexample.patch32
-rw-r--r--gnu/packages/patches/openssh-hurd.patch30
-rw-r--r--gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch242
-rw-r--r--gnu/packages/patches/rust-nettle-sys-disable-vendor.patch48
-rw-r--r--gnu/packages/patches/rust-ring-0.16-missing-files.patch2293
-rw-r--r--gnu/packages/patches/rust-ring-0.16-test-files.patch54
-rw-r--r--gnu/packages/pdf.scm2
-rw-r--r--gnu/packages/photo.scm65
-rw-r--r--gnu/packages/pretty-print.scm135
-rw-r--r--gnu/packages/python-crypto.scm23
-rw-r--r--gnu/packages/python-xyz.scm8
-rw-r--r--gnu/packages/rdesktop.scm116
-rw-r--r--gnu/packages/rust-apps.scm278
-rw-r--r--gnu/packages/rust.scm17
-rw-r--r--gnu/packages/scheme.scm2
-rw-r--r--gnu/packages/sequoia.scm615
-rw-r--r--gnu/packages/shells.scm71
-rw-r--r--gnu/packages/ssh.scm19
-rw-r--r--gnu/packages/stalonetray.scm49
-rw-r--r--gnu/packages/syndication.scm7
-rw-r--r--gnu/packages/tex.scm16881
-rw-r--r--gnu/packages/textutils.scm4
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/tryton.scm2
-rw-r--r--gnu/packages/version-control.scm8
-rw-r--r--gnu/packages/web-browsers.scm4
-rw-r--r--gnu/packages/web.scm19
-rw-r--r--gnu/packages/wm.scm26
-rw-r--r--gnu/packages/xdisorg.scm143
-rw-r--r--gnu/packages/xml.scm19
-rw-r--r--gnu/services/authentication.scm2
-rw-r--r--gnu/services/base.scm65
-rw-r--r--gnu/services/databases.scm37
-rw-r--r--gnu/services/desktop.scm4
-rw-r--r--gnu/services/dns.scm168
-rw-r--r--gnu/services/kerberos.scm4
-rw-r--r--gnu/services/linux.scm199
-rw-r--r--gnu/services/pam-mount.scm2
-rw-r--r--gnu/tests/cachefilesd.scm71
-rw-r--r--gnu/tests/desktop.scm2
-rw-r--r--gnu/tests/pam.scm72
105 files changed, 30882 insertions, 5249 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 7461cbf07a..9db92577a3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -588,7 +588,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/squirrel.scm			\
   %D%/packages/ssh.scm				\
   %D%/packages/sssd.scm				\
-  %D%/packages/stalonetray.scm			\
   %D%/packages/statistics.scm			\
   %D%/packages/stb.scm				\
   %D%/packages/stenography.scm			\
@@ -770,6 +769,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/tests.scm					\
   %D%/tests/audio.scm				\
   %D%/tests/base.scm				\
+  %D%/tests/cachefilesd.scm			\
   %D%/tests/ci.scm				\
   %D%/tests/cups.scm				\
   %D%/tests/databases.scm			\
@@ -1056,7 +1056,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
   %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
-  %D%/packages/patches/ddclient-skip-test.patch			\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
   %D%/packages/patches/dee-vapi.patch			\
@@ -1089,7 +1088,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/elm-ghc9.2.patch	\
   %D%/packages/patches/elm-offline-package-registry.patch	\
   %D%/packages/patches/elm-reactor-static-files.patch		\
-  %D%/packages/patches/elogind-revert-polkit-detection.patch	\
+  %D%/packages/patches/elogind-fix-rpath.patch			\
   %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch	\
   %D%/packages/patches/emacs-exec-path.patch			\
   %D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch	\
@@ -1137,6 +1136,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fasthenry-spSolve.patch			\
   %D%/packages/patches/fasthenry-spFactor.patch			\
   %D%/packages/patches/fbreader-curl-7.62.patch		\
+  %D%/packages/patches/fbreader-fix-icon.patch		\
   %D%/packages/patches/fenics-dolfin-algorithm.patch		\
   %D%/packages/patches/fenics-dolfin-demo-init.patch		\
   %D%/packages/patches/fenics-dolfin-boost.patch		\
@@ -1373,6 +1373,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/hdf-eos5-fortrantests.patch		\
   %D%/packages/patches/heimdal-CVE-2022-45142.patch		\
   %D%/packages/patches/helm-fix-gcc-9-build.patch		\
+  %D%/packages/patches/highlight-gui-data-dir.patch		\
   %D%/packages/patches/http-parser-CVE-2020-8287.patch		\
   %D%/packages/patches/htslib-for-stringtie.patch		\
   %D%/packages/patches/hubbub-sort-entities.patch		\
@@ -1588,14 +1589,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/maxima-defsystem-mkdir.patch		\
   %D%/packages/patches/maven-generate-component-xml.patch		\
   %D%/packages/patches/maven-generate-javax-inject-named.patch		\
-  %D%/packages/patches/mcrl2-fix-1687.patch			\
-  %D%/packages/patches/mcrl2-fix-counterexample.patch		\
   %D%/packages/patches/mcrypt-CVE-2012-4409.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4426.patch			\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
   %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
   %D%/packages/patches/libsigrokdecode-python3.9-fix.patch	\
+  %D%/packages/patches/maturin-no-cross-compile.patch		\
   %D%/packages/patches/mecab-variable-param.patch		\
   %D%/packages/patches/memtest86+-build-reproducibly.patch	\
   %D%/packages/patches/mercurial-hg-extension-path.patch	\
@@ -1684,7 +1684,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch	\
   %D%/packages/patches/openmpi-mtl-priorities.patch		\
   %D%/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch    \
-  %D%/packages/patches/openssh-hurd.patch			\
   %D%/packages/patches/openssh-trust-guix-store-directory.patch	\
   %D%/packages/patches/openresolv-restartcmd-guix.patch	\
   %D%/packages/patches/openrgb-unbundle-hueplusplus.patch	\
@@ -1779,6 +1778,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/plib-CVE-2011-4620.patch		\
   %D%/packages/patches/plib-CVE-2012-4552.patch		\
   %D%/packages/patches/plotutils-spline-test.patch		\
+  %D%/packages/patches/po4a-partial-texinfo-menu-fix.patch	\
   %D%/packages/patches/polkit-disable-systemd.patch		\
   %D%/packages/patches/portaudio-audacity-compat.patch		\
   %D%/packages/patches/portmidi-modular-build.patch		\
@@ -1913,12 +1913,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
   %D%/packages/patches/rustc-1.54.0-src.patch			\
   %D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.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	\
   %D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch	\
   %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-nettle-sys-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      \
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index e0a362ae4a..0b5fb79f13 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
-;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2022 Hunter Jozwiak <hunter.t.joz@gmail.com>
 ;;; Copyright © 2023 Ivan Gankevich <igankevich@capybaramail.xyz>
 ;;;
@@ -212,7 +212,7 @@ incorporated.")
     (inputs
      (list libxml2
            libglade
-           librsvg
+           (librsvg-for-system)
            gstreamer
            cairo
            gtk+
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 33f9b703a7..e96c14977c 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -55,7 +55,7 @@
 ;;; Copyright © 2022 ( <paren@disroot.org>
 ;;; Copyright © 2022, 2023 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
-;;; Copyright © 2023 Juliana Sims <jtsims@protonmail.com>
+;;; Copyright © 2023 Juliana Sims <juli@incana.org>
 ;;; Copyright © 2023 Lu Hui <luhux76@gmail.com>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 Alexey Abramov <levenson@mmer.org>
@@ -4025,6 +4025,11 @@ you are running, what theme or icon set you are using, etc.")
           (delete 'configure)
           (add-before 'build 'patch-source-paths
             (lambda _
+              (substitute* "fetch.c"
+                (("grep")
+                 #$(file-append grep "/bin/grep"))
+                (("awk")
+                 #$(file-append gawk "/bin/awk")))
               (substitute* "uwufetch.c"
                 (("(/usr(/local)?)(.*;)" all _ _ rest)
                  (string-append #$output rest)))))
@@ -4033,6 +4038,8 @@ you are running, what theme or icon set you are using, etc.")
             (lambda _
               (mkdir-p (string-append #$output "/include")))))))
     (inputs (list lshw
+                  gawk
+                  grep
                   ;; viu XXX not yet packaged in Guix
                   xwininfo))
     (home-page "https://github.com/TheDarkBug/uwufetch")
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8c15189b2b..5b24197fe2 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -37,7 +37,7 @@
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
 ;;; Copyright © 2022 Arjan Adriaanse <arjan@adriaan.se>
-;;; Copyright © 2022, 2023 Juliana Sims <jtsims@protonmail.com>
+;;; Copyright © 2022, 2023 Juliana Sims <juli@incana.org>
 ;;; Copyright © 2022 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2022 Andy Tai <atai@atai.org>
 ;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
@@ -5936,14 +5936,14 @@ while still staying in time.")
 (define-public butt
   (package
     (name "butt")
-    (version "0.1.34")
+    (version "0.1.38")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/butt/butt/butt-"
                                   version "/butt-" version ".tar.gz"))
               (sha256
                (base32
-                "0zd1g1673pv8z437y34fllxska8dzpd7mygpham35pzwpdyc5c1p"))
+                "10i3xpxzccdl4pidiyymw9cfavhy50yhn7xi5bd77y91f2903kp9"))
               (modules '((guix build utils)))
               (snippet
                '(substitute* "src/butt.cpp"
@@ -5966,9 +5966,10 @@ while still staying in time.")
            (uri (string-append "https://danielnoethen.de/butt/butt-"
                                version "_manual.pdf"))
            (sha256
-            (base32 "0kadqzzbk25n0aqxgbqhg4mq4hsbjq44phzcx5qj1b8847yzz8si"))))))
+            (base32 "04aixxqshfj11ja3ifh0zvywl2mqzmymppcd0xj8sv0j7whjibaq"))))))
     (inputs
-     (list dbus
+     (list curl
+           dbus
            flac
            fltk
            lame
@@ -6253,7 +6254,7 @@ and DSD streams.")
 (define-public qpwgraph
   (package
     (name "qpwgraph")
-    (version "0.4.5")
+    (version "0.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6262,7 +6263,7 @@ and DSD streams.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06pgkma0i9dbir74cfhgnnkqjcq8z496by4lk1whqcj7j9ldbi2l"))))
+                "186c3s56py8xjasbp4380m9sqdba9mf7mppqz8hkli1nhbspbix9"))))
     (build-system cmake-build-system)
     (arguments (list #:tests? #f)) ;; no tests
     (inputs (list alsa-lib
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index d484c34826..6961d9358c 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -1401,14 +1401,14 @@ archives.")
 (define-public grsync
   (package
     (name "grsync")
-    (version "1.3.0")
+    (version "1.3.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.opbyte.it/release/"
                                   "grsync-" version ".tar.gz"))
               (sha256
                (base32
-                "1z1m782b50x348kgynzf753apy8yszkl31y32y1jsc055skcdixp"))))
+                "1ly6ng211wj9sc0la73jsz2lviwd7b4a7bhw16kmnbm6v8jhxk1k"))))
     (build-system gnu-build-system)
     (native-inputs (list intltool pkg-config))
     (inputs (list gtk+))
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index a365cca849..c4cb7c2ff7 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2020, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 qblade <qblade@protonmail.com>
 ;;; Copyright © 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2022, 2023 Juliana Sims <jtsims@protonmail.com>
+;;; Copyright © 2022, 2023 Juliana Sims <juli@incana.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 00be723eec..25566bc0fa 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -58,8 +58,8 @@
   #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
 
 (define-public cuirass
-  (let ((commit "b82596778bf653a572b5fcd483388226b29b96f3")
-        (revision "16"))
+  (let ((commit "7416bb916315730cd1ea74e7914f7532a1aba193")
+        (revision "17"))
     (package
       (name "cuirass")
       (version (git-version "1.1.0" revision commit))
@@ -72,7 +72,7 @@
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1246cs3bmpkp8jis0xxasmrpq622p1ds3s0payrv5bxng9j6dbfp"))))
+           "1wc39c7aqva5sp3gpdxq2kqa17ywy21yn5w8r66qgxjinvj21a68"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build utils)
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index afc6374554..54b525a04e 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -40,7 +40,7 @@
   (package
     (name "conky")
     (home-page "https://github.com/brndnmtthws/conky")
-    (version "1.19.2")
+    (version "1.19.3")
     (source
      (origin
        (method git-fetch)
@@ -49,7 +49,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "196wqr477fch1152cqmf11ckwrgkk2wmhl56ms6jk19hfs83d980"))))
+        (base32 "079s6icvcrryhj71qya4rnyc6pdjq488l0gjqrrblycgzppn1pas"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 1a71c86c3c..3a439c314e 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -783,7 +783,7 @@ lock-free fixed size queue written in C++11.")
 (define-public gperftools
   (package
     (name "gperftools")
-    (version "2.10")
+    (version "2.11")
     (source
      (origin
        (method git-fetch)
@@ -791,7 +791,7 @@ lock-free fixed size queue written in C++11.")
              (url "https://github.com/gperftools/gperftools")
              (commit (string-append "gperftools-" version))))
        (sha256
-        (base32 "0s9qhx940s8q6glc8sw74k5gs8hdhjfigq20zci92qawgm7zsicm"))
+        (base32 "1mwsa4y696m8zjya0k7xzr9vsgb24dq4aq13m21hb5ygy7nh47id"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index b16d4ab3a9..223d1d3a3d 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
 ;;; Copyright © 2019, 2020, 2021, 2022 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com>
 ;;; Copyright © 2020 Danjela Lura <danielaluraa@gmail.com>
 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
@@ -29400,7 +29400,7 @@ automatically show a loader when the output is (re)calculating.")
     (properties `((upstream-name . "rsvg")))
     (build-system r-build-system)
     (inputs
-     (list librsvg zlib))
+     (list (librsvg-for-system) zlib))
     (native-inputs
      (list pkg-config r-knitr))
     (home-page "https://github.com/jeroen/rsvg#readme")
diff --git a/gnu/packages/crates-gtk.scm b/gnu/packages/crates-gtk.scm
index 7512002751..1bd61d7f19 100644
--- a/gnu/packages/crates-gtk.scm
+++ b/gnu/packages/crates-gtk.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
@@ -902,8 +902,52 @@
         ("rust-serial-test" ,rust-serial-test-0.1)
         ("rust-serial-test-derive" ,rust-serial-test-derive-0.1))))))
 
+(define-public rust-gio-sys-0.17
+  (package
+    (name "rust-gio-sys")
+    (version "0.17.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "gio-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hr84vgpz1hbs9q7wgvpnwhbxwh9kim0z5aqv6v6ki0j1b1qgkqc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; XXX: Tests are sensitive to the version of glib, even though
+       ;; the library supports a wide range.  Skip for now.
+       #:tests? #f
+       #:cargo-inputs
+       (("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)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'extend-include-path
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let ((gio-headers (search-input-directory
+                                          inputs "include/gio-unix-2.0")))
+                        ;; Tests rely on these headers.
+                        (setenv "C_INCLUDE_PATH"
+                                (string-append gio-headers ":"
+                                               (getenv "C_INCLUDE_PATH")))))))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libgio-2.0")
+    (description "This package provides FFI bindings to libgio-2.0.")
+    (license license:expat)))
+
 (define-public rust-gio-sys-0.15
   (package
+    (inherit rust-gio-sys-0.17)
     (name "rust-gio-sys")
     (version "0.15.10")
     (source
@@ -913,7 +957,6 @@
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "13fgmc2xdzg9qk9l3nlp1bilwn6466mrqbiq4fhc9qkia93pl59j"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; FIXME: some GLib macros are not found
        #:tests? #f
@@ -934,15 +977,7 @@
                         ;; Tests rely on these headers.
                         (setenv "C_INCLUDE_PATH"
                                 (string-append gio-headers ":"
-                                               (getenv "C_INCLUDE_PATH")))))))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgio-2.0")
-    (description "This package provides FFI bindings to libgio-2.0.")
-    (license license:expat)))
+                                               (getenv "C_INCLUDE_PATH")))))))))))
 
 (define-public rust-gio-sys-0.14
   (package
@@ -1030,8 +1065,56 @@
     (description "File format checker in Rust.")
     (license license:expat)))
 
+(define-public rust-glib-0.17
+  (package
+    (name "rust-glib")
+    (version "0.17.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "glib" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jqlipn9zixj8fpqlg45v0f06j2ghdz72cml2akcxlnlm1dx9ynk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; XXX: Tests are sensitive to the version of glib, even though
+       ;; the library supports a wide range.  Skip for now.
+       #: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-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-task" ,rust-futures-task-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-gio-sys" ,rust-gio-sys-0.17)
+        ("rust-glib-macros" ,rust-glib-macros-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-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-gir-format-check" ,rust-gir-format-check-0.1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-trybuild2" ,rust-trybuild2-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GLib library")
+    (description "Rust bindings for the GLib library")
+    (license license:expat)))
+
 (define-public rust-glib-0.15
   (package
+    (inherit rust-glib-0.17)
     (name "rust-glib")
     (version "0.15.12")
     (source
@@ -1041,7 +1124,6 @@
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0pahikbwxr3vafdrr5l2hnlhkf9xi4illryan0l59ayhp9pk1c7d"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
        #:tests? #f
@@ -1062,15 +1144,7 @@
        #:cargo-development-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-gir-format-check" ,rust-gir-format-check-0.1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "Rust bindings for the GLib library")
-    (description "Rust bindings for the GLib library")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-glib-0.14
   (package
@@ -1160,8 +1234,43 @@
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-glib-macros-0.17
+  (package
+    (name "rust-glib-macros")
+    (version "0.17.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "glib-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09nyh22nryip4i22mdrixzl4q0r5h5lxcn40mgqr30rk6y9wg9gc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-heck" ,rust-heck-0.4)
+        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("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-glib" ,rust-glib-0.17)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-trybuild2" ,rust-trybuild2-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "Rust bindings for the GLib library, proc macros crate")
+    (description "Rust bindings for the GLib library, proc macros crate.")
+    (license license:expat)))
+
 (define-public rust-glib-macros-0.15
   (package
+    (inherit rust-glib-macros-0.17)
     (name "rust-glib-macros")
     (version "0.15.11")
     (source
@@ -1171,7 +1280,6 @@
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0r3cr0c79rs91z0sps089nsf8ppnm8agp48qwwqlkc32lqqq39i5"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; XXX: Circular dependency on rust-glib??
        #:tests? #f
@@ -1182,11 +1290,7 @@
         ("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://gtk-rs.org/")
-    (synopsis "Rust bindings for the GLib library, proc macros crate")
-    (description "Rust bindings for the GLib library, proc macros crate.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-glib-macros-0.14
   (package
@@ -1237,17 +1341,17 @@
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-glib-sys-0.15
+(define-public rust-glib-sys-0.17
   (package
     (name "rust-glib-sys")
-    (version "0.15.10")
+    (version "0.17.10")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "glib-sys" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1m5sqm69fdk8vaw6hggyizhs1r1vivx73splrdvczsb5iqpijjzg"))))
+                "1w64ppa12s9ky6gfdaqhq9w30ad6hskll812jb3sl2xsggmac2nq"))))
     (build-system cargo-build-system)
     (arguments
      `(;; XXX: Tests are sensitive to the version of glib, even though
@@ -1268,6 +1372,29 @@
     (description "This package provides FFI bindings to libglib-2.0.")
     (license license:expat)))
 
+(define-public rust-glib-sys-0.15
+  (package
+    (inherit rust-glib-sys-0.17)
+    (name "rust-glib-sys")
+    (version "0.15.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "glib-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1m5sqm69fdk8vaw6hggyizhs1r1vivx73splrdvczsb5iqpijjzg"))))
+    (arguments
+     `(;; XXX: Tests are sensitive to the version of glib, even though
+       ;; the library supports a wide range.  Skip for now.
+       #:tests? #f
+       #:cargo-inputs
+       (("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-glib-sys-0.14
   (package
     (inherit rust-glib-sys-0.15)
@@ -1335,8 +1462,41 @@
        (("rust-shell-words" ,rust-shell-words-0.1)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-gobject-sys-0.17
+  (package
+    (name "rust-gobject-sys")
+    (version "0.17.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "gobject-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ql0pcab6dxjapiglxcjaavbbh1sznyc2wj5q273b9j0fwqw6d6d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(;; XXX: Tests are sensitive to the version of glib, even though
+       ;; the library supports a wide range.  Skip for now.
+       #:tests? #f
+       #:cargo-inputs
+       (("rust-glib-sys" ,rust-glib-sys-0.17)
+        ("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))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://gtk-rs.org/")
+    (synopsis "FFI bindings to libgobject-2.0")
+    (description "This package provides FFI bindings to libgobject-2.0.")
+    (license license:expat)))
+
 (define-public rust-gobject-sys-0.15
   (package
+    (inherit rust-gobject-sys-0.17)
     (name "rust-gobject-sys")
     (version "0.15.10")
     (source
@@ -1346,7 +1506,6 @@
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "02hyilvpi4hw4gr03z2plsbf1zicsfs5l0xxadqx3v3b4i2cwmqd"))))
-    (build-system cargo-build-system)
     (arguments
      `(;; FIXME: Constant value mismatch for G_TYPE_FUNDAMENTAL_MAX
        ;; Rust: "255"
@@ -1358,15 +1517,7 @@
         ("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 glib))
-    (home-page "https://gtk-rs.org/")
-    (synopsis "FFI bindings to libgobject-2.0")
-    (description "This package provides FFI bindings to libgobject-2.0.")
-    (license license:expat)))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-gobject-sys-0.14
   (package
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f9574e2797..77a41a5116 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -1661,8 +1661,100 @@ deadlock, like the standard Barrier).")
 syntax (e.g.  EasyList, EasyPrivacy) filter parsing and matching.")
     (license license:mpl2.0)))
 
+(define-public rust-adblock-0.5
+  (package
+    (inherit rust-adblock-0.7)
+    (name "rust-adblock")
+    (version "0.5.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "adblock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qgjcrm7vqxq5ispdj95ql7payy5d5rj0zfwba4b076xxvw1q4yq"))))
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; Not all files included
+             "--skip=check_works_same_after_deserialization"
+             "--skip=check_matching_equivalent"
+             "--skip=check_matching_hostnames"
+             ;; Skip tests which require the network.
+             "--skip=check_live_from_filterlists"
+             "--skip=check_live_specific_urls"
+             "--skip=stable_serialization"
+             "--skip=stable_serialization_through_load")
+       #:cargo-inputs
+       (("rust-addr" ,rust-addr-0.14)
+        ("rust-base64" ,rust-base64-0.13)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cssparser" ,rust-cssparser-0.28)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-idna" ,rust-idna-0.2)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-lifeguard" ,rust-lifeguard-0.6)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rmp-serde" ,rust-rmp-serde-0.13)
+        ("rust-rmp-serde" ,rust-rmp-serde-0.15)
+        ("rust-seahash" ,rust-seahash-3)
+        ("rust-selectors" ,rust-selectors-0.23)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-twoway" ,rust-twoway-0.2)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tokio" ,rust-tokio-1))))))
+
+(define-public rust-addr2line-0.19
+  (package
+    (name "rust-addr2line")
+    (version "0.19.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "addr2line" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15ywmr5wx22q69ffnn79qp65ir5p1x0k2q06plcpv6v74c5xcvx7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; use of undeclared crate or module `auxiliary`
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-cpp-demangle" ,rust-cpp-demangle-0.4)
+        ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+        ("rust-gimli" ,rust-gimli-0.27)
+        ("rust-object" ,rust-object-0.30)
+        ("rust-rustc-demangle" ,rust-rustc-demangle-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-smallvec" ,rust-smallvec-1))
+       #:cargo-development-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-clap" ,rust-clap-3)
+        ("rust-findshlibs" ,rust-findshlibs-0.10)
+        ("rust-memmap2" ,rust-memmap2-0.5)
+        ("rust-rustc-test" ,rust-rustc-test-0.3)
+        ("rust-typed-arena" ,rust-typed-arena-2))))
+    (home-page "https://github.com/gimli-rs/addr2line")
+    (synopsis "Symbolication library written in Rust, using gimli")
+    (description
+     "This package provides a cross-platform symbolication library written in
+Rust, using gimli.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-addr2line-0.17
   (package
+    (inherit rust-addr2line-0.19)
     (name "rust-addr2line")
     (version "0.17.0")
     (source (origin
@@ -1672,7 +1764,6 @@ syntax (e.g.  EasyList, EasyPrivacy) filter parsing and matching.")
               (sha256
                (base32
                 "0sw16zqy6w0ar633z69m7lw6gb0k1y7xj3387a8wly43ij5div5r"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #false ;use of undeclared crate or module `auxiliary`
        #:cargo-inputs
@@ -1691,13 +1782,29 @@ syntax (e.g.  EasyList, EasyPrivacy) filter parsing and matching.")
         ("rust-findshlibs" ,rust-findshlibs-0.10)
         ("rust-memmap" ,rust-memmap-0.7)
         ("rust-rustc-test" ,rust-rustc-test-0.3)
-        ("rust-typed-arena" ,rust-typed-arena-2))))
-    (home-page "https://github.com/gimli-rs/addr2line")
-    (synopsis "Symbolication library written in Rust, using gimli")
-    (description
-     "This package provides a cross-platform symbolication library written in
-Rust, using gimli.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-typed-arena" ,rust-typed-arena-2))))))
+
+(define-public rust-addchain-0.2
+  (package
+    (name "rust-addchain")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "addchain" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0w45hpybsx9gzhlxf6x9451kycg8xwj3x8qzjnk8wqm55926jbiv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-bigint" ,rust-num-bigint-0.3)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/str4d/addchain")
+    (synopsis "Generate addition chains")
+    (description "Generate addition chains")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-addr-0.14
   (package
@@ -1998,32 +2105,6 @@ ciphers implementations.")
         ("rust-aesni" ,rust-aesni-0.6)
         ("rust-block-cipher-trait" ,rust-block-cipher-trait-0.6))))))
 
-(define-public rust-aes-ctr-0.6
-  (package
-    (name "rust-aes-ctr")
-    (version "0.6.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "aes-ctr" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32 "0qspjxzrclnb83501595y01dhc0km1ssrbjnwlxhcrsdwp6w6abp"))))
-  (build-system cargo-build-system)
-  (arguments
-   `(#:cargo-inputs
-     (("rust-aes-soft" ,rust-aes-soft-0.6)
-      ("rust-aesni" ,rust-aesni-0.10)
-      ("rust-cipher" ,rust-cipher-0.2)
-      ("rust-ctr", rust-ctr-0.6))
-     #:cargo-development-inputs
-     (("rust-cipher" ,rust-cipher-0.2))))
-  (home-page "https://github.com/RustCrypto/block-ciphers/tree/master/aes")
-  (synopsis "Pure Rust implementation of AES")
-  (description "A pure Rust implementation of the Advanced Encryption Standard
-(AES).  Use the aes crate if possible, as the aes-ctr has been deprecated.")
-  (license (list license:expat license:asl2.0))))
-
 (define-public rust-aes-gcm-0.10
   (package
     (name "rust-aes-gcm")
@@ -2263,8 +2344,43 @@ This package is deprecated and was replaced by the @code{aes} crate.")
         ("rust-opaque-debug" ,rust-opaque-debug-0.2)
         ("rust-stream-cipher" ,rust-stream-cipher-0.3))))))
 
+(define-public rust-afl-0.12
+  (package
+    (name "rust-afl")
+    (version "0.12.17")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "afl" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05f7wrz15h97b6xqa914syiv6ij849ndgyb5iwmgwkv26qpjzhzn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; We don't want to add AFL as an input.
+       #:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-fs-extra" ,rust-fs-extra-1)
+        ("rust-home" ,rust-home-0.5)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-version" ,rust-rustc-version-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-xdg" ,rust-xdg-2))
+       #:cargo-development-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-assert-cmd" ,rust-assert-cmd-2)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/rust-fuzz/afl.rs")
+    (synopsis
+     "Fuzzing Rust code with american-fuzzy-lop")
+    (description
+     "Fuzz Rust code with american-fuzzy-lop.")
+    (license license:asl2.0)))
+
 (define-public rust-afl-0.8
   (package
+    (inherit rust-afl-0.12)
     (name "rust-afl")
     (version "0.8.0")
     (source
@@ -2276,7 +2392,6 @@ This package is deprecated and was replaced by the @code{aes} crate.")
        (sha256
         (base32
          "1rw11hycfjhqbc7z1smn75m0sczq519msjwimxh7b8s6n4pzk5r7"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -2288,13 +2403,7 @@ 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))))
-    (home-page "https://github.com/rust-fuzz/afl.rs")
-    (synopsis
-     "Fuzzing Rust code with american-fuzzy-lop")
-    (description
-     "Fuzz Rust code with american-fuzzy-lop.")
-    (license license:asl2.0)))
+        ("rust-xdg" ,rust-xdg-2))))))
 
 (define-public rust-ahash-0.8
   (package
@@ -2366,7 +2475,7 @@ using AES-NI for high performance.")
   (package
     (inherit rust-ahash-0.7)
     (name "rust-ahash")
-    (version "0.4.4")
+    (version "0.4.7")
     (source
      (origin
        (method url-fetch)
@@ -2374,7 +2483,7 @@ using AES-NI for high performance.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06bxygcis4pfx0axi1ld0lclg8mf4plywdy7fnkyw2hrhcb74rkd"))))
+         "0vm13qaz4nzj0gd397d36wpyav05bflg6m2nbhs82nb0ns6lm7vk"))))
     (arguments
      `(#:cargo-inputs
        (("rust-const-random" ,rust-const-random-0.1))
@@ -2437,26 +2546,43 @@ using AES-NI for high performance.")
         ("rust-rand" ,rust-rand-0.6)
         ("rust-seahash" ,rust-seahash-3))))))
 
-(define-public rust-aho-corasick-0.7
+(define-public rust-aho-corasick-1
   (package
     (name "rust-aho-corasick")
-    (version "0.7.20")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "aho-corasick" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1b3if3nav4qzgjz9bf75b2cv2h2yisrqfs0np70i38kgz4cn94yc"))))
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "aho-corasick" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0has59a3571irggpk5z8c0lpnx8kdx12qf4g2x0560i2y8dwpxj3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-memchr" ,rust-memchr-2))))
+       (("rust-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2))
+       #:cargo-development-inputs (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://github.com/BurntSushi/aho-corasick")
     (synopsis "Fast multiple substring searching")
     (description "This package provides a fast multiple substring searching.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-aho-corasick-0.7
+  (package
+    (inherit rust-aho-corasick-1)
+    (name "rust-aho-corasick")
+    (version "0.7.20")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "aho-corasick" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1b3if3nav4qzgjz9bf75b2cv2h2yisrqfs0np70i38kgz4cn94yc"))))
+    (arguments
+     `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))))))
+
 (define-public rust-aho-corasick-0.6
   (package
     (inherit rust-aho-corasick-0.7)
@@ -2706,6 +2832,26 @@ address that is aliasable when coerced to a raw pointer")
 types.")
     (license license:expat)))
 
+(define-public rust-aligned-0.4
+  (package
+    (name "rust-aligned")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "aligned" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0md67hsr0yw5qydr9hjlfz4wfxbbl39y7abkhpycf9m682a1p8l0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-as-slice" ,rust-as-slice-0.2))))
+    (home-page "https://github.com/japaric/aligned")
+    (synopsis "Newtype with alignment of at least `A` bytes")
+    (description
+     "This package provides a newtype with alignment of at least `A` bytes.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-alloc-no-stdlib-2
   (package
     (name "rust-alloc-no-stdlib")
@@ -2750,6 +2896,26 @@ options to use calloc or a mutable global variable for pre-zeroed memory.")
 be used with the stdlib.")
     (license license:bsd-3)))
 
+(define-public rust-allocator-api2-0.2
+  (package
+    (name "rust-allocator-api2")
+    (version "0.2.15")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "allocator-api2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1sdgkqs0pyk61m4yjksl5fv8wld11s5rp7v4v3p5hhccvkw6rz2n"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags '("--lib")
+       #:cargo-inputs (("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/zakarumych/allocator-api2")
+    (synopsis "Mirror of Rust's allocator API")
+    (description "Mirror of Rust's allocator API.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-always-assert-0.1
   (package
     (name "rust-always-assert")
@@ -2986,17 +3152,50 @@ it outputs messages to Android's logcat.")
 escape codes.")
     (license license:mpl2.0)))
 
-(define-public rust-anstyle-0.2
+(define-public rust-anstream-0.3
+  (package
+    (name "rust-anstream")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstream" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qzinx9c8zfq3xqpxzmlv6nrm3ymccr4n8gffkdmj31p50v4za0c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anstyle" ,rust-anstyle-1)
+        ("rust-anstyle-parse" ,rust-anstyle-parse-0.2)
+        ("rust-anstyle-query" ,rust-anstyle-query-1)
+        ("rust-anstyle-wincon" ,rust-anstyle-wincon-1)
+        ("rust-colorchoice" ,rust-colorchoice-1)
+        ("rust-is-terminal" ,rust-is-terminal-0.4)
+        ("rust-utf8parse" ,rust-utf8parse-0.2))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-owo-colors" ,rust-owo-colors-3)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1))))
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "Library for writing colored text to a terminal")
+    (description
+     "This package provides a simple cross platform library for writing colored
+text to a terminal.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-anstyle-1
   (package
     (name "rust-anstyle")
-    (version "0.2.8")
+    (version "1.0.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "anstyle" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "10kdjcyks9hcvmhk44afagnrxi4pczg6jnldjdadzbi4kyi2wqah"))))
+                "0zbazbfqs4mfw93573f61iy8c78vbbv824m3w206bbljpy39mva1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -3006,6 +3205,92 @@ escape codes.")
     (description "This package provides ANSI text styling.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-anstyle-0.2
+  (package
+    (inherit rust-anstyle-1)
+    (name "rust-anstyle")
+    (version "0.2.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstyle" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "10kdjcyks9hcvmhk44afagnrxi4pczg6jnldjdadzbi4kyi2wqah"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-lexopt" ,rust-lexopt-0.3))))))
+
+(define-public rust-anstyle-parse-0.2
+  (package
+    (name "rust-anstyle-parse")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstyle-parse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vjprf080adyxxpls9iwwny3g7irawfns9s2cj9ngq28dqhzsrg7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-utf8parse" ,rust-utf8parse-0.2))
+       #:cargo-development-inputs
+       (("rust-codegenrs" ,rust-codegenrs-2)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-vte-generate-state-changes" ,rust-vte-generate-state-changes-0.1))))
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "Parse ANSI Style Escapes")
+    (description "Parse ANSI Style Escapes")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-anstyle-query-1
+  (package
+    (name "rust-anstyle-query")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstyle-query" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0js9bgpqz21g0p2nm350cba1d0zfyixsma9lhyycic5sw55iv8aw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "Look up colored console capabilities")
+    (description "Look up colored console capabilities")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-anstyle-wincon-1
+  (package
+    (name "rust-anstyle-wincon")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "anstyle-wincon" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12714vwjf4c1wm3qf49m5vmd93qvq2nav6zpjc0bxbh3ayjby2hq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anstyle" ,rust-anstyle-1)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-lexopt" ,rust-lexopt-0.3))))
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "Styling legacy Windows terminals")
+    (description "Styling legacy Windows terminals")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-antidote-1
   (package
     (name "rust-antidote")
@@ -3305,7 +3590,7 @@ coverage-guided, mutation-based fuzzers.")
   (package
     (inherit rust-arc-swap-1)
     (name "rust-arc-swap")
-    (version "0.4.4")
+    (version "0.4.8")
     (source
      (origin
        (method url-fetch)
@@ -3314,16 +3599,17 @@ coverage-guided, mutation-based fuzzers.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1zwswfi9n7n3hiq51w1xv34572k2diazx680rrxlc9w07c9akf6p"))))
+         "1a3vg89xc7r2166mc25ciw3rbqfxjylfbjwlq4wrfy433wc5mgns"))))
     (arguments
-     `(#:cargo-development-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-itertools" ,rust-itertools-0.8)
-        ("rust-model" ,rust-model-0.1)
+     `(;; These tests require network access.
+       #:cargo-test-flags '("--release" "--" "--skip=test_html_root_url")
+       #:cargo-development-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
+        ("rust-itertools" ,rust-itertools-0.9)
         ("rust-num-cpus" ,rust-num-cpus-1)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-proptest" ,rust-proptest-0.8)
-        ("rust-version-sync" ,rust-version-sync-0.8))))))
+        ("rust-proptest" ,rust-proptest-0.9)
+        ("rust-version-sync" ,rust-version-sync-0.9))))))
 
 (define-public rust-arg-enum-proc-macro-0.3
   (package
@@ -3438,6 +3724,28 @@ coverage-guided, mutation-based fuzzers.")
 too long errors.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-ariadne-0.1
+  (package
+    (name "rust-ariadne")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ariadne" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dhxrhqgdwbl7v03m29zv4rb2fvjgw8a82lybp5xhzjp97khkm83"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-concolor" ,rust-concolor-0.0.11)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-yansi" ,rust-yansi-0.5))))
+    (home-page "https://github.com/zesterer/ariadne")
+    (synopsis "Fancy diagnostics & reporting crate")
+    (description "This package provides a fancy diagnostics & reporting crate.")
+    (license license:expat)))
+
 (define-public rust-arr-macro-impl-0.1
   (package
     (name "rust-arr-macro-impl")
@@ -3631,17 +3939,17 @@ ArrayVec and ArrayString.")
 (define-public rust-arrow-5
   (package
     (name "rust-arrow")
-    (version "5.2.0")
+    (version "5.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "arrow" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1zj2sjlnkwz2sdfc83zcz75vg1d3900h8ix15nkjsbz5hd1pzvri"))))
+        (base32 "0c8j4766cfjc04dmcyayigbn6mim9cfys78a64ilw26qrxpyhy16"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-chrono" ,rust-chrono-0.4)
@@ -3660,7 +3968,11 @@ ArrayVec and ArrayString.")
         ("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-serde-json" ,rust-serde-json-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/apache/arrow-rs")
     (synopsis "Rust implementation of Apache Arrow")
     (description
@@ -3668,39 +3980,6 @@ ArrayVec and ArrayString.")
 format.")
     (license license:asl2.0)))
 
-(define-public rust-arrow-4
-  (package
-    (inherit rust-arrow-5)
-    (name "rust-arrow")
-    (version "4.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "arrow" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "141qb0yqk179n324qrhbv14ysz13mcfsw00d6m09882gx9637wzn"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-aliases" ,rust-cfg-aliases-0.1)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-csv" ,rust-csv-1)
-        ("rust-flatbuffers" ,rust-flatbuffers-0.8)
-        ("rust-hex" ,rust-hex-0.4)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lexical-core" ,rust-lexical-core-0.7)
-        ("rust-multiversion" ,rust-multiversion-0.6)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
-        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-serde-json" ,rust-serde-json-1))))))
-
 (define-public rust-arrow-format-0.3
   (package
     (name "rust-arrow-format")
@@ -3778,49 +4057,6 @@ code of Apache Arrow spec.")
 a re-write of the official Arrow crate using transmute-free operations.")
     (license license:asl2.0)))
 
-(define-public rust-arrow2-0.5
-  (package
-    (inherit rust-arrow2-0.7)
-    (name "rust-arrow2")
-    (version "0.5.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "arrow2" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "042m859jfffnhi84qc919pkyanlr98wqqf67pcrylk4hhh0v84xx"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-base64" ,rust-base64-0.13)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-chrono-tz" ,rust-chrono-tz-0.5)
-        ("rust-comfy-table" ,rust-comfy-table-4)
-        ("rust-csv" ,rust-csv-1)
-        ("rust-flatbuffers" ,rust-flatbuffers-2)
-        ("rust-futures" ,rust-futures-0.3)
-        ("rust-hash-hasher" ,rust-hash-hasher-2)
-        ("rust-hex" ,rust-hex-0.4)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lexical-core" ,rust-lexical-core-0.8)
-        ("rust-lz4" ,rust-lz4-1)
-        ("rust-multiversion" ,rust-multiversion-0.6)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
-        ("rust-parquet2" ,rust-parquet2-0.4)
-        ("rust-rand" ,rust-rand-0.8)
-        ("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-streaming-iterator" ,rust-streaming-iterator-0.1)
-        ("rust-strength-reduce" ,rust-strength-reduce-0.2)
-        ("rust-zstd" ,rust-zstd-0.9))))))
-
 (define-public rust-article-scraper-1
   (package
     (name "rust-article-scraper")
@@ -3916,36 +4152,6 @@ extracted from Askama.")
     (description "This package provides shared code for Askama.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-askama-shared-0.11
-  (package
-    (inherit rust-askama-shared-0.12)
-    (name "rust-askama-shared")
-    (version "0.11.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "askama_shared" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1g3ksf5is0qwx9rd5lxn5gbvxfcpby5gl9cahg26wl1w1xzbg0i5"))))
-    (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-askama-escape" ,rust-askama-escape-0.10)
-             ("rust-humansize" ,rust-humansize-1)
-             ("rust-nom" ,rust-nom-6)
-             ("rust-num-traits" ,rust-num-traits-0.2)
-             ("rust-percent-encoding"
-              ,rust-percent-encoding-2)
-             ("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-serde-yaml" ,rust-serde-yaml-0.8)
-             ("rust-syn" ,rust-syn-1)
-             ("rust-toml" ,rust-toml-0.5))))))
-
 (define-public rust-askama-derive-0.11
   (package
     (name "rust-askama-derive")
@@ -4020,19 +4226,6 @@ library for Rust.")
      "This package provides #[derive] support for @code{asn1}.")
     (license license:bsd-3)))
 
-(define-public rust-asn1-derive-0.8
-  (package
-    (inherit rust-asn1-derive-0.13)
-    (name "rust-asn1-derive")
-    (version "0.8.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "asn1_derive" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "098w0mxz4bx9w7v72gsl5wva6f0qbvzyc52m0s0n8svqbyh4z2dw"))))))
-
 (define-public rust-asn1-0.13
   (package
     (name "rust-asn1")
@@ -4057,28 +4250,112 @@ library for Rust.")
      "This is a Rust library for parsing and generating ASN.1 data (DER only).")
     (license license:bsd-3)))
 
-(define-public rust-asn1-0.8
+(define-public rust-asn1-rs-0.5
   (package
-    (inherit rust-asn1-0.13)
-    (name "rust-asn1")
-    (version "0.8.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "asn1" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1caacmvgn463n1yc4ac6vl9phrh56ij7l3xgf6qgzbpyjm8v7zyg"))))
+    (name "rust-asn1-rs")
+    (version "0.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "asn1-rs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1w7zq0392qs7kkv0nzw50bfqvq7q9zxv48fsp3sxyl83mzfxavvz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-asn1-derive" ,rust-asn1-derive-0.8)
-        ("rust-chrono" ,rust-chrono-0.4))
+       (("rust-asn1-rs-derive" ,rust-asn1-rs-derive-0.4)
+        ("rust-asn1-rs-impl" ,rust-asn1-rs-impl-0.1)
+        ("rust-bitvec" ,rust-bitvec-1)
+        ("rust-cookie-factory" ,rust-cookie-factory-0.3)
+        ("rust-displaydoc" ,rust-displaydoc-0.2)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rusticata-macros" ,rust-rusticata-macros-4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-time" ,rust-time-0.3))
        #:cargo-development-inputs
-       (("rust-libc" ,rust-libc-0.2))))))
+       (("rust-colored" ,rust-colored-2)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-oid-registry" ,rust-oid-registry-0.6)
+        ("rust-pem" ,rust-pem-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/rusticata/asn1-rs")
+    (synopsis "Parser/encoder for ASN.1 BER/DER data")
+    (description "Parser/encoder for ASN.1 BER/DER data")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-asn1-rs-derive-0.4
+  (package
+    (name "rust-asn1-rs-derive")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "asn1-rs-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0v7fgmnzk7jjxv51grhwzcx5bf167nlqwk3vcmq7xblf5s4karbj"))))
+    (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)
+        ("rust-synstructure" ,rust-synstructure-0.12))))
+    (home-page "https://github.com/rusticata/asn1-rs")
+    (synopsis "Derive macros for the `asn1-rs` crate")
+    (description
+     "This package provides derive macros for the @code{asn1-rs} crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-asn1-rs-impl-0.1
+  (package
+    (name "rust-asn1-rs-impl")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "asn1-rs-impl" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1va27bn7qxqp4wanzjlkagnynv6jnrhnwmcky2ahzb1r405p6xr7"))))
+    (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/rusticata/asn1-rs")
+    (synopsis "Implementation details for the `asn1-rs` crate")
+    (description
+     "This package provides implementation details for the @code{asn1-rs} crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-as-slice-0.2
+  (package
+    (name "rust-as-slice")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "as-slice" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05j52y1ws8kir5zjxnl48ann0if79sb56p9nm76hvma01r7nnssi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+    (home-page "https://github.com/japaric/as-slice")
+    (synopsis "AsSlice and AsMutSlice traits")
+    (description "This package provides @code{AsSlice} and @code{AsMutSlice}
+traits.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-as-slice-0.1
   (package
+    (inherit rust-as-slice-0.2)
     (name "rust-as-slice")
     (version "0.1.5")
     (source
@@ -4089,18 +4366,12 @@ library for Rust.")
        (sha256
         (base32
          "1q3a9494ikaq38zjg5px5gwwrbdgnyj23b505224njlmwd4knh25"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-generic-array-0.14" ,rust-generic-array-0.14)
         ("rust-generic-array-0.13" ,rust-generic-array-0.13)
         ("rust-generic-array-0.12" ,rust-generic-array-0.12)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
-    (home-page "https://github.com/japaric/as-slice")
-    (synopsis "AsSlice and AsMutSlice traits")
-    (description "This package provides @code{AsSlice} and @code{AsMutSlice}
-traits.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))))
 
 (define-public rust-ascii-1
   (package
@@ -4359,6 +4630,23 @@ assertions on the result of your program's run.")
      "This crate provides file system fixtures and assertions for testing.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-assert-impl-0.1
+  (package
+    (name "rust-assert-impl")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "assert-impl" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17jvig9rwdc1sf1j5q8q9k69njg3k8g7x7g6wcb711hcvq9l6in3"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/upsuper/assert-impl")
+    (synopsis "Macro for static assert types implement a trait or not")
+    (description "Macro for static assert types implement a trait or not")
+    (license license:expat)))
+
 (define-public rust-assert-json-diff-1
   (package
     (name "rust-assert-json-diff")
@@ -4432,31 +4720,6 @@ objects are the same.")
 capacity and random or least recently used (LRU) replacement.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-aster-0.41
-  (package
-    (name "rust-aster")
-    (version "0.41.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "aster" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1q704kn23wnwnrxml7w1mxw6a3xb6386x5wgys6ibnyramrxzksc"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-compiletest-rs" ,rust-compiletest-rs-0.2)
-        ("rust-syntex-syntax" ,rust-syntex-syntax-0.58))))
-    (home-page "https://github.com/serde-rs/aster")
-    (synopsis "Libsyntax ast builder")
-    (description "This package provides a libsyntax ast builder.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-async-attributes-1
   (package
     (name "rust-async-attributes")
@@ -4482,6 +4745,33 @@ capacity and random or least recently used (LRU) replacement.")
 Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-async-broadcast-0.5
+  (package
+    (name "rust-async-broadcast")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "async-broadcast" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0avdqbci1qdlfc4glc3wqrb0wi5ffc7bqv2q1wg14syayvdwqj3w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-event-listener" ,rust-event-listener-2)
+        ("rust-futures-core" ,rust-futures-core-0.3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-futures-util" ,rust-futures-util-0.3))))
+    (home-page "https://github.com/smol-rs/async-broadcast")
+    (synopsis "Async broadcast channels")
+    (description "This package provides async broadcast channels in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-async-channel-1
   (package
     (name "rust-async-channel")
@@ -4610,27 +4900,30 @@ AsyncSeek if the inner type does.")
 (define-public rust-async-executor-1
   (package
     (name "rust-async-executor")
-    (version "1.4.0")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-executor" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ilivvzc082ynr096xxghc8hdmlmacxilcpn738ylh5lqxq7k1zb"))))
+        (base32 "1yrs723d4djhia5mimc85blrvly0kl8bj260b5vz0r4559gxr8vg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-async-task" ,rust-async-task-4)
-        ("rust-concurrent-queue" ,rust-concurrent-queue-1)
+       (("rust-async-lock" ,rust-async-lock-2)
+        ("rust-async-task" ,rust-async-task-4)
+        ("rust-concurrent-queue" ,rust-concurrent-queue-2)
         ("rust-fastrand" ,rust-fastrand-1)
         ("rust-futures-lite" ,rust-futures-lite-1)
-        ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-vec-arena" ,rust-vec-arena-1))
+        ("rust-slab" ,rust-slab-0.4))
        #:cargo-development-inputs
        (("rust-async-channel" ,rust-async-channel-1)
         ("rust-async-io" ,rust-async-io-1)
-        ("rust-easy-parallel" ,rust-easy-parallel-3))))
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1))))
     (home-page "https://github.com/stjepang/async-executor")
     (synopsis "Async executor")
     (description "This library provides async executors.")
@@ -4727,38 +5020,40 @@ AsyncSeek if the inner type does.")
 (define-public rust-async-io-1
   (package
     (name "rust-async-io")
-    (version "1.3.1")
+    (version "1.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-io" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1zg0bvb58615qar6ih3ddr1cyjh0fsrfdhpy90z1qxjnfpqgh5ck"))))
+        (base32 "1byj7lpw0ahk6k63sbc9859v68f28hpaab41dxsjj1ggjdfv9i8g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-concurrent-queue" ,rust-concurrent-queue-1)
-        ("rust-fastrand" ,rust-fastrand-1)
+       (("rust-async-lock" ,rust-async-lock-2)
+        ("rust-autocfg" ,rust-autocfg-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-concurrent-queue" ,rust-concurrent-queue-2)
         ("rust-futures-lite" ,rust-futures-lite-1)
-        ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nb-connect" ,rust-nb-connect-1)
-        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-parking" ,rust-parking-2)
         ("rust-polling" ,rust-polling-2)
-        ("rust-vec-arena" ,rust-vec-arena-1)
-        ("rust-waker-fn" ,rust-waker-fn-1)
-        ("rust-winapi" ,rust-winapi-0.3))
+        ("rust-rustix" ,rust-rustix-0.37)
+        ("rust-slab" ,rust-slab-0.4)
+        ("rust-socket2" ,rust-socket2-0.4)
+        ("rust-waker-fn" ,rust-waker-fn-1))
        #:cargo-development-inputs
        (("rust-async-channel" ,rust-async-channel-1)
         ("rust-async-net" ,rust-async-net-1)
-        ("rust-inotify" ,rust-inotify-0.8)
-        ("rust-nix" ,rust-nix-0.18)
-        ("rust-signal-hook" ,rust-signal-hook-0.1)
+        ("rust-blocking" ,rust-blocking-1)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-inotify" ,rust-inotify-0.10)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-timerfd" ,rust-timerfd-1)
-        ("rust-uds-windows" ,rust-uds-windows-0.1))))
+        ("rust-uds-windows" ,rust-uds-windows-1))))
     (home-page "https://github.com/stjepang/async-io")
     (synopsis "Async I/O and timers")
     (description
@@ -4770,19 +5065,23 @@ that expires at a point in time.")
 (define-public rust-async-lock-2
   (package
     (name "rust-async-lock")
-    (version "2.3.0")
+    (version "2.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-lock" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1yrvnshs94aiimvprqkhcg1z7x9abzsja8f4ifcakr5x6abn15hr"))))
+        (base32 "1mrd4kai92fcgl9974dpmibiq6ja9drz41v3crvv0c27a8kzf97s"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-event-listener" ,rust-event-listener-2))))
+     `(#:cargo-inputs
+       (("rust-event-listener" ,rust-event-listener-2))
+       #:cargo-development-inputs
+       (("rust-async-channel" ,rust-async-channel-1)
+        ("rust-fastrand" ,rust-fastrand-1)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
     (home-page "https://github.com/stjepang/async-lock")
     (synopsis "Async synchronization primitives")
     (description "This package provides Async synchronization primitives.")
@@ -4949,6 +5248,32 @@ primitives:
      "Async networking primitives for TCP/UDP/Unix communication")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-async-oneshot-0.5
+  (package
+    (name "rust-async-oneshot")
+    (version "0.5.9")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "async-oneshot" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qslzzfz3j0fb4lvsmq5nx6lkjfbdq5sjmsl7xgj0hym08mdwixf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Uses unstable features.
+       #:cargo-inputs
+       (("rust-futures-micro" ,rust-futures-micro-0.5))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-waker-fn" ,rust-waker-fn-1))))
+    (home-page "https://github.com/irrustible/async-oneshot")
+    (synopsis "Async-aware oneshot channel")
+    (description "This package provides a fast, small, full-featured,
+async-aware oneshot channel.")
+    (license license:mpl2.0)))
+
 (define-public rust-async-process-1
   (package
     (name "rust-async-process")
@@ -5008,6 +5333,32 @@ implementing async state machines that can later be wrapped in dedicated
 futures.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-async-recursion-1
+  (package
+    (name "rust-async-recursion")
+    (version "1.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "async-recursion" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fhwz7jqgsakbjsr2nrsvgs245l1m5dkzir6f9fxw4ngwrywx5qf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; TODO: Tests unexpectedly pass.
+       #:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/dcchut/async-recursion")
+    (synopsis "Recursion for async functions")
+    (description "This package provides recursion for async functions in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-async-std-1
   (package
     (name "rust-async-std")
@@ -5161,20 +5512,24 @@ crate.")
 (define-public rust-async-task-4
   (package
     (name "rust-async-task")
-    (version "4.0.3")
+    (version "4.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "async-task" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1w0a1c8jim6s5bvcyiiwg9m4bdv3xnd4hbjm97ndgmphmgg32679"))))
+        (base32 "1bis5aqnjw3gxridzpq2cwrlj4y8alrfqy19rly6ag2vh50spizc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
        (("rust-atomic-waker" ,rust-atomic-waker-1)
         ("rust-easy-parallel" ,rust-easy-parallel-3)
-        ("rust-flume" ,rust-flume-0.10))))
+        ("rust-flaky-test" ,rust-flaky-test-0.1)
+        ("rust-flume" ,rust-flume-0.10)
+        ("rust-futures-lite" ,rust-futures-lite-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-smol" ,rust-smol-1))))
     (home-page "https://github.com/stjepang/async-task")
     (synopsis "Task abstraction for building executors")
     (description
@@ -5247,7 +5602,7 @@ crate.")
 (define-public rust-async-trait-0.1
   (package
     (name "rust-async-trait")
-    (version "0.1.57")
+    (version "0.1.71")
     (source
      (origin
        (method url-fetch)
@@ -5255,18 +5610,18 @@ crate.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0vw256zb104ni4lw0r5j3jdws54r9n01mvl8gs6pacmwp1348ikn"))))
+         "1grf5p4m1bb79isbb3g4b8w7wpz51sw003a88x69ql2nvlhxar55"))))
     (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))
+        ("rust-syn" ,rust-syn-2))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1)
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-tracing" ,rust-tracing-0.1)
         ("rust-tracing-attributes" ,rust-tracing-attributes-0.1)
-        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/async-trait")
     (synopsis "Type erasure for async trait methods")
@@ -5508,7 +5863,7 @@ bytes or encoder from file extension.")
 (define-public rust-automod-1
   (package
     (name "rust-automod")
-    (version "1.0.0")
+    (version "1.0.11")
     (source
      (origin
        (method url-fetch)
@@ -5517,15 +5872,13 @@ bytes or encoder from file extension.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1z8kdbvvz0k8mfs45mvs16lr9xj59cdcp0sm45fawfh93gai4mhg"))))
+         "057sa45859nb8arbshkqc6va8b8jf5a8vx6zr739viibqbj989md"))))
     (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))
-       ;; Tests not included in tar.
-       #:tests? #f))
+        ("rust-syn" ,rust-syn-2))))
     (home-page "https://github.com/dtolnay/automod")
     (synopsis "Pull in every source file in a directory as a module")
     (description "Pull in every source file in a directory as a module.")
@@ -5875,7 +6228,7 @@ built on the Actix ecosystem.")
 (define-public rust-backtrace-0.3
   (package
     (name "rust-backtrace")
-    (version "0.3.66")
+    (version "0.3.67")
     (source
      (origin
        (method url-fetch)
@@ -5884,23 +6237,24 @@ built on the Actix ecosystem.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "19yrfx0gprqmzphmf6qv32g93w76ny5g751ks1abdkqnsqcl7f6a"))))
+         "1jk48laqafvbyc0mn1v0didk307qc0zji3z5jcq2lpqqdmnkfg93"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; Not all files included.
        #:cargo-inputs
-       (("rust-addr2line" ,rust-addr2line-0.17)
+       (("rust-addr2line" ,rust-addr2line-0.19)
         ("rust-cc" ,rust-cc-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-cpp-demangle" ,rust-cpp-demangle-0.3)
+        ("rust-cpp-demangle" ,rust-cpp-demangle-0.4)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.7)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.5)
-        ("rust-object" ,rust-object-0.29)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.6)
+        ("rust-object" ,rust-object-0.30)
         ("rust-rustc-demangle" ,rust-rustc-demangle-0.1)
         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
         ("rust-serde" ,rust-serde-1)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-libloading" ,rust-libloading-0.7))))
     (home-page "https://github.com/rust-lang/backtrace-rs")
     (synopsis "Acquire a stack trace (backtrace) at runtime in a Rust program")
     (description
@@ -5967,6 +6321,27 @@ systems.")
 API for Rust.")
     (license (list license:expat license:x11 license:asl2.0))))
 
+(define-public rust-base16ct-0.2
+  (package
+    (name "rust-base16ct")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "base16ct" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1kylrjhdzk7qpknrvlphw8ywdnvvg39dizw9622w3wk5xba04zsc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RustCrypto/formats/tree/master/base16ct")
+    (synopsis "Rust implementation of Base16 a.k.a hexadecimal")
+    (description
+     "This package provides a pure Rust implementation of Base16 a.k.a
+hexadecimal (RFC 4648) which avoids any usages of data-dependent branches/LUTs
+and thereby provides portable \"best effort\" constant-time operation and
+embedded-friendly no_std support.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-base32-0.4
   (package
     (name "rust-base32")
@@ -6180,18 +6555,18 @@ c6e7d37.  However, this package works only up to 128 bytes.")
 (define-public rust-base64ct-1
   (package
     (name "rust-base64ct")
-    (version "1.3.3")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "base64ct" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1818i0gpg7q35s6yglmhgciwi3jwx65mqc2ipjl54jfbmm288kw7"))))
+        (base32 "0nvdba4jb8aikv60az40x2w1y96sjdq8z3yp09rwzmkhiwv1lg4c"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-base64" ,rust-base64-0.13)
+       (("rust-base64" ,rust-base64-0.21)
         ("rust-proptest" ,rust-proptest-1))))
     (home-page "https://github.com/RustCrypto/formats/tree/master/base64ct")
     (synopsis "Implementation of Base64 (RFC 4648)")
@@ -6219,7 +6594,7 @@ portable \"best effort\" constant-time operation and embedded-friendly
 (define-public rust-base-x-0.2
   (package
     (name "rust-base-x")
-    (version "0.2.6")
+    (version "0.2.11")
     (source
      (origin
        (method url-fetch)
@@ -6227,14 +6602,13 @@ portable \"best effort\" constant-time operation and embedded-friendly
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1hfy0wv7j5ynd73yk1vyr32pqa77rp15lkrc54f8ky9c6hcbc80v"))))
+         "0w02sdqvg7zwm91agb2phikw4ri8jmncw32paxsv8ra1jv8ckfsc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-bencher" ,rust-bencher-0.1)
-        ("rust-json" ,rust-json-0.11)
-        ("rust-rand" ,rust-rand-0.3))))
+        ("rust-json" ,rust-json-0.12)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/OrKoN/base-x-rs")
     (synopsis "Encode/decode any base")
     (description "This library provides for encoding and decoding any base.")
@@ -6862,41 +7236,6 @@ bindings to C and C++ libraries.")
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))))
 
-(define-public rust-bindgen-0.49
-  (package
-    (inherit rust-bindgen-0.50)
-    (name "rust-bindgen")
-    (version "0.49.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bindgen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0vjacbvashvds5rbrlqvq5fy55wmp50iia3mnczvycap7mzhh1sc"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cexpr" ,rust-cexpr-0.3)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-clang-sys" ,rust-clang-sys-0.28)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-env-logger" ,rust-env-logger-0.6)
-        ("rust-fxhash" ,rust-fxhash-0.2)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
-        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-2))
-       #:cargo-development-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))))))
-
 (define-public rust-bindgen-0.48
   (package
     (inherit rust-bindgen-0.50)
@@ -6932,72 +7271,6 @@ bindings to C and C++ libraries.")
         ("rust-diff" ,rust-diff-0.1)
         ("rust-shlex" ,rust-shlex-0.1))))))
 
-(define-public rust-bindgen-0.47
-  (package
-    (inherit rust-bindgen-0.50)
-    (name "rust-bindgen")
-    (version "0.47.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bindgen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0b9fyq3h4lz5xfy6gv5h8v6j3hzyqcarlylvw9zc715pas1pz09a"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cexpr" ,rust-cexpr-0.3)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-clang-sys" ,rust-clang-sys-0.26)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-env-logger" ,rust-env-logger-0.6)
-        ("rust-hashbrown" ,rust-hashbrown-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
-        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-shlex" ,rust-shlex-0.1)
-        ("rust-which" ,rust-which-2))))))
-
-(define-public rust-bindgen-0.46
-  (package
-    (inherit rust-bindgen-0.50)
-    (name "rust-bindgen")
-    (version "0.46.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bindgen" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1qclvj5pydn5camw396b0r3nz4nn3p5wpxg4fgg1favp043pyzwg"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cexpr" ,rust-cexpr-0.3)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-clang-sys" ,rust-clang-sys-0.26)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-env-logger" ,rust-env-logger-0.6)
-        ("rust-hashbrown" ,rust-hashbrown-0.1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
-        ("rust-proc-macro2" ,rust-proc-macro2-0.4)
-        ("rust-quote" ,rust-quote-0.6)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-which" ,rust-which-2))
-       #:cargo-development-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-diff" ,rust-diff-0.1)
-        ("rust-shlex" ,rust-shlex-0.1))))) )
-
 (define-public rust-bindgen-0.37
   (package
     (inherit rust-bindgen-0.50)
@@ -7462,28 +7735,32 @@ types.")
 (define-public rust-bitflags-2
   (package
     (name "rust-bitflags")
-    (version "2.1.0")
+    (version "2.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bitflags" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1cxcbx6mm1w2d7x9xd2vcqgr69a2ydw9k110ir7rrkmmrdwyn2y7"))))
+        (base32 "0hifjw3191g3w5cwqqvbx8knrr3zchdwfc3rs6mn11p5si9yf2v3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-bytemuck" ,rust-bytemuck-1)
         ("rust-rustversion" ,rust-rustversion-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-test" ,rust-serde-test-1)
-        ("rust-trybuild" ,rust-trybuild-1))))
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-zerocopy" ,rust-zerocopy-0.6))))
     (home-page "https://github.com/bitflags/bitflags")
     (synopsis "Macro to generate structures which behave like bitflags")
     (description "This package provides a macro to generate structures which
@@ -7872,8 +8149,33 @@ streams in big-endian and little-endian formats.")
     (description "This package provides BLAKE2 hash functions in Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-blake2b-simd-1
+  (package
+    (name "rust-blake2b-simd")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "blake2b-simd" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1g04mc4gf6jyymyj41749jhhplm3ymnc6z7rhkc1fqwclv4hsbrw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arrayref" ,rust-arrayref-0.3)
+        ("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-constant-time-eq" ,rust-constant-time-eq-0.2))))
+    (home-page "https://github.com/oconnor663/blake2_simd")
+    (synopsis "Pure Rust BLAKE2b implementation with dynamic SIMD")
+    (description
+     "This package provides a pure Rust implementation of the BLAKE2b and
+BLAKE2bp hash functions.")
+    (license license:expat)))
+
 (define-public rust-blake2b-simd-0.5
   (package
+    (inherit rust-blake2b-simd-1)
     (name "rust-blake2b-simd")
     (version "0.5.10")
     (source
@@ -7885,19 +8187,12 @@ streams in big-endian and little-endian formats.")
        (sha256
         (base32
          "12icvk8ixlivv3jv5nyrg01sajp4s279zb1kmif0nfja4ms2vyyq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-arrayref" ,rust-arrayref-0.3)
         ("rust-arrayvec" ,rust-arrayvec-0.5)
-        ("rust-constant-time-eq" ,rust-constant-time-eq-0.1))))
-    (home-page "https://github.com/oconnor663/blake2_simd")
-    (synopsis "Pure Rust BLAKE2b implementation with dynamic SIMD")
-    (description
-     "This package provides a pure Rust implementation of the BLAKE2b and
-BLAKE2bp hash functions.")
-    (license license:expat)))
+        ("rust-constant-time-eq" ,rust-constant-time-eq-0.1))))))
 
 (define-public rust-blakeout-0.3
   (package
@@ -8346,8 +8641,56 @@ programs.")
         ("rust-parking" ,rust-parking-1)
         ("rust-waker-fn" ,rust-waker-fn-1))))))
 
+(define-public rust-blowfish-0.9
+  (package
+    (name "rust-blowfish")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "blowfish" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1mw7bvj3bg5w8vh9xw9xawqh7ixk2xwsxkj34ph96b9b1z6y44p4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Blowfish block cipher")
+    (description "Blowfish block cipher")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-botan-0.10
+  (package
+    (name "rust-botan")
+    (version "0.10.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vzl5pdysh848zpphsgvj9c40zdi3ynl32zzixsd8vg4vaflhb49"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-botan-sys" ,rust-botan-sys-0.10))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4)
+        ("rust-wycheproof" ,rust-wycheproof-0.5))))
+    (inputs (list botan))
+    (home-page "https://botan.randombit.net/")
+    (synopsis "Rust wrapper for Botan cryptography library")
+    (description "Rust wrapper for Botan cryptography library")
+    (license license:expat)))
+
 (define-public rust-botan-0.8
   (package
+    (inherit rust-botan-0.10)
     (name "rust-botan")
     (version "0.8.1")
     (source (origin
@@ -8356,20 +8699,35 @@ programs.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32 "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-botan-sys" ,rust-botan-sys-0.8)
         ("rust-cstr-core" ,rust-cstr-core-0.2)
-        ("rust-cty" ,rust-cty-0.2))))
+        ("rust-cty" ,rust-cty-0.2))))))
+
+(define-public rust-botan-sys-0.10
+  (package
+    (name "rust-botan-sys")
+    (version "0.10.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cbjr44gc5dhmgl43sfiqzbsma4anfi3h26m4yzsli23yd1lmyf8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-botan-src" ,rust-botan-src-0.21903))))
     (inputs (list botan))
     (home-page "https://botan.randombit.net/")
-    (synopsis "Rust wrapper for Botan cryptography library")
-    (description "Rust wrapper for Botan cryptography library")
+    (synopsis "FFI wrapper for Botan cryptography library")
+    (description "FFI wrapper for Botan cryptography library")
     (license license:expat)))
 
 (define-public rust-botan-sys-0.8
   (package
+    (inherit rust-botan-sys-0.10)
     (name "rust-botan-sys")
     (version "0.8.1")
     (source (origin
@@ -8378,28 +8736,22 @@ programs.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32 "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-botan-src" ,rust-botan-src-0.21703)
-        ("rust-cty" ,rust-cty-0.2))))
-    (inputs (list botan))
-    (home-page "https://botan.randombit.net/")
-    (synopsis "FFI wrapper for Botan cryptography library")
-    (description "FFI wrapper for Botan cryptography library")
-    (license license:expat)))
+        ("rust-cty" ,rust-cty-0.2))))))
 
-(define-public rust-botan-src-0.21703
+(define-public rust-botan-src-0.21903
   (package
     (name "rust-botan-src")
-    (version "0.21703.0")
+    (version "0.21903.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "botan-src" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8"))
+                "19fhll4g0v8hbyjxg8c790l9ln5xgf4r6xdcnw438mpy81hvrdxy"))
               (modules '((guix build utils)))
               (snippet
                '(begin (delete-file-recursively "botan")))))
@@ -8410,6 +8762,22 @@ programs.")
     (description "Sources of Botan cryptography library")
     (license license:expat)))
 
+(define-public rust-botan-src-0.21703
+  (package
+    (inherit rust-botan-src-0.21903)
+    (name "rust-botan-src")
+    (version "0.21703.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "botan-src" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file-recursively "botan")))))))
+
 (define-public rust-boxfnonce-0.1
   (package
     (name "rust-boxfnonce")
@@ -8535,7 +8903,7 @@ Bresenham's line algorithm.")
 (define-public rust-brotli-3
   (package
     (name "rust-brotli")
-    (version "3.3.0")
+    (version "3.3.4")
     (source
      (origin
        (method url-fetch)
@@ -8543,7 +8911,7 @@ Bresenham's line algorithm.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0gk1g3fx1vps2ic8kh5n32gzq9h5w1j3ff6lvjm171ph428r2abz"))))
+         "0s7z0nrv04wxniwijh5iig1w31sphc6lz38zc8lr7qlarkdv3851"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8693,20 +9061,46 @@ alphabet.")
      "This crate provides encoding and decoding support for BSON.")
     (license license:expat)))
 
+(define-public rust-bstr-1
+  (package
+    (name "rust-bstr")
+    (version "1.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bstr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01bvsr3x9n75klbwxym0zf939vzim0plsmy786p0zzzvrj6i9637"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2)
+        ("rust-regex-automata" ,rust-regex-automata-0.3)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-ucd-parse" ,rust-ucd-parse-0.1)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
+    (home-page "https://github.com/BurntSushi/bstr")
+    (synopsis "String type that is not required to be valid UTF-8")
+    (description
+     "This package provides a string type that is not required to be valid
+UTF-8.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-bstr-0.2
   (package
+    (inherit rust-bstr-1)
     (name "rust-bstr")
     (version "0.2.17")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "bstr" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds"))))
-    (build-system cargo-build-system)
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "bstr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -8717,13 +9111,27 @@ alphabet.")
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-ucd-parse" ,rust-ucd-parse-0.1)
-        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
-    (home-page "https://github.com/BurntSushi/bstr")
-    (synopsis
-     "String type that is not required to be valid UTF-8")
-    (description
-     "This package provides a string type that is not required to be valid
-UTF-8.")
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))))
+
+(define-public rust-buf-min-0.7
+  (package
+    (name "rust-buf-min")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "buf-min" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "146wb3p4n62jbka6ym7sagziydcbixwhamw0cknl49w4ys66km92"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytes" ,rust-bytes-1)
+        ("rust-ntex-bytes" ,rust-ntex-bytes-0.1))))
+    (home-page "https://github.com/botika/buf-min")
+    (synopsis "Minimal utf-8 safe buffer traits")
+    (description "This package provides mminimal utf-8 safe buffer traits.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-buf-redux-0.8
@@ -8950,6 +9358,25 @@ users can send along with a bug report.")
 constants from build.rs or a script.")
     (license license:expat)))
 
+(define-public rust-build-context-0.1
+  (package
+    (name "rust-build-context")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "build-context" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15jnnh6vk7ifc98j08rv8v9yapzaciz7awdk4q2lrna868dnzhjh"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/taiki-e/build-context")
+    (synopsis "Build environment/target information available in libraries")
+    (description
+     "Make build environment/target information available as constants in normal
+libraries and binaries.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-built-0.5
   (package
     (name "rust-built")
@@ -8982,7 +9409,7 @@ constants from build.rs or a script.")
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
-    (version "3.7.0")
+    (version "3.13.0")
     (source
      (origin
        (method url-fetch)
@@ -8991,13 +9418,16 @@ constants from build.rs or a script.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0ccn025n0x1gc0ijjlabin2xs7dkx5yfagkskr93yw9c06pyfncw"))))
+         "1h9zmxb9d14m2sx34daz88fsjw1lx7d5mhaqbldwqgl8xzdc7qm3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f                      ;cargo_readme_up_to_date test fails
+     `(#:tests? #f                      ; Not all files included.
+       #:cargo-inputs
+       (("rust-allocator-api2" ,rust-allocator-api2-0.2))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/fitzgen/bumpalo")
     (synopsis "Fast bump allocation arena for Rust")
     (description
@@ -9129,14 +9559,14 @@ of built-in fundamental numeric types.")
 (define-public rust-bytecheck-0.6
   (package
     (name "rust-bytecheck")
-    (version "0.6.10")
+    (version "0.6.11")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "bytecheck" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "07vxs7y441f7d6mjzmli80ykmfajwk9jqci549b29sr319j13zhk"))))
+                "09xnpjfhw36a973dpdd2mcmb93rrix539j49vkkgcqf878174qwb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -9144,7 +9574,7 @@ of built-in fundamental numeric types.")
         ("rust-ptr-meta" ,rust-ptr-meta-0.1)
         ("rust-simdutf8" ,rust-simdutf8-0.1)
         ("rust-uuid" ,rust-uuid-1))))
-    (home-page "https://github.com/djkoloski/bytecheck")
+    (home-page "https://github.com/rkyv/bytecheck")
     (synopsis "Type validation framework")
     (description "This package provides a type validation framework for
 Rust.")
@@ -9173,21 +9603,21 @@ Rust.")
 (define-public rust-bytecheck-derive-0.6
   (package
     (name "rust-bytecheck-derive")
-    (version "0.6.10")
+    (version "0.6.11")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "bytecheck_derive" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1r9dlkx5w1p8d5gif2yvn6bz1856yij2fxi4wakq2vxl7ia2a4p3"))))
+                "0qdgfqx23gbjp5scbc8fhqc5kd014bpxn8hc9i9ssd8r4rplrv57"))))
     (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/djkoloski/bytecheck")
+    (home-page "https://github.com/rkyv/bytecheck")
     (synopsis "Derive macro for bytecheck")
     (description "This package provides a Derive macro for bytecheck, the type
 validation framework for Rust.")
@@ -9214,22 +9644,22 @@ validation framework for Rust.")
 (define-public rust-bytecount-0.6
   (package
     (name "rust-bytecount")
-    (version "0.6.2")
+    (version "0.6.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "bytecount" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0bklbbl5ml9ic18s9kn5iix1grrqc6sypz6hvfn8sjc6zhgv7zkj"))))
+                "173wsvyagflb7ic3hpvp1db6q3dsigr452inslnzmsb3ix3nlrrc"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-packed-simd-2" ,rust-packed-simd-2-0.3))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.7))))
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://github.com/llogiq/bytecount")
     (synopsis "Count occurrences of a given byte")
     (description
@@ -9890,31 +10320,76 @@ spreadsheet file.")
 canonical filesystem paths.")
     (license license:asl2.0)))
 
+(define-public rust-capnp-0.14
+  (package
+    (name "rust-capnp")
+    (version "0.14.11")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "capnp" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wwp619sib07raykk93n6j7amvsinlchnicxfjnnb7bx5if0ijid"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.9))
+       #:cargo-development-inputs
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))
+    (home-page "https://github.com/capnproto/capnproto-rust")
+    (synopsis "Runtime library for Cap'n Proto data encoding")
+    (description "This package provides a runtime library for Cap'n Proto data
+encoding.")
+    (license license:expat)))
+
 (define-public rust-capnp-0.13
   (package
+    (inherit rust-capnp-0.14)
     (name "rust-capnp")
-    (version "0.13.6")
+    (version "0.13.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "capnp" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1bx2pj0ysmyd1ryd5s43m3c7n5k067x1aciqiiyg4kjswlcs6xjf"))))
-    (build-system cargo-build-system)
+        (base32 "1xkfv6mm38y4d6ykxmvs1pdfywnn3n5bklsqcsz9xh72i9ffd3s5"))))
     (arguments
      `(#:cargo-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.9))
        #:cargo-development-inputs
-       (("rust-quickcheck" ,rust-quickcheck-0.9))))
-    (home-page "https://github.com/capnproto/capnproto-rust")
-    (synopsis "Runtime library for Cap'n Proto data encoding")
-    (description "This package provides a runtime library for Cap'n Proto data
-encoding.")
+       (("rust-quickcheck" ,rust-quickcheck-0.9))))))
+
+(define-public rust-capnp-futures-0.14
+  (package
+    (name "rust-capnp-futures")
+    (version "0.14.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "capnp-futures" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fp6lr04w50mzfpxvvrbdm9pny8ch17514y7qgcsk6giqqf808cq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-capnp" ,rust-capnp-0.14)
+        ("rust-futures" ,rust-futures-0.3))
+       #:cargo-development-inputs
+       (("rust-capnp" ,rust-capnp-0.14)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+    (home-page "https://github.com/dwrensha/capnproto-rust")
+    (synopsis "Async serialization for Cap'n Proto messages")
+    (description "This package provides async serialization for Cap'n Proto
+messages.")
     (license license:expat)))
 
 (define-public rust-capnp-futures-0.13
   (package
+    (inherit rust-capnp-futures-0.14)
     (name "rust-capnp-futures")
     (version "0.13.2")
     (source
@@ -9924,22 +10399,42 @@ encoding.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "18q93ncbfcnjq7zhvy9idnifypmi2qcp775q7454y3r4lvvdcyyw"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-capnp" ,rust-capnp-0.13)
         ("rust-futures" ,rust-futures-0.3))
        #:cargo-development-inputs
        (("rust-capnp" ,rust-capnp-0.13)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+        ("rust-quickcheck" ,rust-quickcheck-0.9))))))
+
+(define-public rust-capnp-rpc-0.14
+  (package
+    (name "rust-capnp-rpc")
+    (version "0.14.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "capnp-rpc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pm9bjw481lw1zp8lmzkpsjrb85lbjg5s46piqbc3wk8dzwifksc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-capnp" ,rust-capnp-0.14)
+        ("rust-capnp-futures" ,rust-capnp-futures-0.14)
+        ("rust-futures" ,rust-futures-0.3))))
+    (native-inputs
+     (list capnproto))
     (home-page "https://github.com/capnproto/capnproto-rust")
-    (synopsis "Async serialization for Cap'n Proto messages")
-    (description "This package provides async serialization for Cap'n Proto
-messages.")
+    (synopsis "Cap'n Proto remote procedure call protocol implementation")
+    (description "This package provides an implementation of the Cap'n Proto
+remote procedure call protocol")
     (license license:expat)))
 
 (define-public rust-capnp-rpc-0.13
   (package
+    (inherit rust-capnp-rpc-0.14)
     (name "rust-capnp-rpc")
     (version "0.13.1")
     (source
@@ -9949,21 +10444,13 @@ messages.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "17p0y0yk68pzsnpmaklhiqrrlrrv0ld8nhbg4qflmgibshi8b69p"))))
-    (build-system cargo-build-system)
-    (native-inputs
-     (list capnproto))
     (arguments
      `(#:cargo-inputs
        (("rust-capnp" ,rust-capnp-0.13)
         ("rust-capnp-futures" ,rust-capnp-futures-0.13)
         ("rust-futures" ,rust-futures-0.3))
        #:cargo-development-inputs
-       (("rust-capnpc" ,rust-capnpc-0.13))))
-    (home-page "https://github.com/capnproto/capnproto-rust")
-    (synopsis "Cap'n Proto remote procedure call protocol implementation")
-    (description "This package provides an implementation of the Cap'n Proto
-remote procedure call protocol")
-    (license license:expat)))
+       (("rust-capnpc" ,rust-capnpc-0.13))))))
 
 (define-public rust-capnpc-0.13
   (package
@@ -10031,10 +10518,35 @@ capabilities.")
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-libc" ,rust-libc-0.2))))))
 
-(define-public rust-cargo-0.68
+(define-public rust-carapace-spec-clap-0.1
+  (package
+    (name "rust-carapace-spec-clap")
+    (version "0.1.12")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "carapace-spec-clap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pb140siiqbljpvpck5hldmfyadi3db3s8xhcqnf9ff2ln3bs9zf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-indexmap" ,rust-indexmap-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.9))
+       #:cargo-development-inputs (("rust-snapbox" ,rust-snapbox-0.4))))
+    (home-page "https://github.com/rsteube/carapace-spec-clap")
+    (synopsis "spec generation for clap-rs/clap")
+    (description "This package provides spec generation for clap-rs/clap.")
+    (license license:expat)))
+
+(define-public rust-cargo-0.69
   (package
     (name "rust-cargo")
-    (version "0.68.0")
+    (version "0.69.1")
     (source
      (origin
        (method url-fetch)
@@ -10043,7 +10555,12 @@ capabilities.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0kgj3kh3lkdviz2y2apmkkh1yy7n88aj6gfb96l0gm1w2xq80pnz"))))
+         "0m2dki3hx81vifhy2abp3j5079y3nja52arm60xp6lv24jwimkrf"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
+                   (string-append "^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(;; The test suite is disabled as the internal 'cargo-test-macro' and
@@ -10087,6 +10604,7 @@ capabilities.")
         ("rust-opener" ,rust-opener-0.5)
         ("rust-openssl" ,rust-openssl-0.10)
         ("rust-os-info" ,rust-os-info-3)
+        ("rust-pasetors" ,rust-pasetors-0.6)
         ("rust-pathdiff" ,rust-pathdiff-0.2)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4)
@@ -10103,6 +10621,7 @@ capabilities.")
         ("rust-tar" ,rust-tar-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-time" ,rust-time-0.3)
         ("rust-toml-edit" ,rust-toml-edit-0.15)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-unicode-xid" ,rust-unicode-xid-0.2)
@@ -10122,10 +10641,49 @@ capabilities.")
 the library crate of Cargo.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cargo-config2-0.1
+  (package
+    (name "rust-cargo-config2")
+    (version "0.1.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cargo-config2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vxbyjd2zm75k5jx3hgqi9h5fj3j37ahrpyl1davsz5zzk1j5mj1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
+       (("rust-cfg-expr" ,rust-cfg-expr-0.15)
+        ("rust-home" ,rust-home-0.5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-shell-escape" ,rust-shell-escape-0.1)
+        ("rust-toml" ,rust-toml-0.7))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-build-context" ,rust-build-context-0.1)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-duct" ,rust-duct-0.13)
+        ("rust-fs-err" ,rust-fs-err-2)
+        ("rust-lexopt" ,rust-lexopt-0.3)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-toml" ,rust-toml-0.7)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://github.com/taiki-e/cargo-config2")
+    (synopsis "Load and resolve Cargo configuration")
+    (description "Load and resolve Cargo configuration.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-cargo-metadata-0.15
   (package
     (name "rust-cargo-metadata")
-    (version "0.15.0")
+    (version "0.15.5")
     (source
      (origin
        (method url-fetch)
@@ -10134,24 +10692,18 @@ the library crate of Cargo.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0dpcddizs4zhbvbsv3kxx9p0qppidxh05jz7dlf45f5rsm9pbfrs"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Allow older versions of the serde crates.
-           (substitute* "Cargo.toml"
-             (("1.0.136") "1.0.133")
-             (("1.0.79") "1.0.74"))))))
+         "1lsmvfznc6vlizxvjm5rvi8m6iyj0ldjhbh80h6bymdp08vl969g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f              ; Not all tests included.
        #:cargo-inputs
        (("rust-camino" ,rust-camino-1)
         ("rust-cargo-platform" ,rust-cargo-platform-0.1)
-        ("rust-derive-builder" ,rust-derive-builder-0.11)
+        ("rust-derive-builder" ,rust-derive-builder-0.12)
         ("rust-semver" ,rust-semver-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1))))
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1))))
     (home-page "https://github.com/oli-obk/cargo_metadata")
     (synopsis "Structured access to the output of `cargo metadata`")
     (description
@@ -10328,6 +10880,26 @@ optional dependency graph analysis.")
         ("rust-toml" ,rust-toml-0.5)
         ("rust-url" ,rust-url-2))))))
 
+(define-public rust-cargo-options-0.6
+  (package
+    (name "rust-cargo-options")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cargo-options" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m99dz9vpsplf4s955dvfnfrcvdkm7cifwymriyam11bdfm8v3lv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-clap" ,rust-clap-4))
+       #:cargo-development-inputs (("rust-trycmd" ,rust-trycmd-0.14))))
+    (home-page "https://github.com/messense/cargo-options")
+    (synopsis "Reusable common Cargo command line options")
+    (description "Reusable common Cargo command line options.")
+    (license license:expat)))
+
 (define-public rust-cargo-platform-0.1
   (package
     (name "rust-cargo-platform")
@@ -10477,6 +11049,29 @@ box''.")
        #:cargo-development-inputs
        (("rust-quickcheck" ,rust-quickcheck-0.9))))))
 
+(define-public rust-cast5-0.11
+  (package
+    (name "rust-cast5")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cast5" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04crg8dj6lxbp3lmdc3filsahxcyvccvhm0gx40g1k5i7mkpvc16"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "CAST5 block cipher")
+    (description "CAST5 block cipher")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-castaway-0.2
   (package
     (name "rust-castaway")
@@ -10501,6 +11096,30 @@ box''.")
 types that works on stable Rust.")
     (license license:expat)))
 
+(define-public rust-cbc-0.1
+  (package
+    (name "rust-cbc")
+    (version "0.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cbc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19l9y9ccv1ffg6876hshd123f2f8v7zbkc4nkckqycxf8fajmd96"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-modes")
+    (synopsis "Cipher Block Chaining (CBC) block cipher mode of operation")
+    (description "Cipher Block Chaining (CBC) block cipher mode of operation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cblas-sys-0.1
   (package
     (name "rust-cblas-sys")
@@ -10653,6 +11272,30 @@ that need to represent UTF-16 data as 8-bit characters.")
        #:cargo-development-inputs
        (("rust-clang-sys" ,rust-clang-sys-0.11))))))
 
+(define-public rust-cfb-mode-0.8
+  (package
+    (name "rust-cfb-mode")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cfb-mode" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0c6kd34jk4p52vr0qgn9slj6zdgmc42gfcqr6mqhmy37g138v2vk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-modes")
+    (synopsis "Cipher Feedback (CFB) block cipher mode of operation")
+    (description "Cipher Feedback (CFB) block cipher mode of operation")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cfg-aliases-0.1
   (package
     (name "rust-cfg-aliases")
@@ -10673,17 +11316,17 @@ that need to represent UTF-16 data as 8-bit characters.")
 winded @code{#[cfg()]} checks.")
     (license license:expat)))
 
-(define-public rust-cfg-expr-0.10
+(define-public rust-cfg-expr-0.15
   (package
     (name "rust-cfg-expr")
-    (version "0.10.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cfg-expr" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1nw50j1sl6q96067399r1c6ppwp483q6vvmqdsnv493cv7sarb0a"))))
+    (version "0.15.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cfg-expr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0744z7sky6kgchfk2ilchb16bjyz7nk8p8zfn3p953y2xir00p11"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -10698,6 +11341,25 @@ winded @code{#[cfg()]} checks.")
 expressions.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cfg-expr-0.10
+  (package
+    (inherit rust-cfg-expr-0.15)
+    (name "rust-cfg-expr")
+    (version "0.10.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cfg-expr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1nw50j1sl6q96067399r1c6ppwp483q6vvmqdsnv493cv7sarb0a"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-smallvec" ,rust-smallvec-1)
+        ("rust-target-lexicon" ,rust-target-lexicon-0.12))
+       #:cargo-development-inputs
+       (("rust-similar-asserts" ,rust-similar-asserts-1))))))
+
 (define-public rust-cfg-expr-0.8
   (package
     (inherit rust-cfg-expr-0.10)
@@ -10958,21 +11620,24 @@ clauses.")
 (define-public rust-charset-0.1
   (package
     (name "rust-charset")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "charset" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wzwnck82maqa03hvpprpd1zvnzmzxpkqna4pxnf4g8wvxj6whjg"))))
+        (base32 "0iidr9d5a0jghkaj0888skm3c6368ff07nxmzwmwr8hj3afhgs8q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-base64" ,rust-base64-0.10)
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
-        ("rust-serde" ,rust-serde-1))))
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://docs.rs/charset/")
     (synopsis "Thunderbird-compatible character encoding decoding for email")
     (description
@@ -11052,23 +11717,25 @@ Python arrow.humanize.")
 (define-public rust-chrono-tz-0.6
   (package
     (name "rust-chrono-tz")
-    (version "0.6.0")
+    (version "0.6.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "chrono-tz" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12qcpjqva4fpj5kdcksbfhsc8dkbdhyi2z56p8dwf9bxc0f1rh34"))))
+        (base32 "1pmv434fhw9pwiqc12pvgaiskrq4v1dh1f238gfsg48r301r5hr9"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
-        ("rust-chrono-tz-build" ,rust-chrono-tz-build-0.0.2)
-        ("rust-phf" ,rust-phf-0.10)
+        ("rust-chrono-tz-build" ,rust-chrono-tz-build-0.0.3)
+        ("rust-phf" ,rust-phf-0.11)
         ("rust-serde" ,rust-serde-1)
-        ("rust-uncased" ,rust-uncased-0.9))))
+        ("rust-uncased" ,rust-uncased-0.9))
+       #:cargo-development-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde-test" ,rust-serde-test-1))))
     (home-page "https://github.com/chronotope/chrono-tz")
     (synopsis "TimeZone implementations for rust-chrono from the IANA database")
     (description
@@ -11095,24 +11762,23 @@ for @code{rust-chrono}.")
         ("rust-parse-zoneinfo" ,rust-parse-zoneinfo-0.3)
         ("rust-serde" ,rust-serde-1))))))
 
-(define-public rust-chrono-tz-build-0.0.2
+(define-public rust-chrono-tz-build-0.0.3
   (package
     (name "rust-chrono-tz-build")
-    (version "0.0.2")
+    (version "0.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "chrono-tz-build" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0schy3z03psvmc6734hgkx52cdb3zvixgzhvhr0mzxmj7x4qs1fv"))))
+        (base32 "031s51dd2vbxdhz7fxk1jpbbvr800w57an14bsq3fd5khwx9ql3g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-parse-zoneinfo" ,rust-parse-zoneinfo-0.3)
-        ("rust-phf" ,rust-phf-0.10)
-        ("rust-phf-codegen" ,rust-phf-codegen-0.10)
+        ("rust-phf" ,rust-phf-0.11)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.11)
         ("rust-regex" ,rust-regex-1)
         ("rust-uncased" ,rust-uncased-0.9))))
     (home-page "https://github.com/chronotope/chrono-tz")
@@ -11122,6 +11788,32 @@ for @code{rust-chrono}.")
 chrono-tz Rust crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-chumsky-0.9
+  (package
+    (name "rust-chumsky")
+    (version "0.9.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "chumsky" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "179llm5hybq5fr21mi681dq5f51j98laqmwh56kvadk2p4l045r3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-stacker" ,rust-stacker-0.1))
+       #:cargo-development-inputs
+       (("rust-ariadne" ,rust-ariadne-0.1)
+        ("rust-pom" ,rust-pom-3))))
+    (home-page "https://github.com/zesterer/chumsky")
+    (synopsis "Parser library for humans with powerful error recovery")
+    (description
+     "This package provides a parser library for humans with powerful error
+recovery.")
+    (license license:expat)))
+
 (define-public rust-chunked-transfer-1
   (package
     (name "rust-chunked-transfer")
@@ -11326,7 +12018,7 @@ usage.")
 (define-public rust-cipher-0.4
   (package
     (name "rust-cipher")
-    (version "0.4.3")
+    (version "0.4.4")
     (source
       (origin
         (method url-fetch)
@@ -11334,7 +12026,7 @@ usage.")
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "17mmmqaalirdx7bpdhrgzp1sd392zm08mjrr24cjr57pz1q351yi"))))
+         (base32 "1b9x9agg67xq5nq879z66ni4l08m6m3hqcshk37d4is4ysd3ngvp"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -11450,31 +12142,9 @@ traits.")
          (base32
           "1hjr333izzhs6bic84qwnyzy5xzmvasib8f3zkzj4ln3a97c1xyp"))))))
 
-(define-public rust-clang-sys-0.22
-  (package
-    (inherit rust-clang-sys-0.26)
-    (name "rust-clang-sys")
-    (version "0.22.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "clang-sys" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0f65dw1ydnzq4wrv894fql78n4ikb53jjp53xck0s4hb64s1m6lk"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-glob" ,rust-glob-0.2)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-libloading" ,rust-libloading-0.5))))))
-
 (define-public rust-clang-sys-0.11
   (package
-    (inherit rust-clang-sys-0.22)
+    (inherit rust-clang-sys-0.26)
     (name "rust-clang-sys")
     (version "0.11.1")
     (source
@@ -11496,6 +12166,85 @@ traits.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libloading" ,rust-libloading-0.3))))))
 
+(define-public rust-clap-complete-command-0.5
+  (package
+    (name "rust-clap-complete-command")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-complete-command" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0gcsj6ls8y0jpjp5172gdqwx5zj6gm4wdgrqysglr3d73qvrad0q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-carapace-spec-clap" ,rust-carapace-spec-clap-0.1)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-clap-complete-fig" ,rust-clap-complete-fig-4)
+        ("rust-clap-complete-nushell" ,rust-clap-complete-nushell-0.1))
+       #:cargo-development-inputs (("rust-clap" ,rust-clap-4))))
+    (home-page "https://github.com/nihaals/clap-complete-command")
+    (synopsis
+     "Reduces boilerplate for adding a shell completion command to Clap")
+    (description "This package reduces boilerplate for adding a shell completion
+command to Clap.")
+    (license license:expat)))
+
+(define-public rust-clap-complete-fig-4
+  (package
+    (name "rust-clap-complete-fig")
+    (version "4.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-complete-fig" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17yfrdxy555fv56y0n69r4kgd2iwpq4mgz6k5rn5lc2i1b9y3zlr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-snapbox" ,rust-snapbox-0.4))))
+    (home-page "https://github.com/clap-rs/clap/tree/master/clap_complete_fig")
+    (synopsis "Generator library used with clap for Fig completion scripts")
+    (description
+     "This package provides a generator library used with clap for Fig
+completion scripts.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-clap-complete-nushell-0.1
+  (package
+    (name "rust-clap-complete-nushell")
+    (version "0.1.10")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-complete-nushell" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0b15s7d9xpqjr1fpj8lmcv6nhgbhxvm0rzbh3cavv0xawvsl3yn7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4))
+       #:cargo-development-inputs (("rust-snapbox" ,rust-snapbox-0.4))))
+    (home-page
+     "https://github.com/clap-rs/clap/tree/master/clap_complete_nushell")
+    (synopsis
+     "Generator library used with clap for Nushell completion scripts")
+    (description
+     "This package provides a generator library used with clap for Nushell
+completion scripts.")
+    (license license:expat)))
+
 (define-public rust-clap-conf-0.1
   (package
     (name "rust-clap-conf")
@@ -11529,22 +12278,21 @@ how to behave across the three main input sources")
 (define-public rust-clap-derive-4
   (package
     (name "rust-clap-derive")
-    (version "4.1.0")
+    (version "4.3.12")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "clap_derive" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1s4c4005xsdw5zlq8z5h02mgjcsqgcd1ydxg6iird49fcxyjfjk8"))))
+        (base32 "0l50j37jwbzfl29bd2a1ib7z1jpch4b9868himrgwpgwb1bvpaal"))))
     (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-heck" ,rust-heck-0.4)
-             ("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))))
+             ("rust-syn" ,rust-syn-2))))
     (home-page "https://clap.rs/")
     (synopsis "Procedural macro crate for Clap")
     (description
@@ -11576,33 +12324,20 @@ how to behave across the three main input sources")
 (define-public rust-clap-4
   (package
     (name "rust-clap")
-    (version "4.1.6")
+    (version "4.3.19")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "clap" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qzmsg3j2rch16gbh753hsdgvfv6q4vc2xdxgnl66kadsj40a2zc"))))
+        (base32 "0ba5mbnkfr5v92yrr00f194w8k2rwyi9ckjcy1bqm5gz1fi09lsz"))))
     (build-system cargo-build-system)
     (arguments
-     (list #:cargo-test-flags
-           '(list "--release" "--"
-                  ;; Some of the doc tests fail.
-                  "--skip=builder::range::ValueRange::new"
-                  "--skip=builder::value_parser::value_parser")
-           #:cargo-inputs
-           `(("rust-backtrace" ,rust-backtrace-0.3)
-             ("rust-bitflags" ,rust-bitflags-1)
+     (list #:cargo-inputs
+           `(("rust-clap-builder" ,rust-clap-builder-4)
              ("rust-clap-derive" ,rust-clap-derive-4)
-             ("rust-clap-lex" ,rust-clap-lex-0.3)
-             ("rust-is-terminal" ,rust-is-terminal-0.4)
-             ("rust-once-cell" ,rust-once-cell-1)
-             ("rust-strsim" ,rust-strsim-0.10)
-             ("rust-termcolor" ,rust-termcolor-1)
-             ("rust-terminal-size" ,rust-terminal-size-0.2)
-             ("rust-unicase" ,rust-unicase-2)
-             ("rust-unicode-width" ,rust-unicode-width-0.1))
+             ("rust-once-cell" ,rust-once-cell-1))
            #:cargo-development-inputs
            `(("rust-humantime" ,rust-humantime-2)
              ("rust-rustversion" ,rust-rustversion-1)
@@ -11694,23 +12429,67 @@ Command Line Argument Parser.")
         ("rust-version-sync" ,rust-version-sync-0.8))))
     (license license:expat)))
 
+(define-public rust-clap-builder-4
+  (package
+    (name "rust-clap-builder")
+    (version "4.3.19")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-builder" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qg9xrshy9h5cmavg4zfc1gzjkcwq2p97qyg6lm6dr8zizqa7ih1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; Some of the doc tests fail.
+             "--skip=builder::range::ValueRange::new"
+             "--skip=builder::value_parser::value_parser")
+       #:cargo-inputs
+       (("rust-anstream" ,rust-anstream-0.3)
+        ("rust-anstyle" ,rust-anstyle-1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-clap-lex" ,rust-clap-lex-0.5)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-strsim" ,rust-strsim-0.10)
+        ("rust-terminal-size" ,rust-terminal-size-0.2)
+        ("rust-unicase" ,rust-unicase-2)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs
+       (("rust-color-print" ,rust-color-print-0.3)
+        ("rust-humantime" ,rust-humantime-2)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-shlex" ,rust-shlex-1)
+        ("rust-snapbox" ,rust-snapbox-0.4)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-trycmd" ,rust-trycmd-0.14)
+        ("rust-unic-emoji-char" ,rust-unic-emoji-char-0.9))))
+    (home-page "https://github.com/clap-rs/clap")
+    (synopsis "Full-featured Command Line Argument Parser")
+    (description
+     "This package provides a simple to use, efficient, and full-featured
+Command Line Argument Parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clap-complete-4
   (package
     (name "rust-clap-complete")
-    (version "4.1.2")
+    (version "4.3.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "clap-complete" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "1zinf9gdr0fh1aff71nwqf51w856sbsbgq0dqpmmbhplggl5n4mx"))))
+               (base32 "1khpx0fxmjh46s8354nn507ba4s9kfksiia6ambh9a419hrl7i2z"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-clap" ,rust-clap-4)
-        ("rust-clap-lex" ,rust-clap-lex-0.3)
+        ("rust-clap-lex" ,rust-clap-lex-0.5)
         ("rust-is-executable" ,rust-is-executable-1)
-        ("rust-os-str-bytes" ,rust-os-str-bytes-6)
         ("rust-pathdiff" ,rust-pathdiff-0.2)
         ("rust-shlex" ,rust-shlex-1)
         ("rust-unicode-xid" ,rust-unicode-xid-0.2))
@@ -11782,20 +12561,18 @@ for programs written with Clap.")
 with Clap to generate Fig completion scripts.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-clap-lex-0.3
+(define-public rust-clap-lex-0.5
   (package
     (name "rust-clap-lex")
-    (version "0.3.0")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "clap_lex" version))
+              (uri (crate-uri "clap-lex" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1a4dzbnlxiamfsn0pnkhn7n9bdfjh66j9fxm6mmr7d227vvrhh8d"))))
+                "06vcvpvp65qggc5agbirzqk2di00gxg6vazzc3qlwzkw70qxm9id"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
     (home-page "https://github.com/clap-rs/clap/tree/master/clap_lex")
     (synopsis "Command line parser for Clap")
     (description
@@ -11805,6 +12582,21 @@ stream of tokens.")
     ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-clap-lex-0.3
+  (package
+    (inherit rust-clap-lex-0.5)
+    (name "rust-clap-lex")
+    (version "0.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap_lex" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ip688faib67iqqy96i0qss77virr42sib1afj63a7yb99x6ngq3"))))
+    (arguments
+     `(#:cargo-inputs (("rust-os-str-bytes" ,rust-os-str-bytes-6))))))
+
 (define-public rust-clap-lex-0.2
   (package
     (inherit rust-clap-lex-0.3)
@@ -11821,6 +12613,30 @@ stream of tokens.")
     (arguments
      (list #:cargo-inputs `(("rust-os-str-bytes" ,rust-os-str-bytes-6))))))
 
+(define-public rust-clap-mangen-0.2
+  (package
+    (name "rust-clap-mangen")
+    (version "0.2.11")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "clap-mangen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cbp5cnh25qnd6l6mqs3v6ky524vxyyf7assfzg8ba83v48xkjvb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-roff" ,rust-roff-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-snapbox" ,rust-snapbox-0.4))))
+    (home-page "https://github.com/clap-rs/clap/tree/master/clap_mangen")
+    (synopsis "Manpage generator for clap")
+    (description "This package provides a manpage generator for clap.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clearscreen-1
   (package
     (name "rust-clearscreen")
@@ -12121,6 +12937,36 @@ contains all syscalls and related types.")
            license:asl2.0
            license:zlib))))
 
+(define-public rust-cmac-0.7
+  (package
+    (name "rust-cmac")
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cmac" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1an1vcala24grlyhvk71ikxk2kmgcbal9kgrzzpjcl9z7i74ahw5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-dbl" ,rust-dbl-0.3)
+        ("rust-digest" ,rust-digest-0.10))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-des" ,rust-des-0.8)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-kuznyechik" ,rust-kuznyechik-0.8)
+        ("rust-magma" ,rust-magma-0.8))))
+    (home-page "https://github.com/RustCrypto/MACs")
+    (synopsis "Generic implementation of Cipher-based Message Authentication Code")
+    (description "This package provides a pure Rust implementation of the
+Cipher-based Message Authentication Code.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cmake-0.1
   (package
     (name "rust-cmake")
@@ -12288,6 +13134,29 @@ CMAKE environmental variable is set.")
      "This package provides bindings to Cocoa Foundation for macOS.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-codegenrs-2
+  (package
+    (name "rust-codegenrs")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "codegenrs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1mld8n8r4ns433gxs2jbndrzqjrxv7v0pwc66pf9a2v2mrgvbv6p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-derive-more" ,rust-derive-more-0.99)
+        ("rust-difference" ,rust-difference-2)
+        ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3))))
+    (home-page "https://github.com/crate-ci/codegenrs")
+    (synopsis "Moving code-gen our of build.rs")
+    (description "Moving code-gen our of build.rs")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-codepage-0.1
   (package
     (name "rust-codepage")
@@ -12400,6 +13269,52 @@ diagnostics easy and relatively painless for everyone!")
 sets of intervals.")
     (license license:expat)))
 
+(define-public rust-color-print-0.3
+  (package
+    (name "rust-color-print")
+    (version "0.3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "color-print" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1l26nrk0w21kzh7hs15wfqs7lm80xbngwl46jra8ar6q9r8fd9gj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-color-print-proc-macro" ,rust-color-print-proc-macro-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-terminfo" ,rust-terminfo-0.7))))
+    (home-page "https://gitlab.com/yolenoyer/color-print")
+    (synopsis "Colorize and stylize strings at compile-time")
+    (description
+     "Colorize and stylize strings at compile-time, by using an HTML-like syntax.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-color-print-proc-macro-0.3
+  (package
+    (name "rust-color-print-proc-macro")
+    (version "0.3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "color-print-proc-macro" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jsijb8b1hiyrmz6hpgcn8544w7ijp00prsfycgjsgfp6yjyl6ym"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nom" ,rust-nom-7)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://gitlab.com/yolenoyer/color-print")
+    (synopsis "Implementation for the package color-print")
+    (description "Implementation for the package color-print")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-color-quant-1
   (package
     (name "rust-color-quant")
@@ -12421,6 +13336,23 @@ sets of intervals.")
 colors.")
     (license license:expat)))
 
+(define-public rust-colorchoice-1
+  (package
+    (name "rust-colorchoice")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "colorchoice" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ix7w85kwvyybwi2jdkl3yva2r2bvdcc3ka2grjfzfgrapqimgxc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/rust-cli/anstyle")
+    (synopsis "Global override of color control")
+    (description "Global override of color control")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-colored-2
   (package
     (name "rust-colored")
@@ -13032,8 +13964,37 @@ capabilities, for example to find out about its colored console abilities.")
        (sha256
         (base32 "1isbqpyiwblp0rglnaqzai5hav23095s82mwgi09v3xcck4rq5dd"))))))
 
+(define-public rust-concurrent-queue-2
+  (package
+    (name "rust-concurrent-queue")
+    (version "2.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "concurrent-queue" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0z0bnpgcblhrms6gph7x78yplj3qmlr5mvl38v9641zsxiqngv32"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-loom" ,rust-loom-0.5)
+        ("rust-portable-atomic" ,rust-portable-atomic-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-easy-parallel" ,rust-easy-parallel-3)
+        ("rust-fastrand" ,rust-fastrand-1))))
+    (home-page "https://github.com/smol-rs/concurrent-queue")
+    (synopsis "Concurrent multi-producer multi-consumer queue")
+    (description
+     "This package provides a concurrent multi-producer multi-consumer
+queue.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-concurrent-queue-1
   (package
+    (inherit rust-concurrent-queue-2)
     (name "rust-concurrent-queue")
     (version "1.2.2")
     (source
@@ -13043,19 +14004,12 @@ capabilities, for example to find out about its colored console abilities.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "18w6hblcjjk9d0my3657ra1zdj79gwfjmzvc0b3985g01dahgv9h"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cache-padded" ,rust-cache-padded-1))
        #:cargo-development-inputs
        (("rust-easy-parallel" ,rust-easy-parallel-3)
-        ("rust-fastrand" ,rust-fastrand-1))))
-    (home-page "https://github.com/stjepang/concurrent-queue")
-    (synopsis "Concurrent multi-producer multi-consumer queue")
-    (description
-     "This package provides a concurrent multi-producer multi-consumer
-queue.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-fastrand" ,rust-fastrand-1))))))
 
 (define-public rust-config-0.11
   (package
@@ -13137,20 +14091,23 @@ applications.")
 configuration files.")
     (license license:bsd-2)))
 
-(define-public rust-configparser-2
+(define-public rust-configparser-3
   (package
     (name "rust-configparser")
-    (version "2.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "configparser" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1qdaggalm3js86s2i11pjjcndrrvpk0pw1lfvmv7v25z3y66sqg2"))))
+    (version "3.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "configparser" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ypq3phwrlx2c7agdj1rlivkhsk9k795jb30j58azvw7lp8xjn2l"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/mexili/configparser-rs")
+    (arguments
+     `(#:cargo-inputs
+       (("rust-async-std" ,rust-async-std-1)
+        ("rust-indexmap" ,rust-indexmap-1))))
+    (home-page "https://github.com/QEDK/configparser-rs")
     (synopsis "Simple parsing utility for INI and ini-style syntax")
     (description
      "This package provides a simple configuration parsing utility with no
@@ -13158,6 +14115,20 @@ dependencies that allows you to parse INI and ini-style syntax.  You can use
 this to write Rust programs which can be customized by end users easily.")
     (license (list license:expat license:lgpl3+))))
 
+(define-public rust-configparser-2
+  (package
+    (inherit rust-configparser-3)
+    (name "rust-configparser")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "configparser" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "13zcjw2jlcc73fd1lcjmb2vzh3ckankin490m24xa96i2vj1w87p"))))
+    (arguments `())))
+
 (define-public rust-console-0.15
   (package
     (name "rust-console")
@@ -13412,17 +14383,18 @@ const functions with conditional compilations.")
 (define-public rust-const-oid-0.9
   (package
     (name "rust-const-oid")
-    (version "0.9.1")
+    (version "0.9.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "const-oid" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0fyxvwnl3x6bxhy08a3g4ryf8mky6wnhwd6ll4g6mjxgfnk1ihyf"))))
+                "04xr993r37hd3kcwzll34kpihxrxj7yhr7fawgir8gs80wyby3sj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t))
+     `(#:cargo-inputs (("rust-arbitrary" ,rust-arbitrary-1))
+       #:cargo-development-inputs (("rust-hex-literal" ,rust-hex-literal-0.3))))
     (home-page "https://github.com/RustCrypto/formats/tree/master/const-oid")
     (synopsis "Implementation of the ISO/IEC Object Identifier (OID)")
     (description
@@ -13511,8 +14483,31 @@ 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.2
+  (package
+    (name "rust-constant-time-eq")
+    (version "0.2.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "constant-time-eq" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (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))))
+
 (define-public rust-constant-time-eq-0.1
   (package
+    (inherit rust-constant-time-eq-0.2)
     (name "rust-constant-time-eq")
     (version "0.1.5")
     (source
@@ -13523,13 +14518,7 @@ generation.")
        (sha256
         (base32
          "1g3vp04qzmk6cpzrd19yci6a95m7ap6wy7wkwgiy2pjklklrfl14"))))
-    (build-system cargo-build-system)
     (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 license:cc0)))
 
 (define-public rust-content-inspector-0.2
@@ -13607,22 +14596,22 @@ semantics than those provided by @code{as} or @code{From}/@code{Into}.")
     (description "Convert strings into any case.")
     (license license:expat)))
 
-(define-public rust-cookie-0.16
+(define-public rust-cookie-0.17
   (package
     (name "rust-cookie")
-    (version "0.16.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cookie" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1yriqbf77iigrnp2gmf6m1r296bndv051dc1qc39w3bis1bwsng8"))))
+    (version "0.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cookie" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "096c52jg9iq4lfcps2psncswv33fc30mmnaa2sbzzcfcw71kgyvy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-aes-gcm" ,rust-aes-gcm-0.10)
-        ("rust-base64" ,rust-base64-0.20)
+        ("rust-base64" ,rust-base64-0.21)
         ("rust-hkdf" ,rust-hkdf-0.12)
         ("rust-hmac" ,rust-hmac-0.12)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
@@ -13640,6 +14629,31 @@ It supports signed and private (encrypted + signed) jars.")
     ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cookie-0.16
+  (package
+    (inherit rust-cookie-0.17)
+    (name "rust-cookie")
+    (version "0.16.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cookie" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1yriqbf77iigrnp2gmf6m1r296bndv051dc1qc39w3bis1bwsng8"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes-gcm" ,rust-aes-gcm-0.10)
+        ("rust-base64" ,rust-base64-0.20)
+        ("rust-hkdf" ,rust-hkdf-0.12)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-version-check" ,rust-version-check-0.9))))))
+
 (define-public rust-cookie-0.15
   (package
     (inherit rust-cookie-0.16)
@@ -13734,6 +14748,29 @@ It supports signed and private (encrypted + signed) jars.")
 similar to the nom parser combinators library.")
     (license license:expat)))
 
+(define-public rust-coolor-0.5
+  (package
+    (name "rust-coolor")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "coolor" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11pvplrm51xjr0mmhwrjaif6vd7p2xpmdbwd0rbx2kr4iq4c4smd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-crossterm" ,rust-crossterm-0.25))
+       #:cargo-development-inputs
+       (("rust-crossterm" ,rust-crossterm-0.25)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/Canop/coolor")
+    (synopsis "conversion between color formats")
+    (description "conversion between color formats")
+    (license license:expat)))
+
 (define-public rust-copyless-0.1
   (package
     (name "rust-copyless")
@@ -13871,19 +14908,47 @@ in @code{no_std}.  Alloc support is optional.")
        #:cargo-development-inputs
        (("rust-version-check" ,rust-version-check-0.9))))))
 
+(define-public rust-cookie-store-0.19
+  (package
+    (name "rust-cookie-store")
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cookie-store" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19vy19rvp3a68sgxkrv6bxxlrr2ggqp0176yqb3zhmi0g4sqz8fm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cookie" ,rust-cookie-0.16)
+        ("rust-idna" ,rust-idna-0.3)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-publicsuffix" ,rust-publicsuffix-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-url" ,rust-url-2))))
+    (home-page "https://github.com/pfernie/cookie_store")
+    (synopsis "Cookie storage and retrieval")
+    (description "This package implements cookie storage and retrieval.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cookie-store-0.16
   (package
+    (inherit rust-cookie-store-0.19)
     (name "rust-cookie-store")
     (version "0.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cookie-store" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1kfrmxx9mi55dgbj8qgd8qbahvi1yjqwk05v0jm5y7zld6inljrf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cookie" ,rust-cookie-0.16)
@@ -13894,11 +14959,7 @@ in @code{no_std}.  Alloc support is optional.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-time" ,rust-time-0.3)
-        ("rust-url" ,rust-url-2))))
-    (home-page "https://github.com/pfernie/cookie_store")
-    (synopsis "Cookie storage and retrieval")
-    (description "This package implements cookie storage and retrieval.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-url" ,rust-url-2))))))
 
 (define-public rust-cookie-store-0.15
   (package
@@ -14221,29 +15282,51 @@ intrinsics.")
      "This package provides a counts the number of live instances of types.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cpp-demangle-0.4
+  (package
+    (name "rust-cpp-demangle")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cpp-demangle" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ikd484ja34z3mbc1r1zj3y6ymxv3sc5y1n7wrr63xn7vy5zjxic"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-afl" ,rust-afl-0.12)
+        ("rust-cfg-if" ,rust-cfg-if-1))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-diff" ,rust-diff-0.1))))
+    (home-page "https://github.com/gimli-rs/cpp_demangle")
+    (synopsis "Demangle C++ symbols")
+    (description
+     "This package provides a crate for demangling C++ symbols.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cpp-demangle-0.3
   (package
+    (inherit rust-cpp-demangle-0.4)
     (name "rust-cpp-demangle")
-    (version "0.3.2")
+    (version "0.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "cpp_demangle" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "142knq32bpa2hbp4z0bldjd1x869664l0ff2gdrqx7pryv59x4a4"))))
+        (base32 "0zwvaqfawsfbnzmlhk9d8zngs4v3p5k9r9m2pxq8sygy7zpvgqg5"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-afl" ,rust-afl-0.8)
-        ("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-glob" ,rust-glob-0.3))))
-    (home-page "https://github.com/gimli-rs/cpp_demangle")
-    (synopsis "Demangle C++ symbols")
-    (description
-     "This package provides a crate for demangling C++ symbols.")
-    (license (list license:asl2.0 license:expat))))
+     `(#:cargo-inputs
+       (("rust-afl" ,rust-afl-0.12)
+        ("rust-cfg-if" ,rust-cfg-if-1))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-diff" ,rust-diff-0.1))))))
 
 (define-public rust-cpufeatures-0.2
   (package
@@ -14448,7 +15531,7 @@ mile, ...).")
 (define-public rust-crates-io-0.35
   (package
     (name "rust-crates-io")
-    (version "0.35.0")
+    (version "0.35.1")
     (source
      (origin
        (method url-fetch)
@@ -14457,7 +15540,7 @@ mile, ...).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0zlp8zdkd0qr1ik64wik8bavdm75y54xxp6d7mqvxvv8ssq97144"))))
+         "0bkypzxwchlff8nb6iy3a060lbph6hvhxsxj98k0f0m6gl3vdpz2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags
@@ -15277,14 +16360,14 @@ rasterizing glyphs, using native font engines whenever possible.")
   (package
     (inherit rust-crossfont-0.5)
     (name "rust-crossfont")
-    (version "0.3.1")
+    (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "crossfont" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "079431wkjc18zj3038djai83z6fna0x7r1hxpxjhhi50jdz9dh5n"))))
+        (base32 "0lc2a6q9c4p35hpiwddhnx4f21l48xixjywmlvjbf5v49id6k68j"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -15338,6 +16421,37 @@ rasterizing glyphs, using native font engines whenever possible.")
 terminals.")
     (license license:expat)))
 
+(define-public rust-crossterm-0.23
+  (package
+    (inherit rust-crossterm-0.25)
+    (name "rust-crossterm")
+    (version "0.23.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crossterm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05ygjddfp70961ij7cbvrrwz88r09hghdpcqbf50z4c1yyj2w452"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-crossterm-winapi" ,rust-crossterm-winapi-0.9)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-mio" ,rust-mio-0.8)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-signal-hook" ,rust-signal-hook-0.3)
+        ("rust-signal-hook-mio" ,rust-signal-hook-mio-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-async-std" ,rust-async-std-1)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-futures-timer" ,rust-futures-timer-3)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tokio" ,rust-tokio-1))))))
+
 (define-public rust-crossterm-0.20
   (package
     (inherit rust-crossterm-0.25)
@@ -15487,6 +16601,31 @@ number ``crunching``.")
      "@code{roxmltree} represents an XML 1.0 document as a read-only tree.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rtoolbox-0.0.1
+  (package
+    (name "rust-rtoolbox")
+    (version "0.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rtoolbox" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jjjngwn1fa39kschc8zb4hynp4b0jdind7z225cph7m2k2j4kh3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "")
+    (synopsis "Utility functions for other crates")
+    (description
+     "This package provides utility functions for other crates with no
+backwards compatibility guarantees.")
+    (license license:asl2.0)))
+
 (define-public rust-rt-format-0.3
   (package
     (name "rust-rt-format")
@@ -15552,8 +16691,49 @@ character.")
     (arguments
      `(#:cargo-inputs (("rust-nom" ,rust-nom-6))))))
 
+(define-public rust-crypto-bigint-0.5
+  (package
+    (name "rust-crypto-bigint")
+    (version "0.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "crypto-bigint" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05gy7sqkxg65bj1wrgq1pbh8iwn1kmfysvzx1g22p4gx3972yk6g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-der" ,rust-der-0.7)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-rlp" ,rust-rlp-0.5)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.6))))
+    (home-page "https://github.com/RustCrypto/crypto-bigint")
+    (synopsis "Big integer library designed for use in cryptography")
+    (description
+     "This crate is a pure Rust implementation of a big integer library which
+has been designed from the ground-up for use in cryptographic applications.
+Provides constant-time, no_std-friendly implementations of modern formulas
+using const generics.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-crypto-bigint-0.2
   (package
+    (inherit rust-crypto-bigint-0.5)
     (name "rust-crypto-bigint")
     (version "0.2.11")
     (source
@@ -15563,7 +16743,6 @@ character.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "00qckh65nzb7s7vd60wylw6alxf9g37xh31lirb1qw0l8fxx6fzq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -15571,15 +16750,7 @@ character.")
         ("rust-rand-core" ,rust-rand-core-0.6)
         ("rust-rlp" ,rust-rlp-0.5)
         ("rust-subtle" ,rust-subtle-2)
-        ("rust-zeroize" ,rust-zeroize-1))))
-    (home-page "https://github.com/RustCrypto/crypto-bigint")
-    (synopsis "Big integer library designed for use in cryptography")
-    (description
-     "This crate is a pure Rust implementation of a big integer library which
-has been designed from the ground-up for use in cryptographic applications.
-Provides constant-time, no_std-friendly implementations of modern formulas
-using const generics.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-zeroize" ,rust-zeroize-1))))))
 
 (define-public rust-crypto-common-0.1
   (package
@@ -16033,29 +17204,6 @@ processors.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-csv-index-0.1
-  (package
-    (name "rust-csv-index")
-    (version "0.1.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "csv-index" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "01048y84y0bakqm0x4y1svjv6lzc753b9q598xp7xgcqrdgi6x7j"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-csv" ,rust-csv-1))))
-    (home-page "https://github.com/BurntSushi/rust-csv")
-    (synopsis "On-disk CSV indexing data structures")
-    (description
-     "A collection of data structures for indexing CSV data, with a focus on
-data structures that can be easily serialized to and deserialized from disk.")
-    (license (list license:unlicense license:expat))))
-
 (define-public rust-cstr-core-0.2
   (package
     (name "rust-cstr-core")
@@ -16079,6 +17227,26 @@ data structures that can be easily serialized to and deserialized from disk.")
      "This crates implements CStr and CString for no_std environments.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ct-codecs-1
+  (package
+    (name "rust-ct-codecs")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ct-codecs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pvmrkk95jadmhhd5mn88mq2dfnq0yng8mk3pfd5l6dq0i2fpdzk"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/jedisct1/rust-ct-codecs")
+    (synopsis
+     "Constant-time hex and base64 codecs from libsodium reimplemented in Rust")
+    (description
+     "This package provides constant-time hex and base64 codecs from libsodium
+reimplemented in Rust")
+    (license license:expat)))
+
 (define-public rust-ct-logs-0.8
   (package
     (name "rust-ct-logs")
@@ -16119,40 +17287,33 @@ use with sct crate.")
     (arguments
      `(#:cargo-inputs (("rust-sct" ,rust-sct-0.6))))))
 
-(define-public rust-ct-logs-0.6
-  (package
-    (inherit rust-ct-logs-0.7)
-    (name "rust-ct-logs")
-    (version "0.6.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ct-logs" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "04wiwiv4ghni3x2vni3z711mlz0ndqvh04vmdkbw3nr7zbsqcdjd"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-sct" ,rust-sct-0.6))))))
-
-(define-public rust-ct-logs-0.3
+(define-public rust-ctor-0.2
   (package
-    (inherit rust-ct-logs-0.7)
-    (name "rust-ct-logs")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ct-logs" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1f0885ws3p49xh6dfgnhh7zjw9h4rhs9ljs8i9cnkhifzz98784f"))))
+    (name "rust-ctor")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ctor" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06rhrw85py0gkk7g99qk124mk6d5isq95nn3abc84fyf7zv5ch6x"))))
+    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-sct" ,rust-sct-0.3))))))
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs
+       (("rust-libc-print" ,rust-libc-print-0.1))))
+    (home-page "https://github.com/mmastrac/rust-ctor")
+    (synopsis "__attribute__((constructor)) for Rust")
+    (description
+     "This package provides an @code{__attribute__((constructor))} for Rust.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-ctor-0.1
   (package
+    (inherit rust-ctor-0.2)
     (name "rust-ctor")
     (version "0.1.26")
     (source
@@ -16162,18 +17323,12 @@ use with sct crate.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "15m0wqhv12p25xkxz5dxvg23r7a6bkh7p8zi1cdhgswjhdl028vd"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
            `(("rust-syn" ,rust-syn-1)
              ("rust-quote" ,rust-quote-1))
            #:cargo-development-inputs
-           `(("rust-libc-print" ,rust-libc-print-0.1))))
-    (home-page "https://github.com/mmastrac/rust-ctor")
-    (synopsis "__attribute__((constructor)) for Rust")
-    (description
-     "This package provides an @code{__attribute__((constructor))} for Rust.")
-    (license (list license:asl2.0 license:expat))))
+           `(("rust-libc-print" ,rust-libc-print-0.1))))))
 
 (define-public rust-ctr-0.9
   (package
@@ -16322,7 +17477,7 @@ requests.")
 (define-public rust-curl-sys-0.4
   (package
     (name "rust-curl-sys")
-    (version "0.4.61+curl-8.0.1")
+    (version "0.4.63+curl-8.1.2")
     (source
       (origin
         (method url-fetch)
@@ -16330,7 +17485,7 @@ requests.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0yfv88w17434s5mbrcphsnvpvx0103127ndkqlxnzbj1yl85rl0l"))
+          "1p3inybj3yb8wwnccg8jwfwsqg0fiybh9837mpia28k00kvzxc5f"))
         (modules '((guix build utils)))
         (snippet
          '(begin (delete-file-recursively "curl")))))
@@ -16391,6 +17546,39 @@ requests.")
 ristretto255 and Curve25519.")
     (license license:bsd-3)))
 
+(define-public rust-curve25519-dalek-ng-4
+  (package
+    (name "rust-curve25519-dalek-ng")
+    (version "4.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "curve25519-dalek-ng" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1j6y6dsqdfp26ifyygibsrm1a8f9f7870i4053xlczil95r9nd8w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-digest" ,rust-digest-0.9)
+        ("rust-packed-simd-2" ,rust-packed-simd-2-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-subtle-ng" ,rust-subtle-ng-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.9))))
+    (home-page "https://github.com/zkcrypto/curve25519-dalek-ng")
+    (synopsis "Implementation of group operations on ristretto255 and Curve25519")
+    (description
+     "This package provides a pure-Rust implementation of group operations on
+ristretto255 and Curve25519.")
+    (license license:bsd-3)))
+
 (define-public rust-custom-derive-0.1
   (package
     (name "rust-custom-derive")
@@ -16416,6 +17604,25 @@ ristretto255 and Curve25519.")
 attributes.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cvt-0.1
+  (package
+    (name "rust-cvt")
+    (version "0.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "cvt" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wdwg2rbjl86bcrymscl34pw31kyv1ada19jazpkjbdzgzvrpbnj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-cfg-if" ,rust-cfg-if-1))))
+    (home-page "https://github.com/marmistrz/cvt")
+    (synopsis "Expose the cvt function from Rust libstd")
+    (description "Expose the cvt function from Rust libstd.")
+    (license license:asl2.0)))
+
 (define-public rust-cxx-1
   (package
     (name "rust-cxx")
@@ -17121,7 +18328,7 @@ for Rust.")
 (define-public rust-data-encoding-2
   (package
     (name "rust-data-encoding")
-    (version "2.3.1")
+    (version "2.4.0")
     (source
       (origin
         (method url-fetch)
@@ -17129,7 +18336,7 @@ for Rust.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "027rcrwdschrkdr2n9d24gnh03vl41qmvhjqn9vn6z1njy2n0flr"))))
+          "023k3dk8422jgbj7k72g63x51h1mhv91dhw1j4h205vzh6fnrrn2"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/ia0/data-encoding")
     (synopsis "Efficient and customizable data-encoding functions")
@@ -17671,8 +18878,67 @@ strings.")
     (description "Demo of proc-macro-hack.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-der-0.7
+  (package
+    (name "rust-der")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "der" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06f2clallhpjc51s3dc7mpcw5ms3jak727qc5yrfg3ncrpzqvr85"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-const-oid" ,rust-const-oid-0.9)
+        ("rust-der-derive" ,rust-der-derive-0.7)
+        ("rust-flagset" ,rust-flagset-0.4)
+        ("rust-pem-rfc7468" ,rust-pem-rfc7468-0.7)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-proptest" ,rust-proptest-1))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/der")
+    (synopsis
+     "Implementation of the Distinguished Encoding Rules (DER)")
+    (description
+     "This package provides a pure Rust embedded-friendly implementation of
+the Distinguished Encoding Rules (DER) for Abstract Syntax Notation One
+(ASN.1) as described in ITU X.690 with full support for heapless no_std
+targets")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-der-0.6
+  (package
+    (inherit rust-der-0.7)
+    (name "rust-der")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "der" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pnl3y52m1s6srxpfrfbazf6qilzq8fgksk5dv79nxaybjk6g97i"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-const-oid" ,rust-const-oid-0.9)
+        ("rust-der-derive" ,rust-der-derive-0.6)
+        ("rust-flagset" ,rust-flagset-0.4)
+        ("rust-pem-rfc7468" ,rust-pem-rfc7468-0.6)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-proptest" ,rust-proptest-1))))))
+
 (define-public rust-der-0.4
   (package
+    (inherit rust-der-0.7)
     (name "rust-der")
     (version "0.4.5")
     (source
@@ -17682,26 +18948,62 @@ strings.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1x4k0jln8va1657cghl40l6p7hyvr1ixz71v9cd6imwmgp51rdvr"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build?
        #t                               ; FIXME
        #:cargo-inputs
        (("rust-const-oid" ,rust-const-oid-0.6)
         ("rust-crypto-bigint" ,rust-crypto-bigint-0.2)
-        ("rust-der-derive" ,rust-der-derive-0.4))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/der")
+        ("rust-der-derive" ,rust-der-derive-0.4))))))
+
+(define-public rust-der-derive-0.7
+  (package
+    (name "rust-der-derive")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "der-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cmyza28s52wfb67ymydjmvsc4m3sfp98dv9vprx6ibmdfx94iqi"))))
+    (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-2))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/der/derive")
     (synopsis
-     "Implementation of the Distinguished Encoding Rules (DER)")
+      "Custom derive support for the `der` crate's `Choice` and `Sequence` traits")
     (description
-     "This package provides a pure Rust embedded-friendly implementation of
-the Distinguished Encoding Rules (DER) for Abstract Syntax Notation One
-(ASN.1) as described in ITU X.690 with full support for heapless no_std
-targets")
+      "This package provides a custom derive support for the `der` crate's
+`Choice` and `Sequence` traits.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-der-derive-0.6
+  (package
+    (inherit rust-der-derive-0.7)
+    (name "rust-der-derive")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "der-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fg3dv4cjjwd4a6dh62ch2gb477s1pvwh5s8wbg567rsbgdivxwf"))))
+    (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))))))
+
 (define-public rust-der-derive-0.4
   (package
+    (inherit rust-der-derive-0.7)
     (name "rust-der-derive")
     (version "0.4.1")
     (source
@@ -17711,7 +19013,6 @@ targets")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
           (base32 "0snv85yfy9iln05qsgbhwr1159gd0jfrgzj5dkrnricdc0y3pvca"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:skip-build?
         #t                              ; FIXME
@@ -17719,14 +19020,7 @@ targets")
         (("rust-proc-macro2" ,rust-proc-macro2-1)
          ("rust-quote" ,rust-quote-1)
          ("rust-syn" ,rust-syn-1)
-         ("rust-synstructure" ,rust-synstructure-0.12))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/der/derive")
-    (synopsis
-      "Custom derive support for the `der` crate's `Choice` and `Sequence` traits")
-    (description
-      "This package provides a custom derive support for the `der` crate's
-`Choice` and `Sequence` traits.")
-    (license (list license:asl2.0 license:expat))))
+         ("rust-synstructure" ,rust-synstructure-0.12))))))
 
 (define-public rust-der-oid-macro-0.5
   (package
@@ -17754,8 +19048,41 @@ targets")
      "This crate provides a macro to encode DER oids at compile time.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-der-parser-8
+  (package
+    (name "rust-der-parser")
+    (version "8.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "der-parser" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07mnz9y395zyxwj7nam2dbzkqdngfraxp2i7y2714dxmpbxpdmnv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-asn1-rs" ,rust-asn1-rs-0.5)
+        ("rust-cookie-factory" ,rust-cookie-factory-0.3)
+        ("rust-displaydoc" ,rust-displaydoc-0.2)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rusticata-macros" ,rust-rusticata-macros-4))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-test-case" ,rust-test-case-3))))
+    (home-page "https://github.com/rusticata/der-parser")
+    (synopsis "BER/DER parser written in pure Rust")
+    (description "This crate provides a parser for Basic Encoding Rules (BER
+[X.690]) and Distinguished Encoding Rules(DER [X.690]), implemented with the
+@code{nom} parser combinator framework.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-der-parser-6
   (package
+    (inherit rust-der-parser-8)
     (name "rust-der-parser")
     (version "6.0.0")
     (source
@@ -17765,7 +19092,6 @@ targets")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0gn465dncghmj52k8dlkl71wkmlz5zc6jfjgj9ra2knf22ryy1wq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -17779,28 +19105,29 @@ targets")
        #:cargo-development-inputs
        (("rust-hex-literal" ,rust-hex-literal-0.3)
         ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
-        ("rust-test-case" ,rust-test-case-1))))
-    (home-page "https://github.com/rusticata/der-parser")
-    (synopsis "BER/DER parser written in pure Rust")
-    (description "This crate provides a parser for Basic Encoding Rules (BER
-[X.690]) and Distinguished Encoding Rules(DER [X.690]), implemented with the
-@code{nom} parser combinator framework.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-test-case" ,rust-test-case-1))))))
 
 (define-public rust-derivative-2
   (package
     (name "rust-derivative")
-    (version "2.1.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "derivative" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03rqx8j9q5nlrpr7w8cwwrvw916pr0ahzs3y8yln18cx6mh2nn6b"))))
+        (base32 "02vpb81wisk2zh1d5f44szzxamzinqgq2k8ydrfjj2wwkrgdvhzw"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "Cargo.toml"
+             (("version = \"([[:digit:]]+(\\.[[:digit:]]+)*), <.*\"" _ version)
+              (string-append "version = \"^" version "\"")))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f      ; Tests expect a very narrow range for trybuild.
+       #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))
@@ -17849,8 +19176,36 @@ Instead, enable the @code{derive} feature of the @code{arbitrary} crate.")
        (sha256
         (base32 "1rp0z4k0j5ip0bx6dssg97l4q6bakhf6lm5h1lpr3p3kwjsi585i"))))))
 
+(define-public rust-derive-builder-0.12
+  (package
+    (name "rust-derive-builder")
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "derive-builder" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y4p569zcvpmly5s5hmjp9h83drxvdp6kj6bb61h225mhj3pfrwd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-derive-builder-macro" ,rust-derive-builder-macro-0.12))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/colin-kiegel/rust-derive-builder")
+    (synopsis "Builder pattern for arbitrary structs")
+    (description "Rust macro to automatically implement the builder pattern
+for arbitrary structs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-derive-builder-0.11
   (package
+    (inherit rust-derive-builder-0.12)
     (name "rust-derive-builder")
     (version "0.11.2")
     (source
@@ -17860,16 +19215,10 @@ Instead, enable the @code{derive} feature of the @code{arbitrary} crate.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "18q4jx8zvg2pkx2d1nmlklx8m48bwrghyg8rdg1irdwkw5xxyynh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-derive-builder-macro" ,rust-derive-builder-macro-0.11))))
-    (home-page "https://github.com/colin-kiegel/rust-derive-builder")
-    (synopsis "Builder pattern for arbitrary structs")
-    (description "Rust macro to automatically implement the builder pattern
-for arbitrary structs.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-derive-builder-macro" ,rust-derive-builder-macro-0.11))))))
 
 (define-public rust-derive-builder-0.10
   (package
@@ -17941,8 +19290,35 @@ for arbitrary structs.")
          ("rust-skeptic" ,rust-skeptic-0.13)
          ("rust-syn" ,rust-syn-0.15))))))
 
+(define-public rust-derive-builder-core-0.12
+  (package
+    (name "rust-derive-builder-core")
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "derive-builder-core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03vvmw3mfg370swq0dh2h5kcjjb8va2m4asqgp9wfyy4l08xq6y1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-darling" ,rust-darling-0.14)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))
+    (home-page "https://github.com/colin-kiegel/rust-derive-builder")
+    (synopsis "Internal helper library for @code{rust-derive-builder}")
+    (description
+     "Internal helper library for @code{rust-derive-builder}.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-derive-builder-core-0.11
   (package
+    (inherit rust-derive-builder-core-0.12)
     (name "rust-derive-builder-core")
     (version "0.11.2")
     (source
@@ -17952,19 +19328,13 @@ for arbitrary structs.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1i5gmf5lglbg7agj1khc6k9swf1clfs5fg6w0icw1w91m77x948z"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-darling" ,rust-darling-0.14)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/colin-kiegel/rust-derive-builder")
-    (synopsis "Internal helper library for @code{rust-derive-builder}")
-    (description
-     "Internal helper library for @code{rust-derive-builder}.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-derive-builder-core-0.10
   (package
@@ -18031,22 +19401,21 @@ for arbitrary structs.")
          ("rust-quote" ,rust-quote-0.6)
          ("rust-syn" ,rust-syn-0.15))))))
 
-(define-public rust-derive-builder-macro-0.11
+(define-public rust-derive-builder-macro-0.12
   (package
     (name "rust-derive-builder-macro")
-    (version "0.11.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "derive_builder_macro" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0s6xfgsybd9wbk39hbgqjcn7d1l36a33q6v7d0x5y17d5fvi80wg"))))
+    (version "0.12.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "derive-builder-macro" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17p71qzh7x1q2yxzz3xrg73zw3xl0h479b7ybyjm0s1rg9fa7kgb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-derive-builder-core" ,rust-derive-builder-core-0.11)
+       (("rust-derive-builder-core" ,rust-derive-builder-core-0.12)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/colin-kiegel/rust-derive-builder")
     (synopsis
@@ -18056,6 +19425,22 @@ for arbitrary structs.")
 pattern for arbitrary structs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-derive-builder-macro-0.11
+  (package
+    (inherit rust-derive-builder-macro-0.12)
+    (name "rust-derive-builder-macro")
+    (version "0.11.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "derive_builder_macro" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0s6xfgsybd9wbk39hbgqjcn7d1l36a33q6v7d0x5y17d5fvi80wg"))))
+    (arguments
+     `(#:cargo-inputs (("rust-derive-builder-core" ,rust-derive-builder-core-0.11)
+                       ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-derive-builder-macro-0.10
   (package
     (inherit rust-derive-builder-macro-0.11)
@@ -18199,8 +19584,30 @@ traits for both structs and enums.")
 structs and enums.")
   (license license:expat)))
 
+(define-public rust-des-0.8
+  (package
+    (name "rust-des")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "des" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07kshslxanmg0g6007scvglfhg6mli2a8qzhx4kxx4z9ik781pgz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs (("rust-cipher" ,rust-cipher-0.4))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "DES and Triple DES block ciphers implementation")
+    (description "This package provides DES and Triple DES (3DES, TDES) block
+ciphers implementations.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-des-0.7
   (package
+    (inherit rust-des-0.8)
     (name "rust-des")
     (version "0.7.0")
     (source
@@ -18212,19 +19619,13 @@ structs and enums.")
         (sha256
          (base32
           "0pbsfkkwfqnd4nsv3ik4z09h248f57y7bj2j1l134i2mzd4xshdc"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:skip-build?
         #t
         #:cargo-inputs
         (("rust-byteorder" ,rust-byteorder-1)
          ("rust-cipher" ,rust-cipher-0.3)
-         ("rust-opaque-debug" ,rust-opaque-debug-0.3))))
-    (home-page "https://github.com/RustCrypto/block-ciphers")
-    (synopsis "DES and Triple DES block ciphers implementation")
-    (description "This package provides DES and Triple DES (3DES, TDES) block
-ciphers implementations.")
-    (license (list license:expat license:asl2.0))))
+         ("rust-opaque-debug" ,rust-opaque-debug-0.3))))))
 
 (define-public rust-des-0.6
   (package
@@ -18270,14 +19671,14 @@ intelligently transliterating them.  It supports Emoji and Chinese.")
 (define-public rust-devise-0.2
   (package
     (name "rust-devise")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "devise" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lryvr39ia3rfswfnwn2zynsv2r8kj6gqqf0akcs0prws2i4pq3l"))))
+        (base32 "09p52f54givb0g9l7clj11z755vldk8758y2lwm5mp3sa156qwfx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -18294,14 +19695,14 @@ procedural macros.")
 (define-public rust-devise-codegen-0.2
   (package
     (name "rust-devise-codegen")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "devise_codegen" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1msmq0h19l03n9qmkxxi1a5h8904i8m623kdvjzak4ya51wynv06"))))
+        (base32 "0lxbixni2v6snx2mkgi0kyq5dv8v6c5s57b6wc47q4hqs6884yza"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -18312,20 +19713,20 @@ procedural macros.")
     (synopsis "Library for devising derives and other procedural macros")
     (description
      "This package provides a library for devising derives and other
-procedural macros")
+procedural macros.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-devise-core-0.2
   (package
     (name "rust-devise-core")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "devise_core" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "11v4z5kljmpiyif3mmfnm3rl1lsqygjlfy2wll7frqxm4adwahfg"))))
+        (base32 "0wr3jdzzibpafz73hcca83wnzdgjinvm7axmxnyfkbasbnfkw1fi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -18368,6 +19769,30 @@ procedural macros.")
 example.")
     (license license:bsd-3)))
 
+(define-public rust-dialoguer-0.10
+  (package
+    (name "rust-dialoguer")
+    (version "0.10.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dialoguer" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11rgzrhi677w9gf1r3ip2x361svdkjkr2m5dsfca9fcljacg5ijr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-console" ,rust-console-0.15)
+        ("rust-fuzzy-matcher" ,rust-fuzzy-matcher-0.3)
+        ("rust-shell-words" ,rust-shell-words-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://github.com/mitsuhiko/dialoguer")
+    (synopsis "Command line prompting library")
+    (description "This package provides a command line prompting library.")
+    (license license:expat)))
+
 (define-public rust-diesel-1
   (package
     (name "rust-diesel")
@@ -18400,7 +19825,7 @@ example.")
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-pq-sys" ,rust-pq-sys-0.4)
         ("rust-quickcheck" ,rust-quickcheck-0.4)
-        ("rust-r2d2" ,rust-r2d2)
+        ("rust-r2d2" ,rust-r2d2-0.8)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-time" ,rust-time-0.1)
         ("rust-url" ,rust-url-1)
@@ -18788,8 +20213,30 @@ platform-specific standard locations of directories for config, cache and
 other data.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dirs-5
+  (package
+    (name "rust-dirs")
+    (version "5.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dirs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0992xk5vx75b2x91nw9ssb51mpl8x73j9rxmpi96cryn0ffmmi24"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-dirs-sys" ,rust-dirs-sys-0.4))))
+    (home-page "https://github.com/soc/dirs-rs")
+    (synopsis "Abstractions for standard locations for various platforms")
+    (description
+     "This package is a tiny low-level library that provides platform-specific
+standard locations of directories for config, cache and other data.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dirs-4
   (package
+    (inherit rust-dirs-5)
     (name "rust-dirs")
     (version "4.0.0")
     (source
@@ -18799,16 +20246,9 @@ other data.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0n8020zl4f0frfnzvgb9agvk4a14i1kjz4daqnxkgslndwmaffna"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-dirs-sys" ,rust-dirs-sys-0.3))))
-    (home-page "https://github.com/soc/dirs-rs")
-    (synopsis "Abstractions for standard locations for various platforms")
-    (description
-     "This package is a tiny low-level library that provides platform-specific
-standard locations of directories for config, cache and other data.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-dirs-sys" ,rust-dirs-sys-0.3))))))
 
 (define-public rust-dirs-3
   (package
@@ -18909,8 +20349,35 @@ other data.")
     (home-page "https://github.com/xdg-rs/dirs")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dirs-sys-0.4
+  (package
+    (name "rust-dirs-sys")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dirs-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "071jy0pvaad9lsa6mzawxrh7cmr7hsmsdxwzm7jzldfkrfjha3sj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-option-ext" ,rust-option-ext-0.2)
+        ("rust-redox-users" ,rust-redox-users-0.4)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/dirs-dev/dirs-sys-rs")
+    (synopsis
+     "System-level helper functions for the dirs and directories crates")
+    (description
+     "This package provides system-level helper functions for the @code{dirs}
+and @code{directories} crates.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dirs-sys-0.3
   (package
+    (inherit rust-dirs-sys-0.4)
     (name "rust-dirs-sys")
     (version "0.3.6")
     (source
@@ -18921,7 +20388,6 @@ other data.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "102pbpcrfhvhfyfnyvmvvwpl6mfvynh170f6ima6fyinxls6bn03"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -18929,14 +20395,7 @@ other data.")
         ("rust-winapi" ,rust-winapi-0.3))))
     (inputs
      (list rust-cfg-if-0.1 rust-libc-0.2 rust-redox-users-0.3
-           rust-winapi-0.3))
-    (home-page "https://github.com/soc/dirs-sys-rs")
-    (synopsis
-     "System-level helper functions for the dirs and directories crates")
-    (description
-     "This package provides system-level helper functions for the @code{dirs}
-and @code{directories} crates.")
-    (license (list license:asl2.0 license:expat))))
+           rust-winapi-0.3))))
 
 (define-public rust-dirs-sys-next-0.1
   (package
@@ -19015,6 +20474,38 @@ Central Dispatch.")
          "019nzy993hxaiazcdnayx3csv2iki34i535asw11ki96hakkrs84"))))
     (arguments '(#:tests? #f))))  ; Tests only run on Mac.
 
+(define-public rust-displaydoc-0.2
+  (package
+    (name "rust-displaydoc")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "displaydoc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0p8pyg10csc782qlwx3znr6qx46ni96m1qh597kmyrf6s3s8axa8"))))
+    (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-libc" ,rust-libc-0.2)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/yaahc/displaydoc")
+    (synopsis
+     "Derive macro for implementing the display Trait via a doc comment")
+    (description
+     "This package provides a derive macro for implementing the display Trait
+via a doc comment and string interpolation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dissimilar-1
   (package
     (name "rust-dissimilar")
@@ -19158,7 +20649,7 @@ not support network, only raw protocol parser.")
 (define-public rust-doc-comment-0.3
   (package
     (name "rust-doc-comment")
-    (version "0.3.1")
+    (version "0.3.3")
     (source
       (origin
         (method url-fetch)
@@ -19166,9 +20657,8 @@ not support network, only raw protocol parser.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "15rsqxgarfpb1yim9sbp9yfgj7p2dq6v51c6bq1a62paii9ylgcj"))))
+          "043sprsf3wl926zmck1bm7gw0jq50mb76lkpk49vasfr6ax1p97y"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
     (home-page "https://github.com/GuillaumeGomez/doc-comment")
     (synopsis "Macro to generate doc comments")
     (description "This package provides a way to generate doc comments
@@ -19392,6 +20882,24 @@ non-persistent vector.")
 for graphs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-dot-writer-0.1
+  (package
+    (name "rust-dot-writer")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "dot-writer" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0yjv36hr3klzq4bpzkkqp64s8479ssabr7zkdxn4163ybsyi26rx"))))
+    (build-system cargo-build-system)
+    (home-page "https://bitbucket.org/DrGabble/dot-writer")
+    (synopsis "Library for writing the Graphviz DOT graph language")
+    (description
+     "This package provides a library for writing the Graphviz DOT graph language.")
+    (license license:expat)))
+
 (define-public rust-dotenv-0.15
   (package
     (name "rust-dotenv")
@@ -19552,23 +21060,23 @@ floating-point primitives to an @code{io::Write}.")
 (define-public rust-dtparse-1
   (package
     (name "rust-dtparse")
-    (version "1.2.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "dtparse" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xh9hasfffnfyv8q9pwr31g63rigfx114qz6xw05wdkzpmfnq9qk"))))
+        (base32 "1awhyy58c28fhr5nvvfpikdzraihichkz3w1mzdg7smyffldi4w2"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
-        ("rust-chrono-tz" ,rust-chrono-tz-0.5)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rust-decimal" ,rust-rust-decimal-0.10))))
+        ("rust-rust-decimal" ,rust-rust-decimal-1))
+       #:cargo-development-inputs
+       (("rust-base64" ,rust-base64-0.13))))
     (home-page "https://github.com/bspeice/dtparse.git")
     (synopsis "Dateutil-compatible timestamp parser for Rust")
     (description
@@ -19634,16 +21142,15 @@ Rust.")
 (define-public rust-dunce-1
   (package
     (name "rust-dunce")
-    (version "1.0.1")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "dunce" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1d7f7wg83i1by16rxc1fdipi872nvkzjnmzaaggh2h8cgi51qr5j"))))
+        (base32 "0fqcbwfclldbknmawi69l6zyncaiqzxkpbybcb2cc7jmlxnqrkjn"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://gitlab.com/kornelski/dunce")
     (synopsis "Normalize Windows paths to the most compatible format")
     (description
@@ -19652,7 +21159,7 @@ whenever possible, but leaves UNC paths as-is when they can't be unambiguously
 expressed in a simpler way.  This allows legacy programs to access all paths
 they can possibly access, and doesn't break any paths for UNC-aware
 programs.")
-    (license license:cc0)))
+    (license (list license:cc0 license:expat-0 license:asl2.0))))
 
 (define-public rust-dyn-clone-1
   (package
@@ -19724,14 +21231,14 @@ easy.")
 (define-public rust-easy-parallel-3
   (package
     (name "rust-easy-parallel")
-    (version "3.1.0")
+    (version "3.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "easy-parallel" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1x28z540fc4g8fqm1sbpqbpdfbi40mkas4xr57s3yn0jjbbszm0x"))))
+        (base32 "00g0fvbjkdbqm6z5xcx3b1wzi8rlrhqb840ybavgijhg74iljq64"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/stjepang/easy-parallel")
     (synopsis "Run closures in parallel")
@@ -19764,6 +21271,97 @@ from the main thread.")
 easy.")
     (license (list license:unlicense license:zlib))))
 
+(define-public rust-eax-0.5
+  (package
+    (name "rust-eax")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "eax" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0a5cpzk577f1lw3wkk20iqvavnbdr5yzjrcglvbvk0ivj2yzlm4r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aead" ,rust-aead-0.5)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-cmac" ,rust-cmac-0.7)
+        ("rust-ctr" ,rust-ctr-0.9)
+        ("rust-subtle" ,rust-subtle-2))
+       #:cargo-development-inputs
+       (("rust-aead" ,rust-aead-0.5)
+        ("rust-aes" ,rust-aes-0.8))))
+    (home-page "https://github.com/RustCrypto/AEADs")
+    (synopsis "Pure Rust implementation of the EAX Authenticated Encryption with
+Associated Data (AEAD)")
+    (description
+     "Pure Rust implementation of the EAX Authenticated Encryption with Associated
+Data (AEAD) Cipher with optional architecture-specific hardware acceleration
+This scheme is only based on a block cipher.  It uses counter mode (CTR) for
+encryption and CBC mode for generating a OMAC/CMAC/CBCMAC (all names for the
+same thing).")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-ecb-0.1
+  (package
+    (name "rust-ecb")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ecb" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18l1frsqg84c9ymn6shp0k51q7j6l95cpg3vw8g3a159h6x89z8p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/magic-akari/ecb")
+    (synopsis "Electronic Codebook (ECB) block cipher mode of operation")
+    (description "Electronic Codebook (ECB) block cipher mode of operation")
+    (license license:expat)))
+
+(define-public rust-ecdsa-0.16
+  (package
+    (name "rust-ecdsa")
+    (version "0.16.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ecdsa" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zapr75j8w1b7bdnijppb94f2jrk2qdrhv8i4fqc0c4agd9mv3m4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-der" ,rust-der-0.7)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-elliptic-curve" ,rust-elliptic-curve-0.13)
+        ("rust-rfc6979" ,rust-rfc6979-0.4)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-signature" ,rust-signature-2))
+       #:cargo-development-inputs
+       (("rust-elliptic-curve" ,rust-elliptic-curve-0.13)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-sha2" ,rust-sha2-0.10))))
+    (home-page "https://github.com/RustCrypto/signatures/tree/master/ecdsa")
+    (synopsis "Pure Rust implementation of the ECDSA algorithm")
+    (description
+     "This package provides a pure Rust implementation of the @dfn{Elliptic
+Curve Digital Signature Algorithm} (ECDSA) as specified in FIPS 186-4 (Digital
+Signature Standard), providing RFC6979 deterministic signatures as well as
+support for added entropy.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ecies-ed25519-0.5
   (package
     (name "rust-ecies-ed25519")
@@ -19800,21 +21398,28 @@ easy.")
 (define-public rust-ed25519-1
   (package
     (name "rust-ed25519")
-    (version "1.0.3")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "ed25519" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1vxn7x1xinbv1cl31015m0fw08jwkphylxrll17animv9i9nmiip"))))
+    (version "1.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ed25519" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rzydm5wd8szkddx3g55w4vm86y1ika8qp8qwckada5vf1fg7kwi"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-serde" ,rust-serde-1)
-         ("rust-signature" ,rust-signature-1))))
-    (home-page "")
+     `(#:cargo-inputs
+       (("rust-pkcs8" ,rust-pkcs8-0.9)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+        ("rust-signature" ,rust-signature-1)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.5))))
+    (home-page "https://github.com/RustCrypto/signatures/tree/master/ed25519")
     (synopsis "Edwards Digital Signature Algorithm (EdDSA) over Curve25519")
     (description
       "EdDSA over Curve25519 is specified in RFC 8032.  This package contains
@@ -19828,6 +21433,33 @@ be plugged in, enabling support for using different Ed25519 implementations,
 including HSMs or Cloud KMS services.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ed25519-compact-2
+  (package
+    (name "rust-ed25519-compact")
+    (version "2.0.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ed25519-compact" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0k4y7bjl5g0l871iav4zj35qx047n0a4qsvhr28p6434hhp3hgba"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ct-codecs" ,rust-ct-codecs-1)
+        ("rust-ed25519" ,rust-ed25519-1)
+        ("rust-getrandom" ,rust-getrandom-0.2))
+       #:cargo-development-inputs
+       (("rust-ct-codecs" ,rust-ct-codecs-1)
+        ("rust-getrandom" ,rust-getrandom-0.2))))
+    (home-page "https://github.com/jedisct1/rust-ed25519-compact")
+    (synopsis "Wasm-friendly Ed25519 implementation")
+    (description
+     "This package provides a small, self-contained, wasm-friendly Ed25519
+implementation.")
+    (license license:expat)))
+
 (define-public rust-ed25519-dalek-1
   (package
     (name "rust-ed25519-dalek")
@@ -19947,6 +21579,50 @@ signing, and verification in pure Rust.")
      "This package provides a pure-Rust library for parsing ELF files.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-elliptic-curve-0.13
+  (package
+    (name "rust-elliptic-curve")
+    (version "0.13.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "elliptic-curve" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rqn7yq9rgfs7r0dcj4phxf9hqmw2alfxa0lciamsbkz6sm1xivm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base16ct" ,rust-base16ct-0.2)
+        ("rust-base64ct" ,rust-base64ct-1)
+        ("rust-crypto-bigint" ,rust-crypto-bigint-0.5)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-ff" ,rust-ff-0.13)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-group" ,rust-group-0.13)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-hkdf" ,rust-hkdf-0.12)
+        ("rust-pem-rfc7468" ,rust-pem-rfc7468-0.7)
+        ("rust-pkcs8" ,rust-pkcs8-0.10)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-sec1" ,rust-sec1-0.7)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-sha3" ,rust-sha3-0.10))))
+    (home-page
+     "https://github.com/RustCrypto/traits/tree/master/elliptic-curve")
+    (synopsis "General purpose Elliptic Curve Cryptography (ECC) support")
+    (description
+     "This package provides general purpose @dfn{Elliptic Curve Cryptography}
+(ECC) support, including types and traits for representing various elliptic
+curve forms, scalars, points, and public/secret keys composed thereof.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-emacs-0.18
   (package
     (name "rust-emacs")
@@ -20761,6 +22437,71 @@ implement enum_primitive.")
 convert enum to u8 slice ref.")
     (license license:bsd-3)))
 
+(define-public rust-enumber-0.3
+  (package
+    (name "rust-enumber")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "enumber" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06gd26x1fpxphkzlxnkmyjc7zalrr2vw88lz4yg23x6q62dv8dgs"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/kinnison/enumber/")
+    (synopsis "Provide useful impls on numerical enums")
+    (description "Provide useful impls on numerical enums")
+    (license license:bsd-3)))
+
+(define-public rust-enumflags2-0.7
+  (package
+    (name "rust-enumflags2")
+    (version "0.7.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "enumflags2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1lhvq084ylw3nvhgv1zyagavkj392zamydh5v6y352zn1l4zahf0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-enumflags2-derive" ,rust-enumflags2-derive-0.7)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/meithecatte/enumflags2")
+    (synopsis "Enum-based bit flags")
+    (description "This package provides enum-based bit flags.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-enumflags2-derive-0.7
+  (package
+    (name "rust-enumflags2-derive")
+    (version "0.7.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "enumflags2-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0iapq76azgkqxby4v117a3jssa9rz7n18vla4i09grc3gngiz6jy"))))
+    (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/meithecatte/enumflags2")
+    (synopsis "Internal crate for enumflags2")
+    (description
+     "This package provides internal implementations for enumflags2.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-enumset-1
   (package
     (name "rust-enumset")
@@ -21082,8 +22823,33 @@ deserialized from environment variables.")
      "Type-erased Serialize and Serializer traits.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-errno-0.3
+  (package
+    (name "rust-errno")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "errno" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fp7qy6fwagrnmi45msqnl01vksqwdb2qbbv60n9cz7rf0xfrksb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-errno-dragonfly" ,rust-errno-dragonfly-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/lambda-fairy/rust-errno")
+    (synopsis "Cross-platform interface to the @code{errno} variable")
+    (description
+     "This package provides a cross-platform interface to the
+@code{errno} variable.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-errno-0.2
   (package
+    (inherit rust-errno-0.3)
     (name "rust-errno")
     (version "0.2.8")
     (source
@@ -21094,19 +22860,12 @@ deserialized from environment variables.")
        (sha256
         (base32
          "18cnqgk8r6lq1n5cfy3bryiyz9zkqr10dxj49sa3fkzfamih8fgn"))))
-    (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t
            #:cargo-inputs
            `(("rust-errno-dragonfly" ,rust-errno-dragonfly-0.1)
              ("rust-libc" ,rust-libc-0.2)
-             ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/lambda-fairy/rust-errno")
-    (synopsis "Cross-platform interface to the @code{errno} variable")
-    (description
-     "This package provides a cross-platform interface to the
-@code{errno} variable.")
-    (license (list license:asl2.0 license:expat))))
+             ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-errno-dragonfly-0.1
   (package
@@ -21381,14 +23140,14 @@ ecosystem.")
 (define-public rust-event-listener-2
   (package
     (name "rust-event-listener")
-    (version "2.5.1")
+    (version "2.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "event-listener" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ndyp41pb2cx7gxijqh4ymnc47nyrvhvir7rvjlw6x09ayb10lzp"))))
+        (base32 "1q4w3pndc518crld6zsqvvpy9lkzwahp2zgza9kbzmmqh9gif1h2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -21933,6 +23692,27 @@ floats.")
      "This package provides a simple and fast random number generator.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-fat-macho-0.4
+  (package
+    (name "rust-fat-macho")
+    (version "0.4.7")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fat-macho" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ywr3xqi884i12d5mfidbma1hrd4rxj9f8jw7p4bignagmy13yk3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-goblin" ,rust-goblin-0.7)
+        ("rust-llvm-bitcode" ,rust-llvm-bitcode-0.1))))
+    (home-page "https://github.com/messense/fat-macho-rs.git")
+    (synopsis "Mach-O Fat Binary Reader and Writer")
+    (description "This package provides a Mach-O Fat Binary Reader and Writer.")
+    (license license:expat)))
+
 (define-public rust-fd-lock-3
   (package
     (name "rust-fd-lock")
@@ -22128,6 +23908,48 @@ Atom, RSS 2.0, RSS 1.0, RSS 0.x and JSON Feed")
     ;; No copyright headers in the source code.  LICENSE indicates gpl3.
     (license license:gpl3)))
 
+(define-public rust-fehler-1
+  (package
+    (name "rust-fehler")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fehler" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d9nk0nimhrqhlwsm42kmg6bwhfqscnfddj70xawsa50kgj9ywnm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-fehler-macros" ,rust-fehler-macros-1))))
+    (home-page "https://github.com/withoutboats/fehler")
+    (synopsis "Library for error-handling syntax in Rust")
+    (description
+     "This package provides a library for error-handling syntax in Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-fehler-macros-1
+  (package
+    (name "rust-fehler-macros")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fehler-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y808jbwbngji40zny0b0dvxsw9a76g6fl1c5qigmfsy0jqsrdfc"))))
+    (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/withoutboats/fehler")
+    (synopsis "Macros for fehler")
+    (description "This package provides macros for the fehler crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-femme-2
   (package
     (name "rust-femme")
@@ -22255,6 +24077,64 @@ Atom, RSS 2.0, RSS 1.0, RSS 0.x and JSON Feed")
     ;; No copyright headers in the source code.  LICENSE indicates gpl3.
     (license license:gpl3)))
 
+(define-public rust-ff-0.13
+  (package
+    (name "rust-ff")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ff" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jcl8yhcs5kbfxfpnrhpkkvnk7s666vly6sgawg3nri9nx215m6y"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitvec" ,rust-bitvec-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-ff-derive" ,rust-ff-derive-0.13)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-subtle" ,rust-subtle-2))
+       #:cargo-development-inputs
+       (("rust-blake2b-simd" ,rust-blake2b-simd-1)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/zkcrypto/ff")
+    (synopsis "Library for building and interfacing with finite fields")
+    (description "This package provides a rust library for building and
+interfacing with finite fields.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-ff-derive-0.13
+  (package
+    (name "rust-ff-derive")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ff-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jnq13qqmnvgh1xmjzdgynwgbbkf64qibqf5a5hjiva5pq24gxg9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-addchain" ,rust-addchain-0.2)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-num-bigint" ,rust-num-bigint-0.3)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/zkcrypto/ff")
+    (synopsis
+     "Procedural macro library used to build custom prime field implementations")
+    (description
+     "This package provides a procedural macro library used to build custom
+prime field implementations in rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-fiat-crypto-0.1
   (package
     (name "rust-fiat-crypto")
@@ -22273,6 +24153,23 @@ Atom, RSS 2.0, RSS 1.0, RSS 0.x and JSON Feed")
 @code{fiat-crypto} libraries.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-file-diff-1
+  (package
+    (name "rust-file-diff")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "file-diff" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19a34rvbqg3b2my6ykax5n1qi2ahwbjacn9y2ji3h9gkp04ak9ri"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/ethanpailes/file_diff-rs")
+    (synopsis "Atomic utility for diffing files in testing")
+    (description "An atomic utility for diffing files in testing.")
+    (license license:bsd-3)))
+
 (define-public rust-filesize-0.2
   (package
     (name "rust-filesize")
@@ -22490,6 +24387,54 @@ custom fixed-size hash types.")
          (base32
           "0czam11mi80dbyhf4rd4lz0ihcf7vkfchrdcrn45wbs0h40dxm46"))))))
 
+(define-public rust-flagset-0.4
+  (package
+    (name "rust-flagset")
+    (version "0.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "flagset" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "16alqal1jyg1pibd72drdq2ax5cb1fs09f54ghpw043qg75579nd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-repr" ,rust-serde-repr-0.1))))
+    (home-page "https://github.com/enarx/flagset")
+    (synopsis
+     "Data types and a macro for generating enumeration-based bit flags")
+    (description "This package provides data types and a macro for generating
+enumeration-based bit flags in rust.")
+    (license license:asl2.0)))
+
+(define-public rust-flaky-test-0.1
+  (package
+    (name "rust-flaky-test")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "flaky-test" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "14yvm0knhcx0xfwlykir2v198x5bpwf333yrdl2mmkv8n5gdx727"))))
+    (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/denoland/flaky_test")
+    (synopsis "Atttribute macro for running a flaky test multiple times")
+    (description "This package provides an atttribute macro for running a flaky
+test multiple times.")
+    (license license:expat)))
+
 (define-public rust-flame-0.2
   (package
     (name "rust-flame")
@@ -22516,8 +24461,32 @@ custom fixed-size hash types.")
     (description "A profiling and flamegraph library.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-flamer-0.4
+  (package
+    (name "rust-flamer")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "flamer" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1avszq3fn4ix7p6wjfdkli6fjyxccks1qhzja92a6kpxakd35drn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-flame" ,rust-flame-0.2)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/llogiq/flamer")
+    (synopsis "Macro to insert @code{flame::start_guard(_)}")
+    (description
+     "A procedural macro to insert @code{flame::start_guard(_)} calls.")
+    (license license:asl2.0)))
+
 (define-public rust-flamer-0.3
   (package
+    (inherit rust-flamer-0.4)
     (name "rust-flamer")
     (version "0.3.0")
     (source
@@ -22529,18 +24498,12 @@ custom fixed-size hash types.")
        (sha256
         (base32
          "1b2d7jx80f3p7hqpgdi7wksaiq18k9w23p0cs2sxf7jbx2jx3bgj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f      ; Uses features not available in stable Rust release
        #:cargo-inputs
        (("rust-flame" ,rust-flame-0.2)
         ("rust-quote" ,rust-quote-0.6)
-        ("rust-syn" ,rust-syn-0.15))))
-    (home-page "https://github.com/llogiq/flamer")
-    (synopsis "Macro to insert @code{flame::start_guard(_)}")
-    (description
-     "A procedural macro to insert @code{flame::start_guard(_)} calls.")
-    (license license:asl2.0)))
+        ("rust-syn" ,rust-syn-0.15))))))
 
 (define-public rust-flatbuffers-2
   (package
@@ -23040,14 +25003,14 @@ implementation that is more efficient for smaller hash keys.")
 (define-public rust-form-urlencoded-1
   (package
     (name "rust-form-urlencoded")
-    (version "1.1.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "form_urlencoded" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1y3bwavygjzv7b0yqsjqk33yi6wz25b7q2aaq9h54vqmc7qq9hx9"))))
+        (base32 "0ljn0kz23nr9yf3432k656k178nh4jqryfji9b0jw343dz7w2ax6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -23179,6 +25142,41 @@ values to other threads.")
 duplication.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fs-at-0.1
+  (package
+    (name "rust-fs-at")
+    (version "0.1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fs-at" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02mvd85zjs0pxpykvkbqlwkii5f768z8xm0fqbqzv1s41yrbl105"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aligned" ,rust-aligned-0.4)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cvt" ,rust-cvt-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.26)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-smart-default" ,rust-smart-default-0.7)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-fs-set-times" ,rust-fs-set-times-0.19)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-log" ,rust-test-log-0.2))))
+    (home-page "https://github.com/rbtcollins/fs_at.git")
+    (synopsis "Implementation of 'at' functions for various platforms")
+    (description "This package provides an implementation of at functions for
+various platforms.")
+    (license license:asl2.0)))
+
 (define-public rust-fs-err-2
   (package
     (name "rust-fs-err")
@@ -23206,16 +25204,17 @@ more helpful error messages.")
 (define-public rust-fs-extra-1
   (package
     (name "rust-fs-extra")
-    (version "1.2.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "fs_extra" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "151k6dr35mhq5d8pc8krhw55ajhkyiv0pm14s7zzlc5bc9fp28i0"))))
+        (base32 "075i25z70j2mz9r7i9p9r521y8xdj81q7skslyb7zhqnnw33fw22"))))
     (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
+    (arguments
+     `(#:tests? #f))        ; panicked at 'assertion failed: `(left == right)`
     (home-page "https://github.com/webdesus/fs_extra")
     (synopsis "Extra file system methods")
     (description "Expanding opportunities standard library @code{std::fs} and
@@ -23223,6 +25222,28 @@ more helpful error messages.")
 process and much more.")
     (license license:expat)))
 
+(define-public rust-fs-set-times-0.19
+  (package
+    (name "rust-fs-set-times")
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "fs-set-times" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qc822hifnwvrfd706wnx5xhajqfsc4kn2lmalfda4x02pqx0cvq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-rustix" ,rust-rustix-0.37)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/bytecodealliance/fs-set-times")
+    (synopsis "Set filesystem timestamps")
+    (description "Set filesystem timestamps")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-fs-utils-1
   (package
     (name "rust-fs-utils")
@@ -23594,7 +25615,7 @@ stabilized, and eventually removed.  This library reïnstates these traits.")
 (define-public rust-futures-0.3
   (package
     (name "rust-futures")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -23603,10 +25624,10 @@ stabilized, and eventually removed.  This library reïnstates these traits.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "115z5bqihd2jq75s8n7jxy4k83kpv67vhic4snch6d7h1wmpkqhk"))))
+         "0h7c1xvxk751c7xlnph6fh3rb77z4lig4qif7f8q79db2az2ld13"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-futures-channel" ,rust-futures-channel-0.3)
         ("rust-futures-core" ,rust-futures-core-0.3)
@@ -23614,7 +25635,13 @@ stabilized, and eventually removed.  This library reïnstates these traits.")
         ("rust-futures-io" ,rust-futures-io-0.3)
         ("rust-futures-sink" ,rust-futures-sink-0.3)
         ("rust-futures-task" ,rust-futures-task-0.3)
-        ("rust-futures-util" ,rust-futures-util-0.3))))
+        ("rust-futures-util" ,rust-futures-util-0.3))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1)
+        ("rust-pin-project" ,rust-pin-project-1)
+        ("rust-pin-utils" ,rust-pin-utils-0.1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-tokio" ,rust-tokio-0.1))))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Rust implementation of futures and streams")
     (description
@@ -23646,7 +25673,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-channel-0.3
   (package
     (name "rust-futures-channel")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -23655,10 +25682,10 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1xadcvj4hi6278hq6i0vnrsa231fyiylh2n03rx7d2ch79k1flrf"))))
+         "1wmm9wm5zjigxz61qkscmxp7c30zp08dy63spjz5pch9gva1hmcm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-futures-sink" ,rust-futures-sink-0.3))))
@@ -23697,7 +25724,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
 (define-public rust-futures-core-0.3
   (package
     (name "rust-futures-core")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -23706,10 +25733,10 @@ featuring zero allocations, composability, and iterator-like interfaces.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "02467z5mv0219hkrgmpvsb3h7vb8pg31s1j901h7vxg11x6zz47c"))))
+         "137fdxy5amg9zkpa1kqnj7bnha6b94fmddz59w973x96gqxmijjb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f
        #:cargo-inputs
        (("rust-portable-atomic" ,rust-portable-atomic-1))))
     (home-page "https://rust-lang.github.io/futures-rs")
@@ -23767,7 +25794,7 @@ the computation on the threads themselves.")
 (define-public rust-futures-executor-0.3
   (package
     (name "rust-futures-executor")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -23776,7 +25803,7 @@ the computation on the threads themselves.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "03mm37yv235i2ifjfaacw5cl8cmiyirj8ap3d64fr5xblqshmpp8"))))
+         "1q468di96knnla72xdvswic1ir2qkrf5czsdigc5n4l86a1fxv6c"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -23852,7 +25879,7 @@ intrusive collections.")
 (define-public rust-futures-io-0.3
   (package
     (name "rust-futures-io")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -23861,9 +25888,8 @@ intrusive collections.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0cc5s3qdgls25rlm3zpdf9fdk6gwmfp0fiiph39b5bmjdwdkgf5z"))))
+         "0r4rhkdhq1my4fahlhz59barqa511bylq813w3w4gvbidq4p9zsg"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis
      "@code{AsyncRead} and @code{AsyncWrite} traits for the @code{futures-rs}
@@ -23921,14 +25947,14 @@ for the @code{futures-rs} library.")
 (define-public rust-futures-lite-1
   (package
     (name "rust-futures-lite")
-    (version "1.11.3")
+    (version "1.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-lite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ywmyvpy4f348jri8rxhpj59a7bvy12pspm59x5207fys061sj5l"))))
+        (base32 "1kkbqhaib68nzmys2dc8j9fl2bwzf2s91jfk13lb2q3nwhfdbaa9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -23974,21 +26000,20 @@ and removes almost all unsafe code from it.")
 (define-public rust-futures-macro-0.3
   (package
     (name "rust-futures-macro")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-macro" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w3ahy69varlfw57rb2pag7jwngy771vvzmcag7mlfx3gpw3m9wm"))))
+        (base32 "0wpfsqxwqk5k569xl0jzz4zxy85x695mndf7y9jn66q6jid59jl9"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
+        ("rust-syn" ,rust-syn-2))))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "@code{futures-rs} procedural macro implementations")
     (description
@@ -23996,6 +26021,27 @@ and removes almost all unsafe code from it.")
 implementations.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-futures-micro-0.5
+  (package
+    (name "rust-futures-micro")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "futures-micro" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09n8d1qnpk6mjpnv338wkbgyppvd4aygfddwlwb8pmlk6m5jcq5l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Uses unstable features.
+       #:cargo-inputs (("rust-pin-project-lite" ,rust-pin-project-lite-0.2))
+       #:cargo-development-inputs (("rust-futures-lite" ,rust-futures-lite-0.1))))
+    (home-page "https://github.com/irrustible/futures-micro")
+    (synopsis "Minimal, no_std compatible async prelude")
+    (description "Minimal, no_std compatible async prelude.")
+    (license license:asl2.0)))
+
 (define-public rust-futures-preview-0.3
   (package
     (name "rust-futures-preview")
@@ -24060,7 +26106,7 @@ different @code{Future}s at once and handling the first one to complete.")
 (define-public rust-futures-sink-0.3
   (package
     (name "rust-futures-sink")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -24069,9 +26115,8 @@ different @code{Future}s at once and handling the first one to complete.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0r43djzf0caz89c724ishpzxy59y6nw7ykfvh1nd9kz8nc5q447k"))))
+         "0vkv4frf4c6gm1ag9imjz8d0xvpnn22lkylsls0rffx147zf8fzl"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Asynchronous @code{Sink} trait for the @code{futures-rs} library")
     (description "This package provides the asynchronous @code{Sink} trait for
@@ -24105,17 +26150,16 @@ futures-rs library.")
 (define-public rust-futures-task-0.3
   (package
     (name "rust-futures-task")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "futures-task" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0rk3jg6lri1rrn03ns89cmw8lircbaf2i2d4mr10zc8hyqdrmxyw"))))
+        (base32 "0ravgihyarbplj32zp60asirfnaalw2wfsa0afhnl3kcpqrd3lvn"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t))
+    (arguments `(#:tests? #f))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis "Tools for working with tasks")
     (description "This package provides tools for working with tasks.")
@@ -24124,7 +26168,7 @@ futures-rs library.")
 (define-public rust-futures-test-0.3
   (package
     (name "rust-futures-test")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -24132,7 +26176,7 @@ futures-rs library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pbdzvbmzrnc67bpp7hbh7l5mavqifpgk2vhaprr0vlr6qrpcyi4"))))
+         "0j83960iv317xj8bfq5jay4s1yqdjidfcb1lz8js793h91s2gbw4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f          ; Doc tests fail.
@@ -24231,7 +26275,7 @@ timeouts and delays with futures.")
 (define-public rust-futures-util-0.3
   (package
     (name "rust-futures-util")
-    (version "0.3.26")
+    (version "0.3.28")
     (source
      (origin
        (method url-fetch)
@@ -24239,10 +26283,10 @@ timeouts and delays with futures.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lbvdf6hq62yczd87glm6ih8h5qkagsl7xdiwhmqvwzymkins7cw"))))
+        (base32 "0cwmls9369w6q6hwlbm10q0plr6hmg8w28fpqvv4rmbjnx01xc16"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Doc tests fail.
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-futures-channel" ,rust-futures-channel-0.3)
@@ -24255,7 +26299,8 @@ timeouts and delays with futures.")
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
         ("rust-slab" ,rust-slab-0.4)
-        ("rust-tokio-io" ,rust-tokio-io-0.1))))
+        ("rust-tokio-io" ,rust-tokio-io-0.1))
+       #:cargo-development-inputs (("rust-tokio" ,rust-tokio-0.1))))
     (home-page "https://rust-lang.github.io/futures-rs")
     (synopsis
      "Common utilities and extension traits for the @code{futures-rs} library")
@@ -24534,7 +26579,7 @@ Rust.")
 (define-public rust-generic-array-0.14
   (package
     (name "rust-generic-array")
-    (version "0.14.4")
+    (version "0.14.7")
     (source
       (origin
         (method url-fetch)
@@ -24543,13 +26588,15 @@ Rust.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "05qqwm9v5asbil9z28wjkmpfvs1c5c99n8n9gwxis3d3r3n6c52h"))))
+          "16lyyrzrljfq424c3n8kfwkqihlimmsg5nhshbbp48np3yjrqr45"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f      ; Doc tests fail
+       #:cargo-inputs
        (("rust-serde" ,rust-serde-1)
         ("rust-typenum" ,rust-typenum-1)
-        ("rust-version-check" ,rust-version-check-0.9))
+        ("rust-version-check" ,rust-version-check-0.9)
+        ("rust-zeroize" ,rust-zeroize-1))
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
         ("rust-serde-json" ,rust-serde-json-1))))
@@ -25131,17 +27178,17 @@ permitted in ordinary Rust.")
     ;; Either license can be chosen at the users option.
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-gimli-0.26
+(define-public rust-gimli-0.27
   (package
     (name "rust-gimli")
-    (version "0.26.2")
+    (version "0.27.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "gimli" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0pafbk64rznibgnvfidhm1pqxd14a5s9m50yvsgnbv38b8n0w0r2"))))
+                "1d5v6jjchf4872jynjsg5ni4vankm1341bas8qindygb6g9962md"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -25152,11 +27199,13 @@ permitted in ordinary Rust.")
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
        #:cargo-development-inputs
-       (("rust-byteorder" ,rust-byteorder-0.5)
-        ("rust-crossbeam" ,rust-crossbeam-0.8)
+       (("rust-crossbeam" ,rust-crossbeam-0.8)
         ("rust-getopts" ,rust-getopts-0.2)
         ("rust-memmap2" ,rust-memmap2-0.5)
-        ("rust-object" ,rust-object-0.29)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-object" ,rust-object-0.30)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1)
         ("rust-test-assembler" ,rust-test-assembler-0.1)
         ("rust-typed-arena" ,rust-typed-arena-2))))
     (home-page "https://github.com/gimli-rs/gimli")
@@ -25164,7 +27213,90 @@ permitted in ordinary Rust.")
     (description
      "This package provides a library for reading and writing the DWARF
 debugging format.")
-    (license (list license:asl2.0 license:expat))))
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-gimli-0.26
+  (package
+    (inherit rust-gimli-0.27)
+    (name "rust-gimli")
+    (version "0.26.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "gimli" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pafbk64rznibgnvfidhm1pqxd14a5s9m50yvsgnbv38b8n0w0r2"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-0.5)
+        ("rust-crossbeam" ,rust-crossbeam-0.8)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ("rust-memmap2" ,rust-memmap2-0.5)
+        ("rust-object" ,rust-object-0.29)
+        ("rust-test-assembler" ,rust-test-assembler-0.1)
+        ("rust-typed-arena" ,rust-typed-arena-2))))))
+
+(define-public rust-git-testament-0.2
+  (package
+    (name "rust-git-testament")
+    (version "0.2.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "git-testament" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c9l10wpyz39vhb5cijvbym6gmpmw3y3nb35l2hg6w42h1ygaswq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-git-testament-derive" ,rust-git-testament-derive-0.1)
+        ("rust-no-std-compat" ,rust-no-std-compat-0.4))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/kinnison/git-testament/")
+    (synopsis "Record git working tree status when compiling your crate")
+    (description "Record git working tree status when compiling your crate")
+    (license license:bsd-3)))
+
+(define-public rust-git-testament-derive-0.1
+  (package
+    (name "rust-git-testament-derive")
+    (version "0.1.14")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "git-testament-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rlais0i47mgsmp3r5jcqry2agjfyg5s9paj6mgvfykchssjsy2a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-time" ,rust-time-0.3))
+       #:cargo-development-inputs
+       (("rust-git-testament" ,rust-git-testament-0.2))))
+    (home-page "https://github.com/kinnison/git-testament/")
+    (synopsis "Record git working tree status when compiling your crate")
+    (description
+     "This package provides an inner procedural macro for git-testament.")
+    (license license:bsd-3)))
 
 (define-public rust-git-version-0.3
   (package
@@ -25742,7 +27874,7 @@ shell style patterns.")
 (define-public rust-globset-0.4
   (package
     (name "rust-globset")
-    (version "0.4.7")
+    (version "0.4.12")
     (source
      (origin
        (method url-fetch)
@@ -25750,12 +27882,12 @@ shell style patterns.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ca96s29s7aqpkm04z4babyk8xqn1w7slpdrlldgnkz6l2gipz7h"))))
+        (base32 "01phmxrkr9d7lhh84b6nylgjb3r21ssfddxvm23ihz3hw3cbpa5c"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aho-corasick" ,rust-aho-corasick-0.7)
-        ("rust-bstr" ,rust-bstr-0.2)
+       (("rust-aho-corasick" ,rust-aho-corasick-1)
+        ("rust-bstr" ,rust-bstr-1)
         ("rust-fnv" ,rust-fnv-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-regex" ,rust-regex-1)
@@ -25872,32 +28004,68 @@ timers.")
 libraries GMP, MPFR, and MPC.")
     (license license:lgpl3+)))
 
-(define-public rust-goblin-0.2
+(define-public rust-goblin-0.7
   (package
     (name "rust-goblin")
-    (version "0.2.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "goblin" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1j38fkqadbsjxawr3wnj9m0qaihcwp6pmfakmhsar881509y7mfx"))))
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "goblin" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d11fk9bdxzf228xpr8v6d6a01dib00khjg5bldk9kf2d51inz7j"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Not all files included.
        #:cargo-inputs
-       (("rust-scroll" ,rust-scroll-0.10)
+       (("rust-log" ,rust-log-0.4)
         ("rust-plain" ,rust-plain-0.2)
-        ("rust-log" ,rust-log-0.4))))
+        ("rust-scroll" ,rust-scroll-0.11))))
     (home-page "https://github.com/m4b/goblin")
     (synopsis "ELF, Mach-o, and PE binary parsing and loading crate")
     (description "This package provides an ELF, Mach-o, and PE binary parsing
 and loading crate.")
     (license license:expat)))
 
+(define-public rust-goblin-0.6
+  (package
+    (inherit rust-goblin-0.7)
+    (name "rust-goblin")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "goblin" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0s7zs27b192virbp88y2fgq8p6nb8blkn7byqyl4cv7bm3j4ssqd"))))
+    (arguments
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-plain" ,rust-plain-0.2)
+        ("rust-scroll" ,rust-scroll-0.11))))))
+
+(define-public rust-goblin-0.2
+  (package
+    (inherit rust-goblin-0.6)
+    (name "rust-goblin")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "goblin" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1j38fkqadbsjxawr3wnj9m0qaihcwp6pmfakmhsar881509y7mfx"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-scroll" ,rust-scroll-0.10)
+        ("rust-plain" ,rust-plain-0.2)
+        ("rust-log" ,rust-log-0.4))))))
+
 (define-public rust-greetd-ipc-0.8
   (package
     (name "rust-greetd-ipc")
@@ -26134,6 +28302,31 @@ provides standard printing of search results, similar to grep itself.")
      "Fast line oriented regex searching as a library.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-group-0.13
+  (package
+    (name "rust-group")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "group" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0qqs2p5vqnv3zvq9mfjkmw3qlvgqb0c3cm6p33srkh7pc9sfzygh"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ff" ,rust-ff-0.13)
+        ("rust-memuse" ,rust-memuse-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-subtle" ,rust-subtle-2))))
+    (home-page "https://github.com/zkcrypto/group")
+    (synopsis "Elliptic curve group traits and utilities")
+    (description "Elliptic curve group traits and utilities.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-groupable-0.2
   (package
     (name "rust-groupable")
@@ -26535,8 +28728,81 @@ already-hashed or hash-like data.")
 @code{#[derive(Hash32)]}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hashbrown-0.14
+  (package
+    (name "rust-hashbrown")
+    (version "0.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hashbrown" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0yj3nf0w30pf30w503kgaw4sbjnh62l5cbmc7dd0mnczzywh2qic"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (substitute* "Cargo.toml"
+                    (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
+                     (string-append "^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.8)
+        ("rust-allocator-api2" ,rust-allocator-api2-0.2)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bumpalo" ,rust-bumpalo-3)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rkyv" ,rust-rkyv-0.7)
+        ("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/rust-lang/hashbrown")
+    (synopsis "Rust port of Google's SwissTable hash map")
+    (description
+     "This package provides a Rust port of Google's SwissTable hash map.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-hashbrown-0.13
+  (package
+    (inherit rust-hashbrown-0.14)
+    (name "rust-hashbrown")
+    (version "0.13.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hashbrown" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03ji3n19j4b6mf2wlla81vsixcmlivglp6hgk79d1pcxfcrw38s3"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.8)
+        ("rust-bumpalo" ,rust-bumpalo-3)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
 (define-public rust-hashbrown-0.12
   (package
+    (inherit rust-hashbrown-0.13)
     (name "rust-hashbrown")
     (version "0.12.3")
     (source (origin
@@ -26553,7 +28819,6 @@ already-hashed or hash-like data.")
                '(substitute* "Cargo.toml"
                   (("\\[package\\]" m)
                    (string-append "cargo-features = [\"edition2021\"]\n" m))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-ahash" ,rust-ahash-0.7)
@@ -26569,12 +28834,7 @@ already-hashed or hash-like data.")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/rust-lang/hashbrown")
-    (synopsis "Rust port of Google's SwissTable hash map")
-    (description
-     "This package provides a Rust port of Google's SwissTable hash map")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-test" ,rust-serde-test-1))))))
 
 (define-public rust-hashbrown-0.11
   (package
@@ -26780,8 +29040,34 @@ hash map.")
         ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-serde-test" ,rust-serde-test-1))))))
 
+(define-public rust-hashlink-0.8
+  (package
+    (name "rust-hashlink")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hashlink" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ap6ar5jlqq6ln7d9r2j5079mbx0zg8643xacqyjwkqw96ws2q87"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.13)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/kyren/hashlink")
+    (synopsis "HashMap-like containers with user controllable order")
+    (description "This package provides HashMap-like containers that hold
+their key-value pairs in a user controllable order.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hashlink-0.7
   (package
+    (inherit rust-hashlink-0.8)
     (name "rust-hashlink")
     (version "0.7.0")
     (source
@@ -26791,19 +29077,13 @@ hash map.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1kzs54xq1g41zph39cfdfchiafij99382zw5fk6zq7xwkh9a6jbj"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-hashbrown" ,rust-hashbrown-0.11)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
-       (("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://crates.io/crates/hashlink")
-    (synopsis "HashMap-like containers with user controllable order")
-    (description "This package provides HashMap-like containers that hold
-their key-value pairs in a user controllable order.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-serde-test" ,rust-serde-test-1))))))
 
 (define-public rust-hdrhistogram-6
   (package
@@ -27107,22 +29387,21 @@ consistent, and reasonably well performing.")
        #:cargo-inputs
        (("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))))
 
-(define-public rust-hermit-abi-0.2
+(define-public rust-hermit-abi-0.3
   (package
     (name "rust-hermit-abi")
-    (version "0.2.6")
+    (version "0.3.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "hermit-abi" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1iz439yz9qzk3rh9pqx2rz5c4107v3qbd7bppfsbzb1mzr02clgf"))))
+                "11j2v3q58kmi5mhjvh6hfrb7il2yzg7gmdf5lpwnwwv6qj04im7y"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-libc" ,rust-libc-0.2)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))
     (home-page "https://github.com/hermitcore/rusty-hermit")
@@ -27133,11 +29412,30 @@ It is used to build the target x86_64-unknown-hermit.")
     ;; The user can choose either license.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hermit-abi-0.2
+  (package
+    (inherit rust-hermit-abi-0.3)
+    (name "rust-hermit-abi")
+    (version "0.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hermit-abi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1iz439yz9qzk3rh9pqx2rz5c4107v3qbd7bppfsbzb1mzr02clgf"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
+
 (define-public rust-hermit-abi-0.1
   (package
     (inherit rust-hermit-abi-0.2)
     (name "rust-hermit-abi")
-    (version "0.1.10")
+    (version "0.1.20")
     (source
       (origin
         (method url-fetch)
@@ -27146,13 +29444,12 @@ It is used to build the target x86_64-unknown-hermit.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0blmmzik5cs79ivq70s9gal8ypgzj50wnl2hwsaam46gjjbz2p3j"))))
+          "1ypkwpf5r7m0jqdn2wfa0070i412kn9snvi1hg52w1yfvc40k8y7"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-         ("rust-libc" ,rust-libc-0.2)
-         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
+     `(#:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
 
 (define-public rust-hex-0.4
   (package
@@ -27203,10 +29500,31 @@ hexadecimal representation.")
        (sha256
         (base32 "1ajkw40qzn2ygnqjj9w584f6l31wi318258n84pn2hax8la2i8nn"))))))
 
+(define-public rust-hex-literal-0.4
+  (package
+    (name "rust-hex-literal")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "hex-literal" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0iny5inkixsdr41pm2vkqh3fl66752z5j5c0cdxw16yl9ryjdqkg"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/RustCrypto/utils")
+    (synopsis
+     "Convert hexadecimal string to byte array at compile time")
+    (description
+     "Procedural macro for converting hexadecimal string to byte array at
+compile time.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-hex-literal-0.3
   (package
+    (inherit rust-hex-literal-0.4)
     (name "rust-hex-literal")
-    (version "0.3.3")
+    (version "0.3.4")
     (source
      (origin
        (method url-fetch)
@@ -27215,15 +29533,7 @@ hexadecimal representation.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0nzljsyz9rwhh4vi0xs9ya4l5g0ka754wgpy97r1j3v42c75kr11"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/RustCrypto/utils")
-    (synopsis
-     "Convert hexadecimal string to byte array at compile time")
-    (description
-     "Procedural macro for converting hexadecimal string to byte array at
-compile time.")
-    (license (list license:asl2.0 license:expat))))
+         "1q54yvyy0zls9bdrx15hk6yj304npndy9v4crn1h1vd95sfv5gby"))))))
 
 (define-public rust-hex-literal-0.2
   (package
@@ -27624,32 +29934,59 @@ Hash-based Message Authentication Code algorithm} for SHA1.")
        (("rust-libc" ,rust-libc-0.2)
         ("rust-winutil" ,rust-winutil-0.1))))))
 
+(define-public rust-html5ever-0.26
+  (package
+    (name "rust-html5ever")
+    (version "0.26.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "html5ever" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dx3lhfwngi21wa79cpjv5rd4wn5vmklr50wrwbryidq92mqr9my"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mac" ,rust-mac-0.1)
+        ("rust-markup5ever" ,rust-markup5ever-0.11)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-typed-arena" ,rust-typed-arena-1))))
+    (home-page "https://github.com/servo/html5ever")
+    (synopsis "High-performance browser-grade HTML5 parser")
+    (description
+     "This package provides a high-performance browser-grade HTML5 parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-html5ever-0.25
   (package
+    (inherit rust-html5ever-0.26)
     (name "rust-html5ever")
-    (version "0.25.1")
+    (version "0.25.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "html5ever" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0szdpwr6l3p21flf01pdlpj6fkpqisqf34lvs918449n3a5g7z5a"))))
+        (base32 "0j1iw2yy3fglr5rxqfrghmhksxzpcfp8ps753qazqkaxisq3zhg5"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
         ("rust-mac" ,rust-mac-0.1)
         ("rust-markup5ever" ,rust-markup5ever-0.10)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/servo/html5ever")
-    (synopsis "High-performance browser-grade HTML5 parser")
-    (description
-     "This package provides a high-performance browser-grade HTML5 parser.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-typed-arena" ,rust-typed-arena-1))))))
 
 (define-public rust-html5ever-0.24
   (package
@@ -27726,14 +30063,14 @@ Hash-based Message Authentication Code algorithm} for SHA1.")
 (define-public rust-html-escape-0.2
   (package
     (name "rust-html-escape")
-    (version "0.2.12")
+    (version "0.2.13")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "html-escape" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "01f2v3c6j2rk5h2lhdbh62j07cm1fvzqw4vplj2sms83jpx5qc8m"))))
+                "0xml3hswv0205fbm5iq7dqiwjkr6d245xkfppwi7wqjdfr4x86kd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27750,22 +30087,24 @@ characters in HTML, decoding and unescaping HTML entities as well.")
 (define-public rust-hts-sys-2
   (package
     (name "rust-hts-sys")
-    (version "2.0.2")
+    (version "2.0.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "hts-sys" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1qn1qz2xa69x2dj1fbh91avm9943rbcykr37zs68pb2bdy847i3j"))
+                "1sy4wfk64f1i81m0brhrs4cm6qkb099zv62gr0k6js6k0v24zfhd"))
               (modules '((guix build utils)))
               (snippet
                '(substitute* "Cargo.toml"
                   ;; Do not use zlib-ng; just use zlib.
-                  (("features = \\[\"zlib-ng\", \"static\"\\]") "")
-                  ;; No static libraries please.
-                  (("\"static-curl\", \"static-ssl\",") "")
-                  ((", \"static\"") "")
+                  (("\"zlib-ng\",") "")
+                  (("\"static\",") "")
+                  ;; No static libraries please in curl-sys.
+                  (("\"static-curl\",") "")
+                  (("\"static-ssl\",") "\"ssl\",")
+                  ;; No static lzma.
                   (("\\[\"static\"\\]") "[]")))))
     (build-system cargo-build-system)
     (arguments
@@ -27776,7 +30115,7 @@ characters in HTML, decoding and unescaping HTML entities as well.")
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-fs-utils" ,rust-fs-utils-1)
         ("rust-glob" ,rust-glob-0.3)
-        ("rust-libdeflate-sys" ,rust-libdeflate-sys-0.5)
+        ("rust-libdeflate-sys" ,rust-libdeflate-sys-0.7)
         ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-lzma-sys" ,rust-lzma-sys-0.1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9))))
@@ -28132,10 +30471,31 @@ HTTP request or response body.")
      "This package provides a Humantime serialization timestamp format.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-humansize-2
+  (package
+    (name "rust-humansize")
+    (version "2.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "humansize" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1msxd1akb3dydsa8qs461sds9krwnn31szvqgaq93p4x0ad1rdbc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libm" ,rust-libm-0.2))))
+    (home-page "https://github.com/LeopoldArkham/humansize")
+    (synopsis "Represent file sizes in a human-readable format")
+    (description "This package provides a configurable crate to easily
+represent file sizes in a human-readable format.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-humansize-1
   (package
+    (inherit rust-humansize-2)
     (name "rust-humansize")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
@@ -28143,13 +30503,7 @@ HTTP request or response body.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0piadmwjah1jv6q288im4za9szlgalzjyq2811w35i6gg9ib5jmn"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/LeopoldArkham/humansize")
-    (synopsis "Represent file sizes in a human-readable format")
-    (description "This package provides a configurable crate to easily
-represent file sizes in a human-readable format.")
-    (license (list license:expat license:asl2.0))))
+         "09nh6xyssghjajvip9crd79i4a40nw8r4bdwwg3dg5l7rfb6ja82"))))))
 
 (define-public rust-humantime-2
   (package
@@ -28474,32 +30828,6 @@ SystemTime}}.")
        #:cargo-development-inputs
        (("rust-tokio" ,rust-tokio-0.2))))))
 
-(define-public rust-hyper-rustls-0.17
-  (package
-    (inherit rust-hyper-rustls-0.21)
-    (name "rust-hyper-rustls")
-    (version "0.17.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "hyper-rustls" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0li9xkzmqd40dbjbl9g0nbf2ka9y0q538ififyd30zsavz3qb7bi"))))
-    (arguments
-     `(#:cargo-test-flags '("--release" "--" "--skip=server" "--skip=client"
-                            "--skip=custom_ca_store")
-       #:cargo-inputs
-       (("rust-bytes" ,rust-bytes-0.4)
-        ("rust-ct-logs" ,rust-ct-logs-0.6)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-hyper" ,rust-hyper-0.12)
-        ("rust-rustls" ,rust-rustls-0.16)
-        ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-tokio-rustls" ,rust-tokio-rustls-0.10)
-        ("rust-webpki" ,rust-webpki-0.21)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
-
 (define-public rust-hyper-sync-rustls-0.3
   (package
     (name "rust-hyper-sync-rustls")
@@ -28709,6 +31037,26 @@ with hyper.")
      "This package provides the IANA time zone for the current system.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-idea-0.5
+  (package
+    (name "rust-idea")
+    (version "0.5.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "idea" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xv4hd9mgrwgzfl7cc5nlwyahm9yni5z9dwb3c1z5mqr8h05fm87"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs (("rust-cipher" ,rust-cipher-0.4))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "IDEA block cipher")
+    (description "IDEA block cipher")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ident-case-1
   (package
     (name "rust-ident-case")
@@ -28729,8 +31077,36 @@ with hyper.")
      "Utility for applying case rules to Rust identifiers.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-idna-0.4
+  (package
+    (name "rust-idna")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "idna" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0z4i1dhqk83bbv230pp1c31dqdlnscvqxvc85n40ihgvgfqdc83x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unicode-bidi" ,rust-unicode-bidi-0.3)
+        ("rust-unicode-normalization" ,rust-unicode-normalization-0.1))
+       #:cargo-development-inputs
+       (("rust-assert-matches" ,rust-assert-matches-1)
+        ("rust-bencher" ,rust-bencher-0.1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tester" ,rust-tester-0.9))))
+    (home-page "https://github.com/servo/rust-url/")
+    (synopsis "Internationalizing Domain Names in Applications and Punycode")
+    (description
+     "IDNA (Internationalizing Domain Names in Applications) and Punycode.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-idna-0.3
   (package
+    (inherit rust-idna-0.4)
     (name "rust-idna")
     (version "0.3.0")
     (source
@@ -28740,7 +31116,6 @@ with hyper.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1rh9f9jls0jy3g8rh2bfpjhvvhh4q80348jc4jr2s844133xykg1"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-unicode-bidi" ,rust-unicode-bidi-0.3)
@@ -28749,12 +31124,7 @@ with hyper.")
        (("rust-assert-matches" ,rust-assert-matches-1)
         ("rust-bencher" ,rust-bencher-0.1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-tester" ,rust-tester-0.9))))
-    (home-page "https://github.com/servo/rust-url/")
-    (synopsis "Internationalizing Domain Names in Applications and Punycode")
-    (description
-     "IDNA (Internationalizing Domain Names in Applications) and Punycode.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-tester" ,rust-tester-0.9))))))
 
 (define-public rust-idna-0.2
   (package
@@ -28856,7 +31226,7 @@ on both POSIX and Microsoft Windows hosts.")
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cc", rust-cc-1)
+       (("rust-cc" ,rust-cc-1)
         ("rust-libc" ,rust-libc-0.2))))
     (home-page "https://github.com/messense/if-addrs")
     (synopsis "Retrieve the IP addresses for all network interfaces")
@@ -28886,19 +31256,18 @@ let} expressions.")
 (define-public rust-ignore-0.4
   (package
     (name "rust-ignore")
-    (version "0.4.18")
+    (version "0.4.20")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ignore" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "07bmnv96msggqb040z6xqp1p7s8ys0f97b731hp6mybkjc9ingvi"))))
+        (base32 "14kl9fv83klbnjxdv0y8lpwlj3gkypxf3vbrmm29m2jkmcyqgryv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
-        ("rust-globset" ,rust-globset-0.4)
+       (("rust-globset" ,rust-globset-0.4)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-memchr" ,rust-memchr-2)
@@ -29194,23 +31563,26 @@ crate.")
 that efficiently appends and removes common indentation after every newline.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-indexmap-1
+(define-public rust-indexmap-2
   (package
     (name "rust-indexmap")
-    (version "1.9.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "indexmap" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "16dkr2h5p379jcr8rnb420396yvzid2myirc2w70zcf43yffg18q"))))
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "indexmap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pdnbvv6gnyxx2li8mks8p00fya3ynmhx3n6infpcy8a4gi7yiym"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-equivalent" ,rust-equivalent-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.14)
         ("rust-quickcheck" ,rust-quickcheck-1)
-        ("rust-rustc-rayon" ,rust-rustc-rayon-0.4)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-rayon" ,rust-rustc-rayon-0.5)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1)
@@ -29232,24 +31604,26 @@ removals, and it allows lookup of its elements by either hash table key
 or numerical index.  A corresponding hash set type is also provided.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-indexmap-1.8
+(define-public rust-indexmap-1
   (package
-    (inherit rust-indexmap-1)
+    (inherit rust-indexmap-2)
     (name "rust-indexmap")
-    (version "1.8.2")
+    (version "1.9.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "indexmap" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nnaw0whv3xysrpjrz69bsibbscd81rwx63s6f4kbajv1ia2s0g6"))))
+        (base32 "16dxmy7yvk51wvnih3a3im6fp5lmx0wx76i03n06wyak6cwhw1xx"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-autocfg" ,rust-autocfg-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-rayon" ,rust-rayon-1)
-        ("rust-rustc-rayon" ,rust-rustc-rayon-0.4)
+        ("rust-rustc-rayon" ,rust-rustc-rayon-0.5)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1)
@@ -29260,48 +31634,50 @@ or numerical index.  A corresponding hash set type is also provided.")
         ("rust-rand" ,rust-rand-0.8)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
-(define-public rust-indexmap-1.7
+(define-public rust-indexmap-1.8
   (package
     (inherit rust-indexmap-1)
     (name "rust-indexmap")
-    (version "1.7.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "indexmap" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw"))))
+    (version "1.8.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "indexmap" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nnaw0whv3xysrpjrz69bsibbscd81rwx63s6f4kbajv1ia2s0g6"))))
     (arguments
      `(#:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-1)
         ("rust-hashbrown" ,rust-hashbrown-0.11)
         ("rust-rayon" ,rust-rayon-1)
+        ("rust-rustc-rayon" ,rust-rustc-rayon-0.4)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-fnv" ,rust-fnv-1)
         ("rust-fxhash" ,rust-fxhash-0.2)
-        ("rust-itertools" ,rust-itertools-0.9)
+        ("rust-itertools" ,rust-itertools-0.10)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.7)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
-(define-public rust-indexmap-1.6
+(define-public rust-indexmap-1.7
   (package
     (inherit rust-indexmap-1)
     (name "rust-indexmap")
-    (version "1.6.2")
+    (version "1.7.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "indexmap" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "1wxfh55zlrlpdxfcvvvj6wwc46f23cnb0j9q71190yl9pyh4aj42"))))
+               (base32
+                "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw"))))
     (arguments
      `(#:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-hashbrown" ,rust-hashbrown-0.11)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
@@ -29375,14 +31751,14 @@ Rust.")
 (define-public rust-indoc-2
   (package
     (name "rust-indoc")
-    (version "2.0.1")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "indoc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "142nzc474x1xgdzk057yv1yfrgxsk5a9zybbcwwrzp5ih65v8b4z"))))
+        (base32 "19xv7xcwln384m5m3p93hva9vv3yicjgsa69z1vrhakyq90dw73n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -29547,22 +31923,20 @@ deordinalize, demodulize, foreign key, and pluralize/singularize are supported
 as both traits and pure functions acting on String types.")
     (license license:bsd-2)))
 
-(define-public rust-inotify-0.9
+(define-public rust-inotify-0.10
   (package
     (name "rust-inotify")
-    (version "0.9.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "inotify" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1cs3xlkq3fnfca3mimvifazp01ayscinm07v38ifw0xin5f4fcdh"))))
+    (version "0.10.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "inotify" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1k2m6a95827yspax1icmwiz4szr7c01w3dnn2b2bil4hfvcnilgx"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-inotify-sys" ,rust-inotify-sys-0.1)
@@ -29570,14 +31944,41 @@ as both traits and pure functions acting on String types.")
         ("rust-tokio" ,rust-tokio-1))
        #:cargo-development-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-maplit" ,rust-maplit-1)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-tokio" ,rust-tokio-1))))
-    (home-page "https://github.com/inotify-rs/inotify")
+    (home-page "https://github.com/hannobraun/inotify")
     (synopsis "Idiomatic wrapper for inotify")
     (description "This package provides an idiomatic wrapper for inotify
 written in Rust.")
     (license license:isc)))
 
+(define-public rust-inotify-0.9
+  (package
+    (inherit rust-inotify-0.10)
+    (name "rust-inotify")
+    (version "0.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "inotify" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1cs3xlkq3fnfca3mimvifazp01ayscinm07v38ifw0xin5f4fcdh"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-inotify-sys" ,rust-inotify-sys-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tokio" ,rust-tokio-1))))))
+
 (define-public rust-inotify-0.8
   (package
     (inherit rust-inotify-0.9)
@@ -29928,23 +32329,20 @@ bytestring representations.")
      "Simple procedural macro attribute for repetitive tests.")
     (license license:expat)))
 
-(define-public rust-inventory-0.2
+(define-public rust-inventory-0.3
   (package
     (name "rust-inventory")
-    (version "0.2.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "inventory" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "06h9xw67wx18rank4yyz93iq89j0fk6fbazryfvf5ach1dp4qd44"))))
+    (version "0.3.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "inventory" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yd0qljqk29vkgpgac1vnigs44li8sd029jbrlrj8xg2w2hqg2n3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-ctor" ,rust-ctor-0.1)
-        ("rust-ghost" ,rust-ghost-0.1))
-       #:cargo-development-inputs
+     `(#:cargo-development-inputs
        (("rust-rustversion" ,rust-rustversion-1)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/inventory")
@@ -29953,9 +32351,28 @@ bytestring representations.")
      "This package provides a way to set up a plugin registry into which
 plugins can be registered from any source file linked into your program.
 There does not need to be a central list of all the plugins.")
-    ;; Either license can be chosen at the users option.
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-inventory-0.2
+  (package
+    (inherit rust-inventory-0.3)
+    (name "rust-inventory")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "inventory" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06h9xw67wx18rank4yyz93iq89j0fk6fbazryfvf5ach1dp4qd44"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ctor" ,rust-ctor-0.1)
+        ("rust-ghost" ,rust-ghost-0.1))
+       #:cargo-development-inputs
+       (("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))))
+
 (define-public rust-inventory-0.1
   (package
     (inherit rust-inventory-0.2)
@@ -30005,24 +32422,25 @@ versions < 0.2.")
 (define-public rust-io-lifetimes-1
   (package
     (name "rust-io-lifetimes")
-    (version "1.0.3")
+    (version "1.0.10")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "io-lifetimes" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0g76f1c4w3cgyl6qn3kfmi7srphrmjhx3a0rl4qks4ib4n9jl4a6"))))
+                "08625nsz0lgbd7c9lly6b6l45viqpsnj9jbsixd9mrz7596wfrlw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-async-std" ,rust-async-std-1)
                        ("rust-fs-err" ,rust-fs-err-2)
+                       ("rust-hermit-abi" ,rust-hermit-abi-0.3)
                        ("rust-libc" ,rust-libc-0.2)
                        ("rust-mio" ,rust-mio-0.8)
                        ("rust-os-pipe" ,rust-os-pipe-1)
                        ("rust-socket2" ,rust-socket2-0.4)
                        ("rust-tokio" ,rust-tokio-1)
-                       ("rust-windows-sys" ,rust-windows-sys-0.42))))
+                       ("rust-windows-sys" ,rust-windows-sys-0.48))))
     (home-page "https://github.com/sunfishcode/io-lifetimes")
     (synopsis "Low-level I/O ownership and borrowing library")
     (description
@@ -30122,6 +32540,25 @@ network configuration for Windows.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-winreg" ,rust-winreg-0.6))))))
 
+(define-public rust-is-ci-1
+  (package
+    (name "rust-is-ci")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "is-ci" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ywra2z56x6d4pc02zq24a4x7gvpixynh9524icbpchbf9ydwv31"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/zkat/is_ci")
+    (synopsis "Lightweight CI environment checker")
+    (description
+     "Super lightweight CI environment checker.  Just tells you if you're in CI
+or not without much fuss.")
+    (license license:isc)))
+
 (define-public rust-is-macro-0.1
   (package
     (name "rust-is-macro")
@@ -30209,7 +32646,7 @@ that integrates with Rust idioms.")
 (define-public rust-ipnet-2
   (package
     (name "rust-ipnet")
-    (version "2.3.0")
+    (version "2.7.2")
     (source
      (origin
        (method url-fetch)
@@ -30217,11 +32654,12 @@ that integrates with Rust idioms.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0db147nh8jnxr23yxa7hwqn7dcjivdqi3aq4mgf2zgkqqqa2zgj7"))))
+         "0zxmnidy5qha1i384fzjfxcsi0qvkbcp730h26q4z3dg54hyxdhj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-serde" ,rust-serde-1))
+       (("rust-schemars" ,rust-schemars-0.8)
+        ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))
     (home-page "https://github.com/krisprice/ipnet")
@@ -30341,21 +32779,25 @@ whether or not a given path points to an executable file.")
 (define-public rust-is-terminal-0.4
   (package
     (name "rust-is-terminal")
-    (version "0.4.1")
+    (version "0.4.7")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "is-terminal" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0c2322dg9s35h87ln33w6qsjlgplhzza89rwmkvac4r9ikvhjxlj"))))
+                "07xyfla3f2jjb666s72la5jvl9zq7mixbqkjvyfi5j018rhr7kxd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-hermit-abi" ,rust-hermit-abi-0.2)
+       (("rust-hermit-abi" ,rust-hermit-abi-0.3)
         ("rust-io-lifetimes" ,rust-io-lifetimes-1)
-        ("rust-rustix" ,rust-rustix-0.36)
-        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+        ("rust-rustix" ,rust-rustix-0.37)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-atty" ,rust-atty-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/sunfishcode/is-terminal")
     (synopsis "Test whether a given stream is a terminal")
     (description
@@ -30560,15 +33002,17 @@ and functions.")
 (define-public rust-itoa-1
   (package
     (name "rust-itoa")
-    (version "1.0.1")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "itoa" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0d8wr2qf5b25a04xf10rz9r0pdbjdgb0zaw3xvf8k2sqcz1qzaqs"))))
+        (base32 "19jc2sa3wvdc29zhgbwf3bayikq4rq18n20dbyg9ahd4hbsxjfj5"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-no-panic" ,rust-no-panic-0.1))))
     (home-page "https://github.com/dtolnay/itoa")
     (synopsis "Fast functions for printing integer primitives")
     (description "This crate provides fast functions for printing integer
@@ -31008,7 +33452,7 @@ the jni-bindgen code generator for binding to JVM APIs from Rust.")
 (define-public rust-jobserver-0.1
   (package
     (name "rust-jobserver")
-    (version "0.1.24")
+    (version "0.1.26")
     (source
      (origin
        (method url-fetch)
@@ -31017,7 +33461,7 @@ the jni-bindgen code generator for binding to JVM APIs from Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1yn1vxbbqv7dqir6qbfcj8h8ddjf89m5mhvm36h13xx7k5raf9dg"))))
+         "1hkprvh1zp5s3qwjjwwhw7rcpivczcbf6q60rcxr0m8158hzsv4k"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -31025,7 +33469,7 @@ the jni-bindgen code generator for binding to JVM APIs from Rust.")
        #:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
         ("rust-tokio-core" ,rust-tokio-core-0.1)
         ("rust-tokio-process" ,rust-tokio-process-0.2))))
     (home-page "https://github.com/alexcrichton/jobserver-rs")
@@ -31143,8 +33587,27 @@ like Node.js and browsers, built on @code{#[wasm_bindgen]} using the
 wasm-bindgen crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-json-0.12
+  (package
+    (name "rust-json")
+    (version "0.12.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "json" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1z9vybaaz3xq95bwmyln2ijmn4dmzj61xlz06jsc9dnzmxg2i3h7"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/maciejhirsz/json-rust")
+    (synopsis "JSON implementation in Rust")
+    (description "This crate provides a JSON implementation in Rust, reducing
+friction with idiomatic Rust structs to ease interopability.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-json-0.11
   (package
+    (inherit rust-json-0.12)
     (name "rust-json")
     (version "0.11.15")
     (source
@@ -31155,14 +33618,7 @@ wasm-bindgen crate.")
         (sha256
          (base32
           "1rg9jxf6bpbwis3ixd5ak8rp37him7n4z8awz4ssrxl6hyplbhlj"))))
-    (build-system cargo-build-system)
-    (arguments '(#:skip-build? #t))
-    (home-page "https://github.com/maciejhirsz/json-rust")
-    (synopsis "JSON implementation in Rust")
-    (description "This crate provides a JSON implementation in Rust, reducing
-friction with idiomatic Rust structs to ease interopability.")
-    (license (list license:asl2.0
-                   license:expat))))
+    (arguments '(#:skip-build? #t))))
 
 (define-public rust-juliex-0.3
   (package
@@ -31264,20 +33720,23 @@ debugging.")
 (define-public rust-keccak-0.1
   (package
     (name "rust-keccak")
-    (version "0.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "keccak" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "19ybbvxrdk9yy65rk7f5ad0hcxszkjwph68yzkj3954lnir1bhk7"))))
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "keccak" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0h7rcvwvf20g4k8cx2brnrqvah6jwzs84w09vrj4743dczc5wvcg"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://crates.io/crates/keccak")
+    (arguments
+     `(#:cargo-inputs (("rust-cpufeatures" ,rust-cpufeatures-0.2))))
+    (home-page "https://github.com/RustCrypto/sponges/tree/master/keccak")
     (synopsis "Keccak-f sponge function for Rust")
-    (description "This package provides a keccak-f sponge function")
-    (license license:cc0)))
+    (description
+     "Pure Rust implementation of the Keccak sponge function including the
+keccak-f and keccak-p variants.")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-kernel32-sys-0.2
   (package
@@ -31303,6 +33762,39 @@ debugging.")
 kernel32.")
     (license license:expat)))
 
+(define-public rust-keyring-2
+  (package
+    (name "rust-keyring")
+    (version "2.0.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "keyring" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "14i4qxz6kpy1ijkx1gwig494f3bq54kwxldjf459w508plls2jcm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Tests need a TTY.
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-linux-keyutils" ,rust-linux-keyutils-0.2)
+        ("rust-secret-service" ,rust-secret-service-3)
+        ("rust-security-framework" ,rust-security-framework-2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-4)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rpassword" ,rust-rpassword-7)
+        ("rust-whoami" ,rust-whoami-1))))
+    (home-page "https://github.com/hwchen/keyring-rs")
+    (synopsis "Cross-platform library for managing passwords/credentials")
+    (description "This package provides a cross-platform library for managing
+passwords/credentials.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-khronos-api-3
   (package
     (name "rust-khronos-api")
@@ -31756,6 +34248,28 @@ requires non-const function calls to be computed.")
      `(#:cargo-inputs
        (("rust-clippy" ,rust-clippy-0.0))))))
 
+(define-public rust-lddtree-0.3
+  (package
+    (name "rust-lddtree")
+    (version "0.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "lddtree" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15f24jcglphqdjxmzafp8fnzslczzr6q1rls36akmb9hd32gwnrg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fs-err" ,rust-fs-err-2)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-goblin" ,rust-goblin-0.7))))
+    (home-page "https://github.com/messense/lddtree-rs")
+    (synopsis "Read the ELF dependency tree")
+    (description "Read the ELF dependency tree.")
+    (license license:expat)))
+
 (define-public rust-lebe-0.5
   (package
     (name "rust-lebe")
@@ -31799,7 +34313,7 @@ requires non-const function calls to be computed.")
         ("rust-log" ,rust-log-0.4)
         ("rust-native-tls" ,rust-native-tls-0.2)
         ("rust-nom" ,rust-nom-4)
-        ("rust-r2d2" ,rust-r2d2)
+        ("rust-r2d2" ,rust-r2d2-0.8)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1))))
@@ -32023,14 +34537,14 @@ parser in Rust.")
 (define-public rust-libc-0.2
   (package
     (name "rust-libc")
-    (version "0.2.137")
+    (version "0.2.144")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12dz2lk4a7lm03k079n2rkm1l6cpdhvy6nrngbfprzrv19icqzzw"))))
+        (base32 "1qfzrwhncsradwvdzd8vsj4mc31fh0rb5rvny3884rwa48fcq01b"))))
     (build-system cargo-build-system)
     (arguments
      (list #:cargo-inputs
@@ -32052,14 +34566,14 @@ values of all the exported APIs match the platform that libc is compiled for.")
 (define-public rust-libc-print-0.1
   (package
     (name "rust-libc-print")
-    (version "0.1.13")
+    (version "0.1.21")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libc-print" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cjvz622b9bmf32q3mzmxv9ddxfdla6z2v647v8f3qx7lci9kmji"))))
+        (base32 "04bcx06gb04v0csgyzsvd1v9wvmv26xwbipmpcblgfnrigasbkh6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
@@ -32116,22 +34630,20 @@ exposed as non-streaming buffer operations.  It contains bindings for raw
 deflate, zlib, and gzip data.")
     (license license:asl2.0)))
 
-(define-public rust-libdeflate-sys-0.5
+(define-public rust-libdeflate-sys-0.7
   (package
     (inherit rust-libdeflate-sys-0.11)
     (name "rust-libdeflate-sys")
-    (version "0.5.0")
+    (version "0.7.5")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "libdeflate-sys" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "07ychzvz9xrqs92frs3zpny0l8jp3sndzqpl7zhv6kdqhzx9xqr1"))))
+                "0a5pkrxa7zcb0nab2j48dn6j8d8g1pjvz196c308wrax6dpazkjc"))))
     (arguments
-     `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1))))
-    (home-page "https://github.com/adamkewley/libdeflater")))
+     `(#:cargo-inputs (("rust-cc" ,rust-cc-1))))))
 
 (define-public rust-libdeflater-0.11
   (package
@@ -32856,30 +35368,51 @@ suite of tools for the rapid, accurate and memory-frugal processing
 single-cell and single-nucleus sequencing data.")
     (license license:bsd-3)))
 
+(define-public rust-libsqlite3-sys-0.26
+  (package
+    (name "rust-libsqlite3-sys")
+    (version "0.26.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "libsqlite3-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09j3v5nhgvjdyskgwajhg9g6v3b2ij0lxiz8qqav2cxic7zjxhmg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.64)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
+    (inputs
+     (list sqlite))
+    (home-page "https://github.com/rusqlite/rusqlite")
+    (synopsis "Native bindings to the libsqlite3 library")
+    (description "Native bindings to the libsqlite3 library")
+    (license license:expat)))
+
 (define-public rust-libsqlite3-sys-0.23
   (package
+    (inherit rust-libsqlite3-sys-0.26)
     (name "rust-libsqlite3-sys")
-    (version "0.23.1")
+    (version "0.23.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libsqlite3-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1wm91qnsz729vfl3n1rhaq2ip2v4zzxbsawb975vlh4v8h68bmdb"))))
-    (build-system cargo-build-system)
+        (base32 "0n6b4mlpw9l74cl5mahnpaanyjsgpmz5y517kmnk6v09fiygrjnj"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bindgen" ,rust-bindgen-0.59)
         ("rust-cc" ,rust-cc-1)
         ("rust-openssl-sys" ,rust-openssl-sys-0.9)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-vcpkg" ,rust-vcpkg-0.2))))
-    (home-page "https://github.com/rusqlite/rusqlite")
-    (synopsis "Native bindings to the libsqlite3 library")
-    (description "Native bindings to the libsqlite3 library")
-    (license license:expat)))
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))))
 
 (define-public rust-libsqlite3-sys-0.22
   (package
@@ -33050,6 +35583,25 @@ high-performance zlib library.")
     (description "This package provides an object pool manager in Rust.")
     (license license:expat)))
 
+(define-public rust-line-col-0.2
+  (package
+    (name "rust-line-col")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "line-col" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1nvqjxn2kkxkph3qdlkc5xq1m2ygla4l0saga778sp2vp3vcsscy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
+    (home-page "https://github.com/TheBerkin/line-col-rs")
+    (synopsis "Convert string slice indices into line/column numbers")
+    (description "Convert string slice indices into line/column numbers")
+    (license license:expat)))
+
 (define-public rust-line-wrap-0.1
   (package
     (name "rust-line-wrap")
@@ -33232,25 +35784,52 @@ in plain text.  It is smart about where a link ends, such as with trailing
 punctuation.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-linux-raw-sys-0.1
+(define-public rust-linux-keyutils-0.2
+  (package
+    (name "rust-linux-keyutils")
+    (version "0.2.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "linux-keyutils" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jxq2bsrr80diyh8h4a0ls6yaljhyvj6ha2qmfshn7fxyrkvn9rz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-libc" ,rust-libc-0.2))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-zeroize" ,rust-zeroize-1))))
+    (home-page "https://github.com/landhb/linux-keyutils")
+    (synopsis "Rust interface to the Linux key-management facility")
+    (description
+     "This package provides a rust interface to the Linux key-management
+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
   (package
     (name "rust-linux-raw-sys")
-    (version "0.1.3")
+    (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
-                "0zxlp1c4h7kkc4ldgcj5cn7dzynvlksg8y0s9czn2v1sjvc0i7wg"))))
+                "17s7qr5h82blrxy29014zzhr30jcxcjc8r16v2p31rzcfal7xsgc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-static-assertions" ,rust-static-assertions-1))
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-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))))
     (home-page "https://github.com/sunfishcode/linux-raw-sys")
     (synopsis "Generated bindings for Linux APIs")
     (description
@@ -33260,6 +35839,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.1
+  (package
+    (inherit rust-linux-raw-sys-0.3)
+    (name "rust-linux-raw-sys")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "linux-raw-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zxlp1c4h7kkc4ldgcj5cn7dzynvlksg8y0s9czn2v1sjvc0i7wg"))))
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-static-assertions" ,rust-static-assertions-1))
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
+
 (define-public rust-linux-raw-sys-0.0.46
   (package
     (inherit rust-linux-raw-sys-0.1)
@@ -33405,6 +36004,25 @@ language representing fixed values).  Particularly useful for proc macros, but
 can also be used outside of a proc-macro context.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-llvm-bitcode-0.1
+  (package
+    (name "rust-llvm-bitcode")
+    (version "0.1.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "llvm-bitcode" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fskb2nzddg8m038kh2lm91gb5yg0l4j3rcnv44kz7f37kcxz5cb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-num-enum" ,rust-num-enum-0.5))))
+    (home-page "https://github.com/messense/llvm-bitcode-rs.git")
+    (synopsis "LLVM Bitcode parser in Rust")
+    (description "This package provides an LLVM Bitcode parser in Rust.")
+    (license license:expat)))
+
 (define-public rust-locale-0.2
   (package
     (name "rust-locale")
@@ -34035,7 +36653,7 @@ server (LSP).")
 (define-public rust-lzma-sys-0.1
   (package
     (name "rust-lzma-sys")
-    (version "0.1.17")
+    (version "0.1.20")
     (source
      (origin
        (method url-fetch)
@@ -34043,10 +36661,10 @@ server (LSP).")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06fnjsx5cj2w6rsqb12x30nl9lnj0xv4hv78z4x1vlfsxp1vgd5x"))
+         "09sxp20waxyglgn3cjz8qjkspb3ryz2fwx4rigkwvrk46ymh9njz"))
        (modules '((guix build utils)))
        (snippet
-        '(begin (delete-file-recursively "xz-5.2") #t))))
+        '(begin (delete-file-recursively "xz-5.2")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -34293,30 +36911,50 @@ algorithms.  It supports CBC block cipher mode, PKCS5 padding and 64, 128,
      "This package provides a simple library for maildir manipulation.")
     (license license:bsd-0)))
 
-(define-public rust-mailparse-0.13
+(define-public rust-mailparse-0.14
   (package
     (name "rust-mailparse")
-    (version "0.13.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "mailparse" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1qacyzfl3wsl745b92w9gj0mjg43rcwg99l96rmg8l1sq5pm4vy0"))))
+    (version "0.14.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "mailparse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1al0yb9wgy26ihd0gm4x1dk9rsv23wrmp2qw1lk4f04cbw7mfmkb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Doc tests fail.
        #:cargo-inputs
-       (("rust-base64" ,rust-base64-0.13)
-        ("rust-charset" ,rust-charset-0.1)
-        ("rust-quoted-printable" ,rust-quoted-printable-0.4))))
-    (home-page "https://github.com/staktrace/mailparse")
+       (("rust-charset" ,rust-charset-0.1)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-quoted-printable" ,rust-quoted-printable-0.4))
+       #:cargo-development-inputs (("rust-ouroboros" ,rust-ouroboros-0.14))))
+    (home-page "https://github.com/staktrace/mailparse/blob/master/README.md")
     (synopsis "Simple parser for MIME e-mail messages")
     (description
      "This package provides a simple parser for MIME e-mail messages.")
     (license license:bsd-0)))
 
+(define-public rust-mailparse-0.13
+  (package
+    (inherit rust-mailparse-0.14)
+    (name "rust-mailparse")
+    (version "0.13.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "mailparse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qacyzfl3wsl745b92w9gj0mjg43rcwg99l96rmg8l1sq5pm4vy0"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-charset" ,rust-charset-0.1)
+        ("rust-quoted-printable" ,rust-quoted-printable-0.4))))))
+
 (define-public rust-malloc-buf-0.0
  (package
    (name "rust-malloc-buf")
@@ -34406,8 +37044,35 @@ template engine for Rust.")
      "This package provides a fast, type-safe template engine for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-markup5ever-0.11
+  (package
+    (name "rust-markup5ever")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "markup5ever" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05mhzsp6lfxla1fgd0ac283b405s6kyj27wj5r6d7wq42jxjj9ks"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-phf" ,rust-phf-0.10)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.10)
+        ("rust-string-cache" ,rust-string-cache-0.8)
+        ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
+        ("rust-tendril" ,rust-tendril-0.4))))
+    (home-page "https://github.com/servo/html5ever")
+    (synopsis "Common code for xml5ever and html5ever")
+    (description
+     "Common code for xml5ever and html5ever.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-markup5ever-0.10
   (package
+    (inherit rust-markup5ever-0.11)
     (name "rust-markup5ever")
     (version "0.10.1")
     (source
@@ -34419,7 +37084,6 @@ template engine for Rust.")
         (sha256
          (base32
           "1zf8iq2czd6kz99fjs3pgf5c17lfz75ds31khkfiqbc50gxl0kx2"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
@@ -34427,12 +37091,7 @@ template engine for Rust.")
         ("rust-phf-codegen" ,rust-phf-codegen-0.8)
         ("rust-string-cache" ,rust-string-cache-0.8)
         ("rust-string-cache-codegen" ,rust-string-cache-codegen-0.5)
-        ("rust-tendril" ,rust-tendril-0.4))))
-    (home-page "https://github.com/servo/html5ever")
-    (synopsis "Common code for xml5ever and html5ever")
-    (description
-     "Common code for xml5ever and html5ever.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-tendril" ,rust-tendril-0.4))))))
 
 (define-public rust-markup5ever-0.9
   (package
@@ -34475,30 +37134,27 @@ template engine for Rust.")
         (base32
          "08ayl9aqjnmf7ly1ipy6dk3wjvyfn4w51l40jzh1fh984ykldbzi"))))))
 
-(define-public rust-markup5ever-rcdom-0.1
+(define-public rust-markup5ever-rcdom-0.2
   (package
     (name "rust-markup5ever-rcdom")
-    (version "0.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "markup5ever-rcdom" version))
-        (file-name
-          (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0axf6vrms8579lvhbjaj0v7bhs8xb7s26d4sam2g3m6qpi1xl5gh"))))
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "markup5ever-rcdom" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hir73wmvl0i5mfplfjg0qvxxmsn8qp5xmjkdkp813hgfpb1slmr"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-html5ever" ,rust-html5ever-0.25)
-         ("rust-markup5ever" ,rust-markup5ever-0.10)
-         ("rust-tendril" ,rust-tendril-0.4)
-         ("rust-xml5ever" ,rust-xml5ever-0.16))
-        #:cargo-development-inputs
-        (("rust-rustc-test" ,rust-rustc-test-0.3)
-         ("rust-serde-json" ,rust-serde-json-1))))
+     `(#:cargo-inputs
+       (("rust-html5ever" ,rust-html5ever-0.26)
+        ("rust-markup5ever" ,rust-markup5ever-0.11)
+        ("rust-tendril" ,rust-tendril-0.4)
+        ("rust-xml5ever" ,rust-xml5ever-0.17))
+       #:cargo-development-inputs
+       (("rust-rustc-test" ,rust-rustc-test-0.3)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/servo/html5ever")
     (synopsis
      "Basic, unsupported DOM structure for use by tests in html5ever/xml5ever")
@@ -34507,6 +37163,30 @@ template engine for Rust.")
 in html5ever/xml5ever")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-markup5ever-rcdom-0.1
+  (package
+    (inherit rust-markup5ever-rcdom-0.2)
+    (name "rust-markup5ever-rcdom")
+    (version "0.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "markup5ever-rcdom" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0axf6vrms8579lvhbjaj0v7bhs8xb7s26d4sam2g3m6qpi1xl5gh"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-html5ever" ,rust-html5ever-0.25)
+        ("rust-markup5ever" ,rust-markup5ever-0.10)
+        ("rust-tendril" ,rust-tendril-0.4)
+        ("rust-xml5ever" ,rust-xml5ever-0.16))
+       #:cargo-development-inputs
+       (("rust-rustc-test" ,rust-rustc-test-0.3)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-match-cfg-0.1
   (package
     (name "rust-match-cfg")
@@ -35175,8 +37855,69 @@ file IO.")
        (sha256
         (base32 "0nmymqy9q62x577ydja0ysfyir7h5qa0n5fwcnvchfhhlsi0rdyr"))))))
 
+(define-public rust-memo-map-0.3
+  (package
+    (name "rust-memo-map")
+    (version "0.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "memo-map" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0h0c80ilf74872nfn1dx65zdj60cxcczrbks113l9kk0jp07dhmf"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/mitsuhiko/memo-map")
+    (synopsis "Synchronized map for memoization")
+    (description "This package provides a crate implementing a synchronized map
+for memoization.")
+    (license license:asl2.0)))
+
+(define-public rust-memoffset-0.9
+  (package
+    (name "rust-memoffset")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "memoffset" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0v20ihhdzkfw1jx00a7zjpk2dcp5qjq6lz302nyqamd9c4f4nqss"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+    (home-page "https://github.com/Gilnaa/memoffset")
+    (synopsis "C-like offset_of functionality for Rust structs")
+    (description
+     "This package provides C-like @code{offset_of} functionality
+for Rust structs.")
+    (license license:expat)))
+
+(define-public rust-memoffset-0.8
+  (package
+    (inherit rust-memoffset-0.9)
+    (name "rust-memoffset")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "memoffset" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qcdic88dhgw76pafgndpz04pig8il4advq978mxdxdwrydp276n"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
+
 (define-public rust-memoffset-0.7
   (package
+    (inherit rust-memoffset-0.8)
     (name "rust-memoffset")
     (version "0.7.1")
     (source
@@ -35186,18 +37927,11 @@ file IO.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1x2zv8hv9c9bvgmhsjvr9bymqwyxvgbca12cm8xkhpyy5k1r7s2x"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-1))
        #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))
-    (home-page "https://github.com/Gilnaa/memoffset")
-    (synopsis "C-like offset_of functionality for Rust structs")
-    (description
-     "This package provides C-like @code{offset_of} functionality
-for Rust structs.")
-    (license license:expat)))
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
 
 (define-public rust-memoffset-0.6
   (package
@@ -35279,6 +38013,25 @@ for Rust structs.")
        (sha256
         (base32 "13ir50j549gdz94pds1i7ljnk14d66q5x91s11hncm1pih7jif8c"))))))
 
+(define-public rust-memuse-0.2
+  (package
+    (name "rust-memuse")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "memuse" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06kgsfv8fnhqbwnq3q841ndfq5wkanz5jpykldpfmrdc6na8ci91"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-nonempty" ,rust-nonempty-0.7))))
+    (home-page "https://github.com/str4d/memuse")
+    (synopsis "Traits for measuring dynamic memory usage of types")
+    (description "Traits for measuring dynamic memory usage of types.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-merge-derive-0.1
   (package
     (name "rust-merge-derive")
@@ -35349,50 +38102,6 @@ proofs.  It automates the Fiat-Shamir transform, so that by using Merlin,
 non-interactive protocols can be implemented as if they were interactive.")
     (license license:expat)))
 
-(define-public rust-mesalink-1
-  (package
-    (name "rust-mesalink")
-    (version "1.1.0-cratesio")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "mesalink" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "02lp27j5vxdc95bf5g983yr660cm6vljikk0yqry4j6cjvfnyq85"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-test-flags
-       '("--release"
-         "--"
-         "--skip=libssl::ssl::tests::early_data_to_mesalink_io"
-         "--skip=libssl::ssl::tests::get_ssl_fd"
-         "--skip=libssl::ssl::tests::ssl_on_nonblocking_socket")
-       #:cargo-inputs
-       (("rust-base64" ,rust-base64-0.10)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-enum-to-u8-slice-derive" ,rust-enum-to-u8-slice-derive-0.1)
-        ("rust-env-logger" ,rust-env-logger-0.6)
-        ("rust-jemallocator" ,rust-jemallocator-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-parking-lot" ,rust-parking-lot-0.9)
-        ("rust-ring" ,rust-ring-0.16)
-        ("rust-rustls" ,rust-rustls-0.16)
-        ("rust-sct" ,rust-sct-0.6)
-        ("rust-untrusted" ,rust-untrusted-0.7)
-        ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-webpki" ,rust-webpki-0.21)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.17))
-       #:cargo-development-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1))))
-    (home-page "https://github.com/mesalock-linux/mesalink")
-    (synopsis "Memory-safe and OpenSSL-compatible TLS library")
-    (description
-     "MesaLink is a memory-safe and OpenSSL-compatible TLS library
-based on Rustls and Ring.")
-    (license license:bsd-3)))
-
 (define-public rust-metadeps-1
   (package
     (name "rust-metadeps")
@@ -35832,6 +38541,58 @@ file's MIME type by its extension.")
     ;; No copyright headers in the source code.  LICENSE indicates gpl3.
     (license license:gpl3)))
 
+(define-public rust-minijinja-0.34
+  (package
+    (name "rust-minijinja")
+    (version "0.34.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "minijinja" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1gf14x3rvixw1pqwbdj95nx5wxcrkkdpmg2k7spxdjkxm35r3akm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aho-corasick" ,rust-aho-corasick-1)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-memo-map" ,rust-memo-map-0.3)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-self-cell" ,rust-self-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-unicode-ident" ,rust-unicode-ident-1)
+        ("rust-v-htmlescape" ,rust-v-htmlescape-0.15))
+       #:cargo-development-inputs
+       (("rust-insta" ,rust-insta-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-similar-asserts" ,rust-similar-asserts-1))))
+    (home-page "https://github.com/mitsuhiko/minijinja")
+    (synopsis "Template engine for Rust")
+    (description "This package provides a template engine for Rust.")
+    (license license:asl2.0)))
+
+(define-public rust-minimad-0.9
+  (package
+    (name "rust-minimad")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "minimad" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d2qnjwdrb3ngb0sayzj2b56pjb75ajqiaz4iw7zfs4537q3jxi7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/Canop/minimad")
+    (synopsis "Light markdown parser")
+    (description "Light markdown parser.")
+    (license license:expat)))
+
 (define-public rust-minimal-lexical-0.2
   (package
     (name "rust-minimal-lexical")
@@ -35933,31 +38694,6 @@ streaming API for miniz_oxide.")
     (arguments
      `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))))
 
-(define-public rust-miniz-sys-0.1
-  (package
-    (name "rust-miniz-sys")
-    (version "0.1.12")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "miniz-sys" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "00l2r4anm8g35x0js2zfdnwfbrih9m43vphdpb77c5ga3kjkm7hy"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ;; Build dependencies:
-        ("rust-cc" ,rust-cc-1))))
-    (home-page "https://github.com/alexcrichton/flate2-rs")
-    (synopsis "Bindings to the miniz.c library")
-    (description
-     "This package provides bindings to the @code{miniz.c} library.")
-    (license (list license:asl2.0
-                   license:expat))))
-
 (define-public rust-mint-0.5
   (package
     (name "rust-mint")
@@ -35984,21 +38720,21 @@ streaming API for miniz_oxide.")
 (define-public rust-mio-0.8
   (package
     (name "rust-mio")
-    (version "0.8.5")
+    (version "0.8.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "mio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1pjqn6jvmqkgyykf2z5danqka1rfs3il7w4d0qin8yi062y35mz5"))))
+        (base32 "1ygx5chq81k3vk2bx722xwcwf2qydmm337jsnijgzd7mxx39m7av"))))
     (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.42))
+             ("rust-windows-sys" ,rust-windows-sys-0.45))
            #:cargo-development-inputs
            `(("rust-env-logger" ,rust-env-logger-0.8)
              ("rust-rand" ,rust-rand-0.8))))
@@ -36242,7 +38978,7 @@ IOCP and Async I/O abstractions.")
   (package
     (inherit rust-miow-0.3)
     (name "rust-miow")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
       (origin
         (method url-fetch)
@@ -36250,7 +38986,7 @@ IOCP and Async I/O abstractions.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "06g9b8sqlh5gxakwqq4rrib07afwanfnxgxajrldwcgk3hxjy7wc"))))
+          "0kcl8rnv0bhiarcdakik670w8fnxzlxhi1ys7152sck68510in7b"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -36366,32 +39102,6 @@ IOCP and Async I/O abstractions.")
 select the mock struct at compile time.  Used with the Mockall crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-model-0.1
-  (package
-    (name "rust-model")
-    (version "0.1.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "model" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0kx6hy5i1fn2qs4x6hpng9jixpm68g83vm24z8bqqscr317yinb6"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-permutohedron" ,rust-permutohedron-0.2)
-        ("rust-proptest" ,rust-proptest-0.9))))
-    (home-page "https://github.com/spacejam/model")
-    (synopsis "Model-based testing for data structures")
-    (description
-     "Model-based testing for data structures, with linearizability
-checking.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-modifier-0.1
   (package
     (name "rust-modifier")
@@ -36609,7 +39319,7 @@ library.")
 (define-public rust-mysqlclient-sys-0.2
   (package
     (name "rust-mysqlclient-sys")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
@@ -36617,7 +39327,7 @@ library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11ggkcbfnmp81amc9g0j98dk17fnmqcp9smgm9w401286kckg5ky"))))
+         "16wndr59cbpc2wgli45zfgi0hi837pbrsh1aqh2k0ads50akh6zn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -37274,19 +39984,20 @@ library.")
 (define-public rust-ndarray-0.15
   (package
     (name "rust-ndarray")
-    (version "0.15.3")
+    (version "0.15.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ndarray" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1jd845r1ihybq02iz85b1xcnvxr7l2qs06dabgk278v086b59s08"))))
+        (base32 "0cpsm28hyk8qfjs4g9649dprv3hm53z12qqwyyjqbi3yjr72vcdd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-approx" ,rust-approx-0.4)
+        ("rust-approx" ,rust-approx-0.5)
         ("rust-cblas-sys" ,rust-cblas-sys-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-matrixmultiply" ,rust-matrixmultiply-0.3)
@@ -37300,7 +40011,7 @@ library.")
        (("rust-approx" ,rust-approx-0.4)
         ("rust-defmac" ,rust-defmac-0.2)
         ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+        ("rust-quickcheck" ,rust-quickcheck-1))))
     (home-page "https://github.com/rust-ndarray/ndarray")
     (synopsis "N-dimensional container for general elements and for numerics")
     (description "@code{ndarray} implements an n-dimensional container for
@@ -37719,7 +40430,7 @@ in Rust that can compile to WebAssembly.")
 (define-public rust-net2-0.2
   (package
     (name "rust-net2")
-    (version "0.2.33")
+    (version "0.2.38")
     (source
       (origin
         (method url-fetch)
@@ -37727,11 +40438,10 @@ in Rust that can compile to WebAssembly.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "126g3fgfxp06zimc1l9iyxnn9cif1hjsg7sd81nlls5nnyghsma2"))))
+          "0cf66y4415qc1i9sr0rrn9my5f1pgxzf3xllwsr309fdrycxzl3l"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-winapi" ,rust-winapi-0.3))))
@@ -37746,29 +40456,26 @@ types as proposed in RFC 1158.")
 (define-public rust-nettle-7
   (package
     (name "rust-nettle")
-    (version "7.0.3")
+    (version "7.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nettle" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qlsq3szglkw7s089h5qh9xa787qyvkdj5cgxm4qj30fazwr0hx0"))))
+        (base32 "0dk36l90p79c3xgmrzp8489h8dfaal0jzaid1n8n3cg7xbrwrzdr"))))
     (build-system cargo-build-system)
     (native-inputs
      (list pkg-config))
     (inputs
      (list clang gmp nettle))
     (arguments
-     `(#:skip-build? #t ;; provides nothing, has no tests
-       #:cargo-inputs
-       (("rust-getrandom" ,rust-getrandom-0.1)
+     `(#:cargo-inputs
+       (("rust-getrandom" ,rust-getrandom-0.2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-nettle-sys" ,rust-nettle-sys-2)
-        ("rust-thiserror" ,rust-thiserror-1))
-       #:cargo-development-inputs
-       (("rust-bindgen" ,rust-bindgen-0.51)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-typenum" ,rust-typenum-1))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-rs")
   (synopsis "Rust bindings for the Nettle cryptographic library")
   (description "This package provides Rust bindings for the Nettle
@@ -37787,20 +40494,25 @@ cryptographic library.")
         (string-append (package-name rust-nettle-7) "-" version ".tar.gz"))
        (sha256
         (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4"))
-       (patches (search-patches "rust-nettle-disable-vendor.patch"))))))
+       (patches (search-patches "rust-nettle-disable-vendor.patch"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-failure" ,rust-failure-0.1)
+        ("rust-getrandom" ,rust-getrandom-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-nettle-sys" ,rust-nettle-sys-2))))))
 
 (define-public rust-nettle-sys-2
   (package
     (name "rust-nettle-sys")
-    (version "2.0.4")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nettle-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1yq1w6dlcmg89x529i7s20j29afdhgim7qnsa7978fszzwrr6qmq"))
-       (patches (search-patches "rust-nettle-sys-disable-vendor.patch"))))
+        (base32 "0wwa7pmxdz7yl9jwybml2kmrj3i87jcn0h0cdc5xl0lhgcs1rs5m"))))
     (build-system cargo-build-system)
     (native-inputs
      (list clang pkg-config))
@@ -37808,8 +40520,12 @@ cryptographic library.")
      (list nettle))
     (arguments
      `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.51)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+       (("rust-bindgen" ,rust-bindgen-0.63)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
     (home-page "https://gitlab.com/sequoia-pgp/nettle-sys")
     (synopsis "Low-level Rust bindings for the Nettle cryptographic library")
     (description "This package provides low-level Rust bindings for the Nettle
@@ -38215,24 +40931,36 @@ while still providing platform specific APIs.")
   (package
     (inherit rust-nix-0.23)
     (name "rust-nix")
-    (version "0.22.1")
+    (version "0.22.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nix" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cahgzxhdwsaa8491n6cn8gadgfsxk5razyfw4xr3k34f5n5smg7"))))
+        (base32 "1bsgc8vjq07a1wg9vz819bva3dvn58an4r87h80dxrfqkqanz4g4"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  ((">= 1\\.1\\.0, < 1\\.3\\.0") ">= 1.1.0"))))))
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; Tests hang forever.
        #:cargo-inputs
-       (("rust-bitflags" ,rust-bitflags-1.2)
+       (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cc" ,rust-cc-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-rand" ,rust-rand-0.8)
+        ("rust-semver" ,rust-semver-1)
+        ("rust-sysctl" ,rust-sysctl-0.1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
-     (list rust-bitflags-1.2 rust-cc-1 rust-cfg-if-1 rust-libc-0.2
+     (list rust-bitflags-1 rust-cc-1 rust-cfg-if-1 rust-libc-0.2
            rust-memoffset-0.6))))
 
 (define-public rust-nix-0.21
@@ -38493,6 +41221,31 @@ environment variable is set.")
 prove a function can't ever panic.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-no-std-compat-0.4
+  (package
+    (name "rust-no-std-compat")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "no-std-compat" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "132vrf710zsdp40yp1z3kgc2ss8pi0z4gmihsz3y7hl4dpd56f5r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.8)
+        ("rust-spin" ,rust-spin-0.5))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://gitlab.com/jD91mZM2/no-std-compat")
+    (synopsis "No_std compatibility layer")
+    (description
+     "This package provides a @code{#![no_std]} compatibility layer that will
+make porting your crate to no_std *easy*.")
+    (license license:expat)))
+
 (define-public rust-no-std-net-0.5
   (package
     (name "rust-no-std-net")
@@ -38808,6 +41561,26 @@ combinators library (fork for proposals for v8)")
     (description "This package provides custom derive nom parsers from structs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nonempty-0.7
+  (package
+    (name "rust-nonempty")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "nonempty" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xynyd2mgjfc4lcishd6xky7cmkxgy4d7rawxfx6wpiq37kr3rg9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/cloudhead/nonempty")
+    (synopsis "Correct by construction non-empty vector")
+    (description "Correct by construction non-empty vector.")
+    (license license:expat)))
+
 (define-public rust-noop-proc-macro-0.3
   (package
     (name "rust-noop-proc-macro")
@@ -38865,8 +41638,37 @@ with all line endings.")
         (base32
          "1a1knz9j1w5a1pl2q6whmjphm3z6p64r5njnam7syp5rx8wil2if"))))))
 
+(define-public rust-normpath-1
+  (package
+    (name "rust-normpath")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "normpath" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xcpznc827hwn3rjrckyv574ddmz68r0gpvfbmpih9ijd45ccq7c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-print-bytes" ,rust-print-bytes-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-uniquote" ,rust-uniquote-3)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
+    (home-page "https://github.com/dylni/normpath")
+    (synopsis "More reliable path manipulation")
+    (description "This package provides more reliable path manipulation in rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-normpath-0.3
   (package
+    (inherit rust-normpath-1)
     (name "rust-normpath")
     (version "0.3.2")
     (source (origin
@@ -38875,7 +41677,6 @@ with all line endings.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32 "1bxwffmqqhic8rfb711009w9hsprrpm5jca2q0y8igqgrglzbah4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-print-bytes" ,rust-print-bytes-0.4)
@@ -38885,11 +41686,7 @@ with all line endings.")
        (("rust-bincode" ,rust-bincode-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-rustversion" ,rust-rustversion-1)
-        ("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://github.com/dylni/normpath")
-    (synopsis "More reliable path manipulation")
-    (description "This package provides more reliable path manipulation in rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-tempfile" ,rust-tempfile-3))))))
 
 (define-public rust-notify-5
   (package
@@ -38997,8 +41794,28 @@ notification library.")
      "This crate provides a Rust interface and bindings for Notmuch.")
     (license license:gpl3+)))
 
+(define-public rust-ntapi-0.4
+  (package
+    (name "rust-ntapi")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntapi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1r38zhbwdvkis2mzs6671cm1p6djgsl49i7bwxzrvhwicdf8k8z8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/MSxDOS/ntapi")
+    (synopsis "FFI bindings for Native API")
+    (description "FFI bindings for Native API")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ntapi-0.3
   (package
+    (inherit rust-ntapi-0.4)
     (name "rust-ntapi")
     (version "0.3.6")
     (source
@@ -39008,17 +41825,36 @@ notification library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0i5daj9sr8wyi5jkpwpybln2jqpn59z0mqfc0dpdidipwh1bjsrz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-winapi" ,rust-winapi-0.3))))))
+
+(define-public rust-ntest-0.9
+  (package
+    (name "rust-ntest")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04pmi0y7rzpkngv7lqw48c2831bn15lg8nkgj9z30i9xnz9cd3ns"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "")
-    (synopsis "FFI bindings for Native API")
-    (description "FFI bindings for Native API")
-    (license (list license:asl2.0 license:expat))))
+       (("rust-ntest-test-cases" ,rust-ntest-test-cases-0.9)
+        ("rust-ntest-timeout" ,rust-ntest-timeout-0.9))
+       #:cargo-development-inputs (("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/becheran/ntest")
+    (synopsis "Testing framework for Rust")
+    (description "This package provides a testing framework for Rust which
+enhances the built-in library with some useful features.")
+    (license license:expat)))
 
 (define-public rust-ntest-0.8
   (package
+    (inherit rust-ntest-0.9)
     (name "rust-ntest")
     (version "0.8.1")
     (source
@@ -39029,31 +41865,25 @@ notification library.")
        (sha256
         (base32
          "1yyih3b0bcr9gj11m9xj330as2sjihblkmb2bmv10lp38q5m0rg8"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.8)
         ("rust-ntest-test-cases" ,rust-ntest-test-cases-0.8)
         ("rust-ntest-timeout" ,rust-ntest-timeout-0.8))
        #:cargo-development-inputs
-       (("rust-tokio" ,rust-tokio-1))))
-    (home-page "https://github.com/becheran/ntest")
-    (synopsis "Testing framework for Rust")
-    (description "This package provides a testing framework for Rust which
-enhances the built-in library with some useful features.")
-    (license license:expat)))
+       (("rust-tokio" ,rust-tokio-1))))))
 
-(define-public rust-ntest-test-cases-0.8
+(define-public rust-ntest-test-cases-0.9
   (package
     (name "rust-ntest-test-cases")
-    (version "0.8.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ntest_test_cases" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "03ip2dpi7fd2wyz99yd17w302nci3b05slbl3rr6dfs2683ayz3g"))))
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest-test-cases" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08ifw9zhm1l93wh24k8zrk25sj3k9vpw29sfwq4lsvwwf6z36zdy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -39065,41 +41895,39 @@ enhances the built-in library with some useful features.")
     (description "This package provides test cases for ntest framework.")
     (license license:expat)))
 
-(define-public rust-ntest-test-cases-0.3
+(define-public rust-ntest-test-cases-0.8
   (package
-    (inherit rust-ntest-test-cases-0.8)
+    (inherit rust-ntest-test-cases-0.9)
     (name "rust-ntest-test-cases")
-    (version "0.3.4")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ntest_test_cases" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0b67m368599b2zgwx19psqz6n3m9m5532h1257x6vz1pym3gd2na"))))
+        (base32 "03ip2dpi7fd2wyz99yd17w302nci3b05slbl3rr6dfs2683ayz3g"))))
     (arguments
      `(#:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
-(define-public rust-ntest-timeout-0.8
+(define-public rust-ntest-timeout-0.9
   (package
     (name "rust-ntest-timeout")
-    (version "0.8.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "ntest_timeout" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "01vcdlz9xj471z5knk2qynm7adz3p614glf6n0pgn161qynym9mw"))))
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntest-timeout" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1948a5ps329acg8fy2c2dyjgc8f96l0gin271cpl0yjq420lcsq6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.8)
-        ("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+       (("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))))
@@ -39109,25 +41937,25 @@ enhances the built-in library with some useful features.")
 framework.")
     (license license:expat)))
 
-(define-public rust-ntest-timeout-0.3
+(define-public rust-ntest-timeout-0.8
   (package
-    (inherit rust-ntest-timeout-0.8)
+    (inherit rust-ntest-timeout-0.9)
     (name "rust-ntest-timeout")
-    (version "0.3.3")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ntest_timeout" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0klryn3rgjxnq3cv6j8bwcsr0b7zw3x216h63144v22aja18p0g0"))))
+        (base32 "01vcdlz9xj471z5knk2qynm7adz3p614glf6n0pgn161qynym9mw"))))
     (arguments
      `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
+       (("rust-ntest-proc-macro-helper" ,rust-ntest-proc-macro-helper-0.8)
+        ("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)
-        ("rust-timebomb" ,rust-timebomb-0.1))))))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-ntest-proc-macro-helper-0.8
   (package
@@ -39146,6 +41974,31 @@ framework.")
 macros used in ntest.")
     (license license:expat)))
 
+(define-public rust-ntex-bytes-0.1
+  (package
+    (name "rust-ntex-bytes")
+    (version "0.1.19")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ntex-bytes" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0kpj93rkm9xknhkk31n21d7dwdx0y4jwc1y3nvnh1kx2l8p7razm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Cut off the dependency tree of ntex here.
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-bytes" ,rust-bytes-1)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-simdutf8" ,rust-simdutf8-0.1))))
+    (home-page "https://github.com/ntex-rs")
+    (synopsis "Types and traits for working with bytes (bytes crate fork)")
+    (description "Types and traits for working with bytes (bytes crate fork)")
+    (license license:expat)))
+
 (define-public rust-nu-ansi-term-0.46
   (package
     (name "rust-nu-ansi-term")
@@ -39372,8 +42225,46 @@ more.")
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.4))))))
 
+(define-public rust-num-bigint-dig-0.8
+  (package
+    (name "rust-num-bigint-dig")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "num-bigint-dig" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01b9lnqkjgwr1fv8jlw8w8y8pf70h2h9panq969r0pxw793ck693"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libm" ,rust-libm-0.2)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-rand-isaac" ,rust-rand-isaac-0.3)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-serde-test" ,rust-serde-test-1))))
+    (home-page "https://github.com/dignifiedquire/num-bigint")
+    (synopsis "Big integer implementation for Rust")
+    (description "This package provides a big integer implementation for
+Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-bigint-dig-0.7
   (package
+    (inherit rust-num-bigint-dig-0.8)
     (name "rust-num-bigint-dig")
     (version "0.7.0")
     (source
@@ -39383,7 +42274,6 @@ more.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1004mmipvc7pvaf3kf13i1nqh3vxf789bj72d8wl51y185aywis5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-autocfg" ,rust-autocfg-0.1)
@@ -39402,12 +42292,7 @@ more.")
         ("rust-rand-chacha" ,rust-rand-chacha-0.3)
         ("rust-rand-isaac" ,rust-rand-isaac-0.3)
         ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
-        ("rust-serde-test" ,rust-serde-test-1))))
-    (home-page "https://github.com/dignifiedquire/num-bigint")
-    (synopsis "Big integer implementation for Rust")
-    (description "This package provides a big integer implementation for
-Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-test" ,rust-serde-test-1))))))
 
 (define-public rust-num-complex-0.4
   (package
@@ -39671,29 +42556,33 @@ primitives and enums easier.")
 (define-public rust-num-format-0.4
   (package
     (name "rust-num-format")
-    (version "0.4.0")
+    (version "0.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-format" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0r94i9lhr15hk32494v9my31r0829w29yyp7iql98a1cf9wl3zms"))))
+        (base32 "1hvjmib117jspyixfr76f900mhz5zfn71dnyqg9iywb339vxjlm6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-arrayvec" ,rust-arrayvec-0.4)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
+     `(#:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
-        ("rust-itoa" ,rust-itoa-0.4)
+        ("rust-itoa" ,rust-itoa-1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-num-bigint" ,rust-num-bigint-0.2)
-        ("rust-num-format-windows" ,rust-num-format-windows-0.3)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-format-windows" ,rust-num-format-windows-0.4)
         ("rust-serde" ,rust-serde-1)
-        ("rust-widestring" ,rust-widestring-0.4)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-widestring" ,rust-widestring-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://github.com/bcmyers/num-format")
     (synopsis "Produce string-representations of numbers")
     (description
@@ -39701,22 +42590,20 @@ primitives and enums easier.")
 of numbers, formatted according to international standards.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-num-format-windows-0.3
+(define-public rust-num-format-windows-0.4
   (package
     (name "rust-num-format-windows")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "num-format-windows" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1sy5jxrbhv6s28c51ibzi34s8qcjm8b21nf7biray7v1qi89h5sf"))))
+    (version "0.4.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "num-format-windows" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1yic2lcv3gngyshzmnqjhaq1z736j8jgghhn3n8yph95fbv0f7lv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.47))))
+     `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.63))))
     (home-page "https://github.com/bcmyers/num-format/num-format-windows")
     (synopsis "Helper crate for @code{num-format}")
     (description
@@ -40273,25 +43160,28 @@ representation and parsing.")
     (description "This package provides procedural macros for the objc2 project.")
     (license license:expat)))
 
-(define-public rust-object-0.29
+(define-public rust-object-0.30
   (package
     (name "rust-object")
-    (version "0.29.0")
+    (version "0.30.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "object" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0lzblxwxcih7j4z2cfx9094caax97hlfm9n0y5hlavda6cn8n591"))))
+                "0fdl7qjsz1j9kl3j7f4656fswzrqpyj2kgaizhknmjrx7mfjd1pa"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:cargo-test-flags
+       '("--release" "--"
+         ;; Not all files are included
+         "--skip=read::coff::coff_extended_relocations")
        #:cargo-inputs
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-flate2" ,rust-flate2-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-hashbrown" ,rust-hashbrown-0.13)
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
@@ -40304,6 +43194,31 @@ representation and parsing.")
 file formats.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-object-0.29
+  (package
+    (inherit rust-object-0.30)
+    (name "rust-object")
+    (version "0.29.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "object" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0lzblxwxcih7j4z2cfx9094caax97hlfm9n0y5hlavda6cn8n591"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-wasmparser" ,rust-wasmparser-0.57))))))
+
 (define-public rust-object-0.28
   (package
     (inherit rust-object-0.29)
@@ -40368,37 +43283,6 @@ file formats.")
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
         ("rust-wasmparser" ,rust-wasmparser-0.57))))))
 
-(define-public rust-object-0.24
-  (package
-    (inherit rust-object-0.28)
-    (name "rust-object")
-    (version "0.24.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "object" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0w21hp41mixzaavsdpjylbylh44z2b5d2wbnf5ipkvkjq38ksnqs"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-compiler-builtins"
-         ,rust-compiler-builtins-0.1)
-        ("rust-crc32fast" ,rust-crc32fast-1)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-rustc-std-workspace-alloc"
-         ,rust-rustc-std-workspace-alloc-1)
-        ("rust-rustc-std-workspace-core"
-         ,rust-rustc-std-workspace-core-1)
-        ("rust-wasmparser" ,rust-wasmparser-0.57))
-       #:cargo-development-inputs
-       (("rust-memmap" ,rust-memmap-0.7))))))
-
 (define-public rust-odds-0.3
   (package
     (name "rust-odds")
@@ -40457,24 +43341,20 @@ Things in odds may move to more appropriate crates if we find them.")
         ("rust-memchr" ,rust-memchr-2)
         ("rust-quickcheck" ,rust-quickcheck-0.4))))))
 
-(define-public rust-oid-registry-0.2
+(define-public rust-oid-registry-0.6
   (package
     (name "rust-oid-registry")
-    (version "0.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "oid-registry" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "058qip5j5y0i95ckmw67mp73372rq16ci0lcczyq9irv76r4qmgy"))))
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "oid-registry" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1zwvjp3ad6gzn8g8w2hcn9a2xdap0lkzckhlnwp6rabbzdpz7vcv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-der-parser" ,rust-der-parser-6))))
+     `(#:cargo-inputs (("rust-asn1-rs" ,rust-asn1-rs-0.5))))
     (home-page "https://github.com/rusticata/oid-registry")
     (synopsis "Object Identifier (OID) database")
     (description "This crate is a helper crate, containing a database of
@@ -40482,6 +43362,22 @@ OID objects.  These objects are intended for use when manipulating ASN.1
 grammars and BER/DER encodings, for example.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-oid-registry-0.2
+  (package
+    (inherit rust-oid-registry-0.6)
+    (name "rust-oid-registry")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "oid-registry" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "058qip5j5y0i95ckmw67mp73372rq16ci0lcczyq9irv76r4qmgy"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-der-parser" ,rust-der-parser-6))))))
+
 (define-public rust-onig-6
   (package
     (name "rust-onig")
@@ -40538,7 +43434,7 @@ other crates to create safe wrappers around Oniguruma.")
 (define-public rust-once-cell-1
   (package
     (name "rust-once-cell")
-    (version "1.17.1")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
@@ -40546,7 +43442,7 @@ other crates to create safe wrappers around Oniguruma.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lrsy9c5ikf2iwxr4iwgd3rlq9mg8alh0np1g8abnvp1k4151rdp"))))
+         "0vapcd5ambwck95wyz3ymlim35jirgnqn9a0qmi19msymv95v2yx"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -40555,8 +43451,6 @@ other crates to create safe wrappers around Oniguruma.")
         ("rust-parking-lot-core" ,rust-parking-lot-core-0.9))
        #:cargo-development-inputs
        (("rust-critical-section" ,rust-critical-section-1)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
-        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-regex" ,rust-regex-1))))
     (home-page "https://github.com/matklad/once_cell")
     (synopsis "Single assignment cells and lazy values")
@@ -40688,6 +43582,35 @@ the system.")
 the default program configured on the system.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-openpgp-cert-d-0.1
+  (package
+    (name "rust-openpgp-cert-d")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "openpgp-cert-d" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "10sqs3k1cd2yrnbyqrpq0qfslzg3qq7jalspkkqxm9828lp2manc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-dirs" ,rust-dirs-4)
+        ("rust-fd-lock" ,rust-fd-lock-3)
+        ("rust-sha1collisiondetection" ,rust-sha1collisiondetection-0.2)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-thiserror" ,rust-thiserror-1))
+       #:cargo-development-inputs
+       (("rust-assert-fs" ,rust-assert-fs-1)
+        ("rust-predicates" ,rust-predicates-2))))
+    (home-page "https://gitlab.com/sequoia-pgp/pgp-cert-d")
+    (synopsis "Shared OpenPGP Certificate Directory")
+    (description "Shared OpenPGP Certificate Directory")
+    (license license:expat)))
+
 (define-public rust-openssl-macros-0.1
   (package
     (name "rust-openssl-macros")
@@ -40715,14 +43638,14 @@ crate.")
 (define-public rust-openssl-0.10
   (package
     (name "rust-openssl")
-    (version "0.10.49")
+    (version "0.10.52")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "openssl" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0cssygqbgdim10y7qrgz0rj5k839jqiv2n9ccw1lx8ipp1m10bsd"))))
+                "0mldyz9w6d5bf3004m7kyjry7944m0pkkifzbywgg06z0935gf01"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -40825,21 +43748,20 @@ system for OpenSSL.")
 (define-public rust-openssl-sys-0.9
   (package
     (name "rust-openssl-sys")
-    (version "0.9.84")
+    (version "0.9.87")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "openssl-sys" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1ym0vcfnyp8bf8lidz8w0yx0n6pva37nvdww0c22kn62kp7fl81s"))
+         (base32 "0znc0q7a2gi2pmkscv0d6wzpfd64mgmy3w4lmrvrv05jcj9ga5wf"))
         (patches (search-patches "rust-openssl-sys-no-vendor.patch"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ;; Build dependencies:
-        ("rust-autocfg" ,rust-autocfg-1)
         ("rust-bindgen" ,rust-bindgen-0.64)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
@@ -40941,6 +43863,23 @@ system for OpenSSL.")
     (description "This package provides an OPML parser for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-option-ext-0.2
+  (package
+    (name "rust-option-ext")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "option-ext" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zbf7cx8ib99frnlanpyikm1bx8qn8x602sw1n7bg6p9x94lyx04"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/soc/option-ext")
+    (synopsis "Extends `Option` with additional operations")
+    (description "Extends `Option` with additional operations")
+    (license license:mpl2.0)))
+
 (define-public rust-option-set-0.1
   (package
     (name "rust-option-set")
@@ -41109,6 +44048,31 @@ PartialOrd types, like floats.")
 insertion order across all keys and values.")
     (license license:expat)))
 
+(define-public rust-ordered-stream-0.1
+  (package
+    (name "rust-ordered-stream")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ordered-stream" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "140c0h0ap30mcfhdk2xy1q9iqyb450wh11dglshh2y6vmjyj82in"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-pin-project-lite" ,rust-pin-project-lite-0.2))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3))))
+    (home-page "https://github.com/danieldg/ordered-stream")
+    (synopsis "Streams that are ordered relative to external events")
+    (description "This package provides streams that are ordered relative to
+external events in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ordermap-0.3
   (package
     (name "rust-ordermap")
@@ -41142,6 +44106,40 @@ iteration.  NOTE: This crate was renamed to @code{indexmap}.  Please use it
 under its new name.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-orion-0.17
+  (package
+    (name "rust-orion")
+    (version "0.17.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "orion" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ri0b0vyd9vqwlzlcv0q4i7r9pga23q7nnnvd5z4zycjc9v4mryb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ct-codecs" ,rust-ct-codecs-1)
+        ("rust-fiat-crypto" ,rust-fiat-crypto-0.1)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/orion-rs/orion")
+    (synopsis "Pure-Rust crypto")
+    (description
+     "Orion is a cryptography library written in pure Rust.  It aims to provide
+easy and usable crypto while trying to minimize the use of unsafe code.")
+    (license license:expat)))
+
 (define-public rust-os-info-3
   (package
     (name "rust-os-info")
@@ -41171,19 +44169,19 @@ under its new name.")
 (define-public rust-os-pipe-1
   (package
     (name "rust-os-pipe")
-    (version "1.1.2")
+    (version "1.1.4")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "os-pipe" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0fa640v9bi1qcq3jgq1p76lphi4fwj4a9msrmfrq87n1z3qm58n6"))))
+         (base32 "0xy1igr1jfd9ijhr4sccvl8mzp0jic7njdmr56lsk3220ym5ks0a"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+        ("rust-windows-sys" ,rust-windows-sys-0.48))))
     (native-inputs
      (list python-minimal-wrapper))     ; For the tests.
     (home-page "https://github.com/oconnor663/os_pipe.rs")
@@ -41249,27 +44247,27 @@ under its new name.")
 (define-public rust-os-str-bytes-6
   (package
     (name "rust-os-str-bytes")
-    (version "6.0.0")
+    (version "6.5.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "os-str-bytes" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0r5z5xds2wzzqlqjaw96dpjsz5nqyzc1rflm4mh09aa32qyl88lf"))))
+         (base32 "0rz2711gl575ng6vm9a97q42wqnf4wk1165wn221jb8gn17z9vff"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-memchr" ,rust-memchr-2)
-        ("rust-print-bytes" ,rust-print-bytes-0.5)
+        ("rust-print-bytes" ,rust-print-bytes-1)
         ("rust-uniquote" ,rust-uniquote-3))
        #:cargo-development-inputs
-       (("rust-getrandom" ,rust-getrandom-0.2))))
+       (("rust-fastrand" ,rust-fastrand-1))))
     (home-page "https://github.com/dylni/os_str_bytes")
     (synopsis
      "Traits for converting between byte sequences and platform-native strings")
     (description
-     "This package provides a traits for converting between byte sequences and
+     "This package provides a trait for converting between byte sequences and
 platform-native strings.")
     (license (list license:expat license:asl2.0))))
 
@@ -41312,18 +44310,17 @@ platform-native strings.")
 (define-public rust-ouroboros-macro-0.15
   (package
     (name "rust-ouroboros-macro")
-    (version "0.15.2")
+    (version "0.15.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ouroboros_macro" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "01lgyj5nxgr6r1l0m20pp4ilz3m14clsqg2j28hic2rrlsjafjkk"))))
+        (base32 "1dsn37vds4qpkzscmwaw17dv3m5m7a7j9qby8dsac19ks3622zaz"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-inflector" ,rust-inflector-0.11)
         ("rust-proc-macro-error" ,rust-proc-macro-error-1)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
@@ -41351,20 +44348,19 @@ platform-native strings.")
 (define-public rust-ouroboros-0.15
   (package
     (name "rust-ouroboros")
-    (version "0.15.2")
+    (version "0.15.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ouroboros" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qhd9cvc4hwdbr37da1jh0k0742slchixlxn4wxgc7g3l63yl9bl"))))
+        (base32 "1nvjra9dana2g6kxv3397qrgpyw6lknzya6lzs1s1llbap8qndg1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-aliasable" ,rust-aliasable-0.1)
-        ("rust-ouroboros-macro" ,rust-ouroboros-macro-0.15)
-        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+        ("rust-ouroboros-macro" ,rust-ouroboros-macro-0.15))))
     (home-page "https://github.com/joshua-maros/ouroboros")
     (synopsis "Self-referential struct generation")
     (description
@@ -41454,6 +44450,25 @@ platform-native strings.")
      "This package provides a ttf-parser plus support for owned data.")
     (license license:asl2.0)))
 
+(define-public rust-owo-colors-3
+  (package
+    (name "rust-owo-colors")
+    (version "3.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "owo-colors" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0943lynkwz1glq3w7m9anv73lnrhd8yabs09krbh49g1wz4lxp39"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-supports-color" ,rust-supports-color-2))))
+    (home-page "https://github.com/jam1garner/owo-colors")
+    (synopsis "Zero-allocation terminal colors that'll make people go owo")
+    (description "Zero-allocation terminal colors that'll make people go owo")
+    (license license:expat)))
+
 (define-public rust-owned-ttf-parser-0.6
   (package
     (name "rust-owned-ttf-parser")
@@ -41500,10 +44515,83 @@ owner with them.  This can sometimes be useful because Rust borrowing rules
 normally prevent moving a type that has been borrowed from.")
     (license license:expat)))
 
+(define-public rust-p256-0.13
+  (package
+    (name "rust-p256")
+    (version "0.13.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "p256" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jyd3c3k239ybs59ixpnl7dqkmm072fr1js8kh7ldx58bzc3m1n9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ecdsa" ,rust-ecdsa-0.16)
+        ("rust-elliptic-curve" ,rust-elliptic-curve-0.13)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-primeorder" ,rust-primeorder-0.13)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-ecdsa" ,rust-ecdsa-0.16)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-primeorder" ,rust-primeorder-0.13)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-rand-core" ,rust-rand-core-0.6))))
+    (home-page
+     "https://github.com/RustCrypto/elliptic-curves/tree/master/p256")
+    (synopsis "Pure Rust implementation of the NIST P-256")
+    (description
+     "This package provides a pure Rust implementation of the NIST P-256 (a.k.a.
+secp256r1, prime256v1) elliptic curve as defined in SP 800-186, with support for
+ECDH, ECDSA signing/verification, and general purpose curve arithmetic.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-p384-0.13
+  (package
+    (name "rust-p384")
+    (version "0.13.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "p384" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02cjlxdvxwvhmnckqnydqpvrwhf5raj67q300d66m7y6pi8nyy3h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ecdsa" ,rust-ecdsa-0.16)
+        ("rust-elliptic-curve" ,rust-elliptic-curve-0.13)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-primeorder" ,rust-primeorder-0.13)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-blobby" ,rust-blobby-0.3)
+        ("rust-criterion" ,rust-criterion-0.4)
+        ("rust-ecdsa" ,rust-ecdsa-0.16)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-rand-core" ,rust-rand-core-0.6))))
+    (home-page
+     "https://github.com/RustCrypto/elliptic-curves/tree/master/p384")
+    (synopsis "Pure Rust implementation of the NIST P-384 elliptic curve")
+    (description
+     "This package provides a pure Rust implementation of the NIST P-384 (a.k.a.
+secp384r1) elliptic curve as defined in SP 800-186 with support for ECDH, ECDSA
+signing/verification, and general purpose curve arithmetic support.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-packed-simd-0.3
   (package
     (name "rust-packed-simd")
-    (version "0.3.3")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
@@ -41512,19 +44600,25 @@ normally prevent moving a type that has been borrowed from.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0822wqf6kzw4ig9ykndg348w2bxkhs3x64brzsvdxh2a1pyajpm8"))))
+         "17xih19yr6izg1d065d2ax29axs7bmywnxa3qps0l6d3bd4nbybc"))
+       (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-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-core-arch" ,rust-core-arch-0.1)
+        ("rust-libm" ,rust-libm-0.1)
         ("rust-sleef-sys" ,rust-sleef-sys-0.1))
        #:cargo-development-inputs
-       (("rust-arrayvec" ,rust-arrayvec-0.4)
+       (("rust-arrayvec" ,rust-arrayvec-0.5)
         ("rust-paste" ,rust-paste-0.1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
-        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.2))))
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
     (home-page "https://github.com/rust-lang/packed_simd")
     (synopsis "Portable Packed SIMD vectors")
     (description "Portable Packed SIMD vectors.")
@@ -41679,25 +44773,6 @@ memory page size.")
      "This package pipes your Rust output through an external pager.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-pager-0.15
-  (package
-    (inherit rust-pager-0.16)
-    (name "rust-pager")
-    (version "0.15.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "pager" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0a35mg68s0p63ya2k5hsg620c4llkjw2fx1sfi0laz4pz8myv75n"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-errno" ,rust-errno-0.2)
-        ("rust-libc" ,rust-libc-0.2))))))
-
 (define-public rust-pam-sys-0.5
   (package
     (name "rust-pam-sys")
@@ -42101,14 +45176,14 @@ synchronization primitives.")
 (define-public rust-parking-lot-core-0.9
   (package
     (name "rust-parking-lot-core")
-    (version "0.9.6")
+    (version "0.9.7")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "parking_lot_core" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1grkf6s7zgl5blgw941g98z5csfjbrxavprspc8396aw9f0zh7ms"))))
+                "08cm5gg3a4jmr683x9dgih8vj66yn772kjvc8y1m0flyz6wwnsch"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -42119,7 +45194,7 @@ synchronization primitives.")
         ("rust-redox-syscall" ,rust-redox-syscall-0.2)
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-thread-id" ,rust-thread-id-4)
-        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+        ("rust-windows-sys" ,rust-windows-sys-0.45))))
     (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
@@ -42308,36 +45383,6 @@ synchronization primitives.")
      "This crate provides an Apache Parquet implementation in Rust.")
     (license license:asl2.0)))
 
-(define-public rust-parquet-4
-  (package
-    (inherit rust-parquet-5)
-    (name "rust-parquet")
-    (version "4.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "parquet" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0m3aqmaa79wka7adijl3zqkfjf1iwm2y58v0g16askv73pj48l16"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-arrow" ,rust-arrow-4)
-        ("rust-base64" ,rust-base64-0.13)
-        ("rust-brotli" ,rust-brotli-3)
-        ("rust-byteorder" ,rust-byteorder-1)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-lz4" ,rust-lz4-1)
-        ("rust-num-bigint" ,rust-num-bigint-0.4)
-        ("rust-parquet-format" ,rust-parquet-format-2)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-snap" ,rust-snap-1)
-        ("rust-thrift" ,rust-thrift-0.13)
-        ("rust-zstd" ,rust-zstd-0.8))))))
-
 (define-public rust-parquet-format-2
   (package
     (name "rust-parquet-format")
@@ -42468,8 +45513,40 @@ parallelism and safety in mind.")
      "This package parses zoneinfo files from the IANA database.")
     (license license:expat)))
 
+(define-public rust-partial-io-0.5
+  (package
+    (name "rust-partial-io")
+    (version "0.5.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "partial-io" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05hfdlbqwfkwmkws797b6nrlpaszxg50avfs161v8n4zchicz5dg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-pin-project" ,rust-pin-project-1)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-itertools" ,rust-itertools-0.10)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/sunshowers-code/partial-io")
+    (synopsis "Helpers to test partial, interrupted and would-block I/O operations")
+    (description "This package provides helpers to test partial, interrupted
+and would-block I/O operations.")
+    (license license:expat)))
+
 (define-public rust-partial-io-0.3
   (package
+    (inherit rust-partial-io-0.5)
     (name "rust-partial-io")
     (version "0.3.1")
     (source
@@ -42480,7 +45557,6 @@ parallelism and safety in mind.")
        (sha256
         (base32
          "0b9a2bvqmaj2r4rkbshjsg8zzvp23b67qfvj2y6jwjckrn6zhb38"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
@@ -42489,12 +45565,7 @@ parallelism and safety in mind.")
        #:cargo-development-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-quickcheck" ,rust-quickcheck-0.6)
-        ("rust-tokio-core" ,rust-tokio-core-0.1))))
-    (home-page "https://github.com/facebookincubator/rust-partial-io")
-    (synopsis "Helpers to test partial, interrupted and would-block I/O operations")
-    (description "This package provides helpers to test partial, interrupted
-and would-block I/O operations.")
-    (license license:expat)))
+        ("rust-tokio-core" ,rust-tokio-core-0.1))))))
 
 (define-public rust-partial-io-0.2
   (package
@@ -42521,17 +45592,53 @@ and would-block I/O operations.")
         ("rust-tokio-core" ,rust-tokio-core-0.1))))
     (license license:bsd-3)))
 
-(define-public rust-password-hash-0.4
+(define-public rust-pasetors-0.6
+  (package
+    (name "rust-pasetors")
+    (version "0.6.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pasetors" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sgag8mxix45inzmvkcp2nahmnd5gdi62wdh5v7dxhaxp0rzcjw2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-ct-codecs" ,rust-ct-codecs-1)
+        ("rust-ed25519-compact" ,rust-ed25519-compact-2)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-orion" ,rust-orion-0.17)
+        ("rust-p384" ,rust-p384-0.13)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex" ,rust-hex-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/brycx/pasetors")
+    (synopsis "PASETO: Platform-Agnostic Security Tokens (in Rust)")
+    (description "PASETO: Platform-Agnostic Security Tokens (in Rust)")
+    (license license:expat)))
+
+(define-public rust-password-hash-0.5
   (package
     (name "rust-password-hash")
-    (version "0.4.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "password-hash" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "003p2hssyrcaxyq9fs8x2wx5di8ny9byaakskrf352pfm963fxkn"))))
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "password-hash" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ri1mim11zk0a9s40zdi288dfqvmdiryc7lw8vl46b59ifa08vrl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -42548,6 +45655,24 @@ the PHC string format (a well-defined subset of the Modular Crypt
 Format (MCF).")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-password-hash-0.4
+  (package
+    (inherit rust-password-hash-0.5)
+    (name "rust-password-hash")
+    (version "0.4.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "password-hash" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "003p2hssyrcaxyq9fs8x2wx5di8ny9byaakskrf352pfm963fxkn"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64ct" ,rust-base64ct-1)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-subtle" ,rust-subtle-2))))))
+
 (define-public rust-password-hash-0.3
   (package
     (inherit rust-password-hash-0.4)
@@ -42636,14 +45761,14 @@ Format (MCF).")
 (define-public rust-path-abs-0.5
   (package
     (name "rust-path-abs")
-    (version "0.5.0")
+    (version "0.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "path_abs" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "131qi5j201caraqz9rwbzk4mybd9bcrryrhf63lr9gz0xmnqwszb"))))
+        (base32 "1hrkjrk9w2mhgzwl84gl2lmajs7yagdrcpxnjf51vh1a6kv05vq5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -42653,6 +45778,7 @@ Format (MCF).")
         ("rust-stfu8" ,rust-stfu8-0.2))
        #:cargo-development-inputs
        (("rust-pretty-assertions" ,rust-pretty-assertions-0.4)
+        ("rust-regex" ,rust-regex-0.2)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-tempdir" ,rust-tempdir-0.3))))
     (home-page "https://github.com/vitiral/path_abs")
@@ -42704,8 +45830,43 @@ relative path from a provided base directory path to the provided
 path.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pbkdf2-0.12
+  (package
+    (name "rust-pbkdf2")
+    (version "0.12.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pbkdf2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cbcfkb9qh5czbm88gw3aii4y5m84wig6s5d7fzrhxb0d1d0pjph"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-password-hash" ,rust-password-hash-0.5)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-streebog" ,rust-streebog-0.10))))
+    (home-page
+     "https://github.com/RustCrypto/password-hashes/tree/master/pbkdf2")
+    (synopsis "Generic implementation of PBKDF2")
+    (description "This package contains a collection of password hashing
+algorithms, otherwise known as password-based key derivation functions, written
+in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pbkdf2-0.11
   (package
+    (inherit rust-pbkdf2-0.12)
     (name "rust-pbkdf2")
     (version "0.11.0")
     (source
@@ -42715,7 +45876,6 @@ path.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "05q9wqjvfrs4dvw03yn3bvcs4zghz0a7ycfa53pz2k2fqhp6k843"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-digest" ,rust-digest-0.10)
@@ -42730,12 +45890,7 @@ path.")
         ("rust-sha-1" ,rust-sha-1-0.10)
         ("rust-sha2" ,rust-sha2-0.10)
         ("rust-streebog" ,rust-streebog-0.10))))
-    (home-page "https://github.com/RustCrypto/password-hashing")
-    (synopsis "Generic implementation of PBKDF2")
-    (description "This package contains a collection of password hashing
-algorithms, otherwise known as password-based key derivation functions, written
-in pure Rust.")
-    (license (list license:expat license:asl2.0))))
+    (home-page "https://github.com/RustCrypto/password-hashing")))
 
 (define-public rust-pbkdf2-0.10
   (package
@@ -42981,14 +46136,14 @@ pdqsort.")
 (define-public rust-pear-0.1
   (package
     (name "rust-pear")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pear" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12mb00ick6y1slbxk6r4i8qxdbq8km3bs4pygjv94xwnvc9g482k"))))
+        (base32 "02lnp8c414z5ds0lskd4zxlalrjljzpkg8g6kizszij4h52sgprj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -43002,14 +46157,14 @@ pdqsort.")
 (define-public rust-pear-codegen-0.1
   (package
     (name "rust-pear-codegen")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pear_codegen" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1jk8jxkgjd3pymldkckg2ligkpy4nnskgcj8qf3yzlf3zlvcihdz"))))
+        (base32 "19lcpkfspizd4ywwvca6rxgc311m070k3ndvwa9vrbw1snjqna60"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -43141,32 +46296,52 @@ procedural macros for rust-peg.  To use rust-peg, see the peg package.")
 runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
     (license license:expat)))
 
-(define-public rust-pem-1
+(define-public rust-pem-2
   (package
     (name "rust-pem")
-    (version "1.1.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pem" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1f184b7vs5kgwglfsy9adqqy7625jsq8jj1lsxah9abn78kmr0x8"))))
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pem" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "06j4vmzkfg5jh9ykc5bdvydishqkbb4sf64fa528wg6zbi0zw4vb"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:cargo-inputs
-        (("rust-base64" ,rust-base64-0.13)
-         ("rust-serde" ,rust-serde-1))
-        #:cargo-development-inputs
-        (("rust-criterion" ,rust-criterion-0.3)
-         ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/jcreekmore/pem-rs")
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/jcreekmore/pem-rs.git")
     (synopsis "Parse and encode PEM-encoded data")
     (description
      "This package provides a Rust library for parsing and encoding
 PEM-encoded data.")
     (license license:expat)))
 
+(define-public rust-pem-1
+  (package
+    (inherit rust-pem-2)
+    (name "rust-pem")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pem" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1f184b7vs5kgwglfsy9adqqy7625jsq8jj1lsxah9abn78kmr0x8"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-serde-json" ,rust-serde-json-1))))))
+
 (define-public rust-pem-0.8
   (package
     (inherit rust-pem-1)
@@ -43187,8 +46362,49 @@ PEM-encoded data.")
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3))))))
 
+(define-public rust-pem-rfc7468-0.7
+  (package
+    (name "rust-pem-rfc7468")
+    (version "0.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pem-rfc7468" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04l4852scl4zdva31c1z6jafbak0ni5pi0j38ml108zwzjdrrcw8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-base64ct" ,rust-base64ct-1))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/pem-rfc7468")
+    (synopsis
+     "PEM Encoding implementing a subset of Privacy-Enhanced Mail encoding")
+    (description
+     "This package provides PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS
+Structures, implementing a strict subset of the original Privacy-Enhanced Mail
+encoding intended specifically for use with cryptographic keys, certificates,
+and other messages.  It provides a no_std-friendly, constant-time
+implementation suitable for use with cryptographic private keys.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-pem-rfc7468-0.6
+  (package
+    (inherit rust-pem-rfc7468-0.7)
+    (name "rust-pem-rfc7468")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pem-rfc7468" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1b5d8rvc4lgwxhs72m99fnrg0wq7bqh4x4wq0c7501ci7a1mkl94"))))
+    (arguments
+     `(#:cargo-inputs (("rust-base64ct" ,rust-base64ct-1))))))
+
 (define-public rust-pem-rfc7468-0.2
   (package
+    (inherit rust-pem-rfc7468-0.7)
     (name "rust-pem-rfc7468")
     (version "0.2.4")
     (source
@@ -43198,25 +46414,84 @@ PEM-encoded data.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1m1c9jypydzabg4yscplmvff7pdcc8gg4cqg081hnlf03hxkmsc4"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs (("rust-base64ct" ,rust-base64ct-1))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/pem-rfc7468")
+       #:cargo-inputs (("rust-base64ct" ,rust-base64ct-1))))))
+
+(define-public rust-pep440-rs-0.3
+  (package
+    (name "rust-pep440-rs")
+    (version "0.3.9")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pep440-rs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l3nyvfz8qq62dvilwfbzgdqxyz9kbf006s0gpx2qhhi79lia7gy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pyo3" ,rust-pyo3-0.18)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))
+       #:cargo-development-inputs (("rust-indoc" ,rust-indoc-2))))
+    (home-page "https://github.com/konstin/pep440-rs")
     (synopsis
-     "PEM Encoding implementing a subset of Privacy-Enhanced Mail encoding")
+     "Library for python version numbers and specifiers, implementing PEP 440")
     (description
-     "This package provides PEM Encoding (RFC 7468) for PKIX, PKCS, and CMS
-Structures, implementing a strict subset of the original Privacy-Enhanced Mail
-encoding intended specifically for use with cryptographic keys, certificates,
-and other messages.  It provides a no_std-friendly, constant-time
-implementation suitable for use with cryptographic private keys.")
-    (license (list license:asl2.0 license:expat))))
+     "This package provides a library for python version numbers and specifiers,
+implementing PEP 440.")
+    (license (list license:asl2.0 license:bsd-2))))
+
+;; Should be the same rust-pyo3 version as cargo-input rust-pep440-rs.
+(define-public rust-pep508-rs-0.2
+  (package
+    (name "rust-pep508-rs")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pep508-rs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qjkhh89xhjwhpjz2ppk5lp3mdm464gqx8sh9iyjpjk1p1xkswf0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pep440-rs" ,rust-pep440-rs-0.3)
+        ("rust-pyo3" ,rust-pyo3-0.18)
+        ("rust-pyo3-log" ,rust-pyo3-log-0.8)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-toml" ,rust-toml-0.7)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-url" ,rust-url-2))
+       #:cargo-development-inputs
+       (("rust-indoc" ,rust-indoc-2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-testing-logger" ,rust-testing-logger-0.1))))
+    (home-page "https://github.com/konstin/pep508_rs")
+    (synopsis
+     "Library for python dependency specifiers, better known as PEP 508")
+    (description
+     "This package provides a library for python dependency specifiers, better
+known as PEP 508.")
+    (license (list license:asl2.0 license:bsd-2))))
 
 (define-public rust-percent-encoding-2
   (package
     (name "rust-percent-encoding")
-    (version "2.2.0")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
@@ -43224,7 +46499,7 @@ implementation suitable for use with cryptographic private keys.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "13nrpp6r1f4k14viksga3094krcrxgv4b42kqbriy63k7ln5g327"))))
+         "152slflmparkh27hprw62sph8rv77wckzhwl2dhqk6bf563lfalv"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/servo/rust-url/")
     (synopsis "Percent encoding and decoding")
@@ -43345,7 +46620,7 @@ algorithm.")
 (define-public rust-pest-2
   (package
     (name "rust-pest")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
@@ -43354,13 +46629,11 @@ algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "02n3b2hv9ciysybs9qzxza25gp8493dd7r8b57kfkxwi9nhb8ms2"))))
+         "0w3vaad35km41g2liasf0sfkgfhj190rn7mc9q9hf18zn2zq93p6"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bytecount" ,rust-bytecount-0.6)
-        ("rust-memchr" ,rust-memchr-2)
+     `(#:cargo-inputs
+       (("rust-memchr" ,rust-memchr-2)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-thiserror" ,rust-thiserror-1)
@@ -43373,7 +46646,7 @@ algorithm.")
 (define-public rust-pest-derive-2
   (package
     (name "rust-pest-derive")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
@@ -43382,11 +46655,10 @@ algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "19m0wd2lcg6d2halnlfcgl0mfpgjy5a29q875vk6bp8c7cwxl714"))))
+         "1yzv982pypxrr2zwhd08xv40plr474p155i26aj2anl63k3x8ybb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-pest" ,rust-pest-2)
         ("rust-pest-generator" ,rust-pest-generator-2))))
     (home-page "https://pest.rs/")
@@ -43397,7 +46669,7 @@ algorithm.")
 (define-public rust-pest-generator-2
   (package
     (name "rust-pest-generator")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
@@ -43406,11 +46678,10 @@ algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0z52iw9g9jcg8v7d56s9m49cbl1k5wsxax1wjl1666f8v0s3dda6"))))
+         "0zh7igibnn9d4skgx3vjy4q6nya2hjhw7vf8xd8vhdv40zqmnhvc"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-pest" ,rust-pest-2)
         ("rust-pest-meta" ,rust-pest-meta-2)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
@@ -43424,7 +46695,7 @@ algorithm.")
 (define-public rust-pest-meta-2
   (package
     (name "rust-pest-meta")
-    (version "2.5.3")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
@@ -43433,10 +46704,10 @@ algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0lbskklh77xnyk1yr8c387l80s37s30lrfv636s7hild58rz3x0f"))))
+         "04ala2f51zxninvajvvqk5gq80qxyp2v6cpfv3zkj7mpiqplankl"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f          ; Not all test files included.
        #:cargo-inputs
        (("rust-once-cell" ,rust-once-cell-1)
         ("rust-pest" ,rust-pest-2)
@@ -43534,8 +46805,33 @@ and graph algorithms.")
                (("fn dot\\(\\) \\{" all)
                 (string-append "#[ignore] " all))))))))))
 
+(define-public rust-phf-0.11
+  (package
+    (name "rust-phf")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1354fbpb52cp9gs5mlkaygc5qhdx6r07rfv3xy482m4kvqsnb34j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Doc tests fail.
+       #:cargo-inputs
+       (("rust-phf-macros" ,rust-phf-macros-0.11)
+        ("rust-phf-shared" ,rust-phf-shared-0.11)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/rust-phf/rust-phf")
+    (synopsis "Runtime support for perfect hash function data structures")
+    (description "This package provides runtime support for perfect hash
+function data structures.")
+    (license license:expat)))
+
 (define-public rust-phf-0.10
   (package
+    (inherit rust-phf-0.11)
     (name "rust-phf")
     (version "0.10.1")
     (source
@@ -43545,19 +46841,32 @@ and graph algorithms.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0naj8n5nasv5hj5ldlva3cl6y3sv7zp3kfgqylhbrg55v3mg3fzs"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f          ; Doc tests fail.
        #:cargo-inputs
        (("rust-phf-macros" ,rust-phf-macros-0.10)
         ("rust-phf-shared" ,rust-phf-shared-0.10)
         ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page "https://github.com/sfackler/rust-phf")
-    (synopsis "Runtime support for perfect hash function data structures")
-    (description "This package provides runtime support for perfect hash
-function data structures.")
-    (license license:expat)))
+        ("rust-serde" ,rust-serde-1))))))
+
+(define-public rust-phf-0.9
+  (package
+    (inherit rust-phf-0.10)
+    (name "rust-phf")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sk9arhiv4hkg3hbmbxnpjvr0bffhyz7kpb2pn86mn6ia4c566xj"))))
+    (arguments
+     `(#:tests? #f          ; Doc tests fail.
+       #:cargo-inputs
+       (("rust-phf-macros" ,rust-phf-macros-0.9)
+        ("rust-phf-shared" ,rust-phf-shared-0.9)
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))))
 
 (define-public rust-phf-0.8
   (package
@@ -43605,8 +46914,30 @@ function data structures.")
      "Runtime support for perfect hash function data structures.")
     (license license:expat)))
 
+(define-public rust-phf-codegen-0.11
+  (package
+    (name "rust-phf-codegen")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-codegen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0w274bcqbz499vpvd7isb252bc5mxmj9kagapn5mkjp3qn8chsm5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.11)
+        ("rust-phf-shared" ,rust-phf-shared-0.11))))
+    (home-page "https://github.com/rust-phf/rust-phf")
+    (synopsis "Codegen library for PHF types")
+    (description "Codegen library for PHF types.")
+    (license license:expat)))
+
 (define-public rust-phf-codegen-0.10
   (package
+    (inherit rust-phf-codegen-0.11)
     (name "rust-phf-codegen")
     (version "0.10.0")
     (source
@@ -43616,16 +46947,28 @@ function data structures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1k8kdad9wk2d5972k6jmjki2xpdy2ky4zd19rv7ybm2dpjlc7cag"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-phf-generator" ,rust-phf-generator-0.10)
-        ("rust-phf-shared" ,rust-phf-shared-0.10))))
-    (home-page "https://github.com/sfackler/rust-phf")
-    (synopsis "Codegen library for PHF types")
-    (description "Codegen library for PHF types.")
-    (license license:expat)))
+        ("rust-phf-shared" ,rust-phf-shared-0.10))))))
+
+(define-public rust-phf-codegen-0.9
+  (package
+    (inherit rust-phf-codegen-0.10)
+    (name "rust-phf-codegen")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-codegen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1q4r7mqisvzjz5fzfnr16nb5bxrj6xv32qnq1ds75xql783md31z"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.9)
+        ("rust-phf-shared" ,rust-phf-shared-0.9))))))
 
 (define-public rust-phf-codegen-0.8
   (package
@@ -43671,8 +47014,38 @@ function data structures.")
     (description "Codegen library for PHF types.")
     (license license:expat)))
 
+(define-public rust-phf-generator-0.11
+  (package
+    (name "rust-phf-generator")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-generator" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1gsgy5k45y937qnwp58dc05d63lwlfm3imqr1zslb8qgb2a1q65i"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (substitute* "Cargo.toml"
+                         (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                          (string-append "\"^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-phf-shared" ,rust-phf-shared-0.11)
+        ("rust-rand" ,rust-rand-0.8))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://github.com/rust-phf/rust-phf")
+    (synopsis "PHF generation logic")
+    (description "PHF generation logic.")
+    (license license:expat)))
+
 (define-public rust-phf-generator-0.10
   (package
+    (inherit rust-phf-generator-0.11)
     (name "rust-phf-generator")
     (version "0.10.0")
     (source
@@ -43682,17 +47055,38 @@ function data structures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1mlq6hlajsvlsx6rhw49g9ricsm017lrxmgmmbk85sxm7f4qaljx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-phf-shared" ,rust-phf-shared-0.10)
-        ("rust-rand" ,rust-rand-0.8))))
-    (home-page "https://github.com/sfackler/rust-phf")
-    (synopsis "PHF generation logic")
-    (description "PHF generation logic.")
-    (license license:expat)))
+        ("rust-rand" ,rust-rand-0.8))))))
+
+(define-public rust-phf-generator-0.9
+  (package
+    (inherit rust-phf-generator-0.10)
+    (name "rust-phf-generator")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-generator" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "10ih96kaxnkn1yxk3ghpzgm09nc0rn69fd52kv68003fv4h34gyl"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (substitute* "Cargo.toml"
+                         (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                          (string-append "\"^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-phf-shared" ,rust-phf-shared-0.9)
+        ("rust-rand" ,rust-rand-0.8))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3))))))
 
 (define-public rust-phf-generator-0.8
   (package
@@ -43738,8 +47132,35 @@ function data structures.")
     (description "PHF generation logic")
     (license license:expat)))
 
+(define-public rust-phf-macros-0.11
+  (package
+    (name "rust-phf-macros")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0rncvjimjri2vancig85icbk8h03a5s3z4cyasd70s37y72wvalj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.11)
+        ("rust-phf-shared" ,rust-phf-shared-0.11)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://github.com/rust-phf/rust-phf")
+    (synopsis "Macros to generate types in the phf crate")
+    (description
+     "This package contains macros to generate types in the phf crate.")
+    (license license:expat)))
+
 (define-public rust-phf-macros-0.10
   (package
+    (inherit rust-phf-macros-0.11)
     (name "rust-phf-macros")
     (version "0.10.0")
     (source
@@ -43749,7 +47170,6 @@ function data structures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1q5ljwvb10dx188i6jxzckqfimjw5pm2p4kkvmhg2q6m9lcg7zaq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -43759,12 +47179,33 @@ function data structures.")
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-unicase" ,rust-unicase-2))))
-    (home-page "https://github.com/sfackler/rust-phf")
-    (synopsis "Macros to generate types in the phf crate")
-    (description
-     "This package contains macros to generate types in the phf crate.")
-    (license license:expat)))
+        ("rust-unicase" ,rust-unicase-2))))))
+
+(define-public rust-phf-macros-0.9
+  (package
+    (inherit rust-phf-macros-0.10)
+    (name "rust-phf-macros")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1rpc0jy5sfrk3ir87k2q0kk44a45nsrbwc131jmsi6f8hi3fqi7g"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-phf-generator" ,rust-phf-generator-0.9)
+        ("rust-phf-shared" ,rust-phf-shared-0.9)
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-unicase" ,rust-unicase-2))
+       #:cargo-development-inputs
+       (("rust-phf" ,rust-phf-0.9)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-unicase" ,rust-unicase-2))))))
 
 (define-public rust-phf-macros-0.8
   (package
@@ -43822,8 +47263,32 @@ function data structures.")
      "Macros to generate types in the phf crate.")
     (license license:expat)))
 
+(define-public rust-phf-shared-0.11
+  (package
+    (name "rust-phf-shared")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-shared" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xp6krf3cd411rz9rbk7p6xprlz786a215039j6jlxvbh9pmzyz1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-siphasher" ,rust-siphasher-0.3)
+        ("rust-uncased" ,rust-uncased-0.9)
+        ("rust-unicase" ,rust-unicase-2))))
+    (home-page "https://github.com/rust-phf/rust-phf")
+    (synopsis "Support code shared by PHF libraries")
+    (description
+     "This package provides support code shared by PHF libraries.")
+    (license license:expat)))
+
 (define-public rust-phf-shared-0.10
   (package
+    (inherit rust-phf-shared-0.11)
     (name "rust-phf-shared")
     (version "0.10.0")
     (source
@@ -43833,18 +47298,30 @@ function data structures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "15n02nc8yqpd8hbxngblar2g53p3nllc93d8s8ih3p5cf7bnlydn"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-siphasher" ,rust-siphasher-0.3)
         ("rust-uncased" ,rust-uncased-0.9)
-        ("rust-unicase" ,rust-unicase-2))))
-    (home-page "https://github.com/sfackler/rust-phf")
-    (synopsis "Support code shared by PHF libraries")
-    (description
-     "This package provides support code shared by PHF libraries.")
-    (license license:expat)))
+        ("rust-unicase" ,rust-unicase-2))))))
+
+(define-public rust-phf-shared-0.9
+  (package
+    (inherit rust-phf-shared-0.10)
+    (name "rust-phf-shared")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "phf-shared" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ng0hi2byifqah6bcdy3zcpbwq8jxgl4laz65gq40dp3dm11i0x6"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-siphasher" ,rust-siphasher-0.3)
+        ("rust-uncased" ,rust-uncased-0.9)
+        ("rust-unicase" ,rust-unicase-2))))))
 
 (define-public rust-phf-shared-0.8
   (package
@@ -43890,6 +47367,27 @@ function data structures.")
      "Support code shared by PHF libraries.")
     (license license:expat)))
 
+(define-public rust-pikchr-0.1
+  (package
+    (name "rust-pikchr")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pikchr" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1lm6924k84jdwsyjf029r2xwz23dmm19mryb51jaj9q29f9n001w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/kinnison/pikchr")
+    (synopsis "PIC-like diagramming language to SVG converter")
+    (description "PIC-like diagramming language to SVG converter")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-pin-project-1
   (package
     (name "rust-pin-project")
@@ -43916,6 +47414,29 @@ function data structures.")
      "This package provides a crate for safe and ergonomic pin-projection.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ping-0.4
+  (package
+    (name "rust-ping")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ping" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0h8iyphd5c6k609635ja813isyplnzrlz8hgp0pfrb2v39xahw33"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Tests require network access.
+       #:cargo-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-socket2" ,rust-socket2-0.4)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/aisk/ping")
+    (synopsis "ICMP library for Rust")
+    (description "This package provides an ICMP library for Rust.")
+    (license license:expat)))
+
 (define-public rust-pin-project-0.4
   (package
     (inherit rust-pin-project-1)
@@ -43943,24 +47464,6 @@ function data structures.")
         ("rust-toml" ,rust-toml-0.5)
         ("rust-trybuild" ,rust-trybuild-1))))))
 
-(define-public rust-pin-project-auxiliary-macro-0.0
-  (package
-    (name "rust-pin-project-auxiliary-macro")
-    (version "0.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "pin-project-auxiliary-macro" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1fk48gab989xxmw466yp4mvqwfkkx9ckqzmjlfyk2hnzavqwvkxj"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/taiki-e/pin-project")
-    (synopsis "Internal test tool of the pin-project crate")
-    (description
-     "This package is an internal test tool of the @code{pin-project} crate.")
-    (license (list license:asl2.0 license:expat))))
-
 (define-public rust-pin-project-internal-1
   (package
     (name "rust-pin-project-internal")
@@ -44124,8 +47627,38 @@ along with strong support for variations and the core header tables.")
      "This crate provides async pipes, channels, mutexes, and more.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pkcs1-0.7
+  (package
+    (name "rust-pkcs1")
+    (version "0.7.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pkcs1" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0zz4mil3nchnxljdfs2k5ab1cjqn7kq5lqp62n9qfix01zqvkzy8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-der" ,rust-der-0.7)
+        ("rust-pkcs8" ,rust-pkcs8-0.10)
+        ("rust-spki" ,rust-spki-0.7))
+       #:cargo-development-inputs
+       (("rust-const-oid" ,rust-const-oid-0.9)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs1")
+    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #1")
+    (description
+     "This package provides a pure Rust implementation of Public-Key
+Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.2
+(RFC 8017).")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-pkcs1-0.2
   (package
+    (inherit rust-pkcs1-0.7)
     (name "rust-pkcs1")
     (version "0.2.4")
     (source
@@ -44135,23 +47668,76 @@ along with strong support for variations and the core header tables.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0b2f1a0lf5h53zrjvcqbxzjhh89gcfa1myhf6z7w10ypg61fwsqi"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-der" ,rust-der-0.4)
         ("rust-pem-rfc7468" ,rust-pem-rfc7468-0.2)
-        ("rust-zeroize" ,rust-zeroize-1))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs1")
-    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #1")
+        ("rust-zeroize" ,rust-zeroize-1))))))
+
+(define-public rust-pkcs5-0.7
+  (package
+    (name "rust-pkcs5")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pkcs5" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19k9igzay529fqj90qdkgnvmvwp65wzw73h2vn3sigqq3b4y4iz8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cbc" ,rust-cbc-0.1)
+        ("rust-der" ,rust-der-0.7)
+        ("rust-des" ,rust-des-0.8)
+        ("rust-pbkdf2" ,rust-pbkdf2-0.12)
+        ("rust-scrypt" ,rust-scrypt-0.11)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-spki" ,rust-spki-0.7))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs5")
+    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #5")
     (description
-     "This package provides a pure Rust implementation of Public-Key
-Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.2
-(RFC 8017)")
+     "This package is a pure Rust implementation of Public-Key Cryptography
+Standards (PKCS) #5: Password-Based Cryptography Specification Version
+2.1 (RFC 8018).")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pkcs5-0.5
+  (package
+    (inherit rust-pkcs5-0.7)
+    (name "rust-pkcs5")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pkcs5" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0x81m285ijqi0fqkgym6a6ax02mfzdx87zfvqgrjsc2w3wn8c3fi"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-cbc" ,rust-cbc-0.1)
+        ("rust-der" ,rust-der-0.6)
+        ("rust-des" ,rust-des-0.8)
+        ("rust-hmac" ,rust-hmac-0.12)
+        ("rust-pbkdf2" ,rust-pbkdf2-0.11)
+        ("rust-scrypt" ,rust-scrypt-0.10)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-spki" ,rust-spki-0.6))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3))))))
+
 (define-public rust-pkcs5-0.3
   (package
+    (inherit rust-pkcs5-0.7)
     (name "rust-pkcs5")
     (version "0.3.2")
     (source
@@ -44161,7 +47747,6 @@ Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.2
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1m3xrrwwbn9883bylgjzssfh3w1lbl7fhkb3ndz721rf27pca8sl"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -44174,17 +47759,64 @@ Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.2
         ("rust-scrypt" ,rust-scrypt-0.8)
         ("rust-sha-1" ,rust-sha-1-0.9)
         ("rust-sha2" ,rust-sha2-0.9)
-        ("rust-spki" ,rust-spki-0.4))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs5")
-    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #5")
+        ("rust-spki" ,rust-spki-0.4))))))
+
+(define-public rust-pkcs8-0.10
+  (package
+    (name "rust-pkcs8")
+    (version "0.10.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pkcs8" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1dx7w21gvn07azszgqd3ryjhyphsrjrmq5mmz1fbxkj5g0vv4l7r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-der" ,rust-der-0.7)
+        ("rust-pkcs5" ,rust-pkcs5-0.7)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-spki" ,rust-spki-0.7)
+        ("rust-subtle" ,rust-subtle-2))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs8")
+    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #8")
     (description
      "This package is a pure Rust implementation of Public-Key Cryptography
-Standards (PKCS) #5: Password-Based Cryptography Specification Version
-2.1 (RFC 8018).")
+Standards (PKCS) #8: Private-Key Information Syntax Specification (RFC 5208),
+with additional support for PKCS#8v2 asymmetric key packages (RFC 5958).")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-pkcs8-0.9
+  (package
+    (inherit rust-pkcs8-0.10)
+    (name "rust-pkcs8")
+    (version "0.9.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pkcs8" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fm4sigvcd0zpzg9jcp862a8p272kk08b9lgcs1dm1az19cjrjly"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-der" ,rust-der-0.6)
+        ("rust-pkcs5" ,rust-pkcs5-0.5)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-spki" ,rust-spki-0.6)
+        ("rust-subtle" ,rust-subtle-2))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-pkcs8-0.7
   (package
+    (inherit rust-pkcs8-0.10)
     (name "rust-pkcs8")
     (version "0.7.6")
     (source
@@ -44194,7 +47826,6 @@ Standards (PKCS) #5: Password-Based Cryptography Specification Version
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0iq46p6fa2b8xy6pj52zpmdy8ya3fg31dj4rc19x1fi69nvgjgpf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -44204,14 +47835,7 @@ Standards (PKCS) #5: Password-Based Cryptography Specification Version
         ("rust-pkcs5" ,rust-pkcs5-0.3)
         ("rust-rand-core" ,rust-rand-core-0.6)
         ("rust-spki" ,rust-spki-0.4)
-        ("rust-zeroize" ,rust-zeroize-1))))
-    (home-page "https://github.com/RustCrypto/formats/tree/master/pkcs8")
-    (synopsis "Implementation of Public-Key Cryptography Standards (PKCS) #8")
-    (description
-     "This package is a pure Rust implementation of Public-Key Cryptography
-Standards (PKCS) #8: Private-Key Information Syntax Specification (RFC 5208),
-with additional support for PKCS#8v2 asymmetric key packages (RFC 5958).")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-zeroize" ,rust-zeroize-1))))))
 
 (define-public rust-pkg-config-0.3
   (package
@@ -44292,6 +47916,30 @@ network packet formats.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-platform-info-2
+  (package
+    (name "rust-platform-info")
+    (version "2.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "platform-info" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03rhwsfhdr3sb6fxr0bmf7xav745m132y6vg05jzcfz5c149q9fn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs (("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/uutils/platform-info")
+    (synopsis "Cross-platform interface to get info about a system")
+    (description
+     "This package provides a simple cross-platform interface to get info about
+a system.")
+    (license license:expat)))
+
 (define-public rust-pledge-0.4
   (package
     (name "rust-pledge")
@@ -44550,63 +48198,6 @@ applications.")
      "This crate provides Arrow interfaces for Polars DataFrame library.")
     (license license:expat)))
 
-(define-public rust-polars-arrow-0.16
-  (package
-    (inherit rust-polars-arrow-0.17)
-    (name "rust-polars-arrow")
-    (version "0.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-arrow" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0pwx7nsayn526r9gw16yzqq3r6mn6ivcdxzsj8737whk04qy3ssb"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-arrow2" ,rust-arrow2-0.5)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-thiserror" ,rust-thiserror-1))))))
-
-(define-public rust-polars-arrow-0.15
-  (package
-    (inherit rust-polars-arrow-0.16)
-    (name "rust-polars-arrow")
-    (version "0.15.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-arrow" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0d8ir9dajywfqg6ck557vbvzsdmndc1ipn9mgrqi15yini1qmw2z"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-arrow" ,rust-arrow-5)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-thiserror" ,rust-thiserror-1))))))
-
-(define-public rust-polars-arrow-0.14
-  (package
-    (inherit rust-polars-arrow-0.15)
-    (name "rust-polars-arrow")
-    (version "0.14.8")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-arrow" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1wk6qfj821w6qqs35n9f0zhp9n7mffxzah12nqk1xlpv2ci2ahsr"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-arrow" ,rust-arrow-4)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-thiserror" ,rust-thiserror-1))))))
-
 (define-public rust-polars-core-0.17
   (package
     (name "rust-polars-core")
@@ -44651,83 +48242,6 @@ applications.")
      "This crate provides the core of the Polars DataFrame library.")
     (license license:expat)))
 
-(define-public rust-polars-core-0.16
-  (package
-    (inherit rust-polars-core-0.17)
-    (name "rust-polars-core")
-    (version "0.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-core" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0knhxc2b0k5jpvm7fxm64b5hjdyqgxjjyi6cnsiy5sya3mj3v9cd"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow2" ,rust-arrow2-0.5)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-comfy-table" ,rust-comfy-table-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-jsonpath-lib" ,rust-jsonpath-lib-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-ndarray" ,rust-ndarray-0.15)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
-        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rand-distr" ,rust-rand-distr-0.3)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
-
-(define-public rust-polars-core-0.15
-  (package
-    (inherit rust-polars-core-0.16)
-    (name "rust-polars-core")
-    (version "0.15.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-core" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0vzyyqg0s6h3k77z7nkmqrrgnp7nbi7sh5nmlw1ggrlml9ps0aa9"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow" ,rust-arrow-5)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-comfy-table" ,rust-comfy-table-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-jsonpath-lib" ,rust-jsonpath-lib-0.3)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-ndarray" ,rust-ndarray-0.15)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-parquet" ,rust-parquet-5)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.15)
-        ("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rand-distr" ,rust-rand-distr-0.3)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))))
-
 (define-public rust-polars-io-0.17
   (package
     (name "rust-polars-io")
@@ -44766,38 +48280,6 @@ applications.")
      "This crate provides IO related logic for the Polars DataFrame library.")
     (license license:expat)))
 
-(define-public rust-polars-io-0.16
-  (package
-    (inherit rust-polars-io-0.17)
-    (name "rust-polars-io")
-    (version "0.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "polars-io" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0yqpjk0ymqpjq6f0mnm9hhw9xmjradx6vqzg5n54qvl6v3s3p3kh"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-ahash" ,rust-ahash-0.7)
-        ("rust-anyhow" ,rust-anyhow-1)
-        ("rust-arrow2" ,rust-arrow2-0.5)
-        ("rust-csv-core" ,rust-csv-core-0.1)
-        ("rust-dirs" ,rust-dirs-3)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-lexical" ,rust-lexical-6)
-        ("rust-memmap2" ,rust-memmap2-0.2)
-        ("rust-num" ,rust-num-0.4)
-        ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-polars-arrow" ,rust-polars-arrow-0.16)
-        ("rust-polars-core" ,rust-polars-core-0.16)
-        ("rust-rayon" ,rust-rayon-1)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-simdutf8" ,rust-simdutf8-0.1))))))
-
 (define-public rust-polars-lazy-0.17
   (package
     (name "rust-polars-lazy")
@@ -45036,34 +48518,6 @@ overloading without macros in Rust.")
      "This package provides a native, synchronous PostgreSQL client.")
     (license license:expat)))
 
-(define-public rust-postgres-0.15
-  (package
-    (inherit rust-postgres-0.19)
-    (name "rust-postgres")
-    (version "0.15.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "postgres" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1id6jb56jack7kxivpp3rnjjmkmymmxqadf0h0smgbsixy8dwp8i"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bytes" ,rust-bytes-0.4)
-        ("rust-fallible-iterator" ,rust-fallible-iterator-0.1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-native-tls" ,rust-native-tls-0.1)
-        ("rust-openssl" ,rust-openssl-0.9)
-        ("rust-postgres-protocol" ,rust-postgres-protocol-0.3)
-        ("rust-postgres-shared" ,rust-postgres-shared-0.4)
-        ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
-        ("rust-schannel" ,rust-schannel-0.1)
-        ("rust-security-framework" ,rust-security-framework-0.1)
-        ("rust-socket2" ,rust-socket2-0.3))))))
-
 (define-public rust-postgres-derive-0.4
   (package
     (name "rust-postgres-derive")
@@ -45120,68 +48574,6 @@ overloading without macros in Rust.")
      "This package provides low level Postgres protocol APIs.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-postgres-protocol-0.3
-  (package
-    (inherit rust-postgres-protocol-0.6)
-    (name "rust-postgres-protocol")
-    (version "0.3.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "postgres-protocol" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "04kkznbhwspfn0hdja3jsv37l6g5gz7a625z8yra325zamjfd1r4"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-base64" ,rust-base64-0.6)
-        ("rust-byteorder" ,rust-byteorder-1)
-        ("rust-bytes" ,rust-bytes-0.4)
-        ("rust-fallible-iterator" ,rust-fallible-iterator-0.1)
-        ("rust-generic-array" ,rust-generic-array-0.9)
-        ("rust-hmac" ,rust-hmac-0.5)
-        ("rust-md5" ,rust-md5-0.3)
-        ("rust-memchr" ,rust-memchr-1)
-        ("rust-rand" ,rust-rand-0.3)
-        ("rust-sha2" ,rust-sha2-0.7)
-        ("rust-stringprep" ,rust-stringprep-0.1))))))
-
-(define-public rust-postgres-shared-0.4
-  (package
-    (name "rust-postgres-shared")
-    (version "0.4.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "postgres-shared" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0vzk1njkqkd2xxz34jnax29z4179ni4j3f534i6416q2w2rkbb7z"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-bit-vec" ,rust-bit-vec-0.4)
-        ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-eui48" ,rust-eui48-0.3)
-        ("rust-fallible-iterator" ,rust-fallible-iterator-0.1)
-        ("rust-geo" ,rust-geo-0.4)
-        ("rust-hex" ,rust-hex-0.2)
-        ("rust-phf" ,rust-phf-0.7)
-        ("rust-postgres-protocol" ,rust-postgres-protocol-0.3)
-        ("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-time" ,rust-time-0.1)
-        ("rust-uuid" ,rust-uuid-0.5))))
-    (home-page "https://github.com/sfackler/rust-postgres")
-    (synopsis
-     "Internal crate used by @code{postgres} and @code{postgres-tokio}")
-    (description
-     "This is an internal crate used by @code{postgres} and
-@code{postgres-tokio}.")
-    (license license:expat)))
-
 (define-public rust-postgres-types-0.2
   (package
     (name "rust-postgres-types")
@@ -45590,27 +48982,6 @@ replacements, adding colorful diffs.")
        (("rust-ansi-term" ,rust-ansi-term-0.9)
         ("rust-difference" ,rust-difference-1))))))
 
-(define-public rust-pretty-assertions-0.2
-  (package
-    (name "rust-pretty-assertions")
-    (version "0.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "pretty-assertions" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1b3nv70i16737w3qkk1q5vqswwnb19znz8r9v2kcg1qyhh3h0l8x"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-difference" ,rust-difference-1))))
-    (home-page "https://github.com/colin-kiegel/rust-pretty-assertions")
-    (synopsis "Colorful diffs for `assert_eq!` and `assert_ne!`")
-    (description "Overwrite `assert_eq!` and `assert_ne!` with drop-in
-replacements, adding colorful diffs.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-pretty-env-logger-0.4
   (package
     (name "rust-pretty-env-logger")
@@ -45704,8 +49075,59 @@ replacements, adding colorful diffs.")
 formatted tables in terminal.")
     (license license:bsd-3)))
 
+(define-public rust-primeorder-0.13
+  (package
+    (name "rust-primeorder")
+    (version "0.13.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "primeorder" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ddz0d0fzzcpdlsj6c6989va8ykf702g3zmf7dszfa0y6rski3fg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-elliptic-curve" ,rust-elliptic-curve-0.13)
+        ("rust-serdect" ,rust-serdect-0.2))))
+    (home-page
+     "https://github.com/RustCrypto/elliptic-curves/tree/master/primeorder")
+    (synopsis
+     "Rust implementation of addition formulas for prime order elliptic curves")
+    (description
+     "This package contains a pure Rust implementation of complete addition
+formulas for prime order elliptic curves (Renes-Costello-Batina 2015).  It
+provides a generic over field elements and curve equation coefficients.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-print-bytes-1
+  (package
+    (name "rust-print-bytes")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "print-bytes" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0a1pc0bs0f3mgy86mazdy81k6iaj8s23ly49mcka4in2pj27lzxl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-windows-sys" ,rust-windows-sys-0.48))
+       #:cargo-development-inputs
+       (("rust-os-str-bytes" ,rust-os-str-bytes-6))))
+    (home-page "https://github.com/dylni/print_bytes")
+    (synopsis "Print bytes as losslessly as possible")
+    (description "This package contains a Rust library to print bytes as
+losslessly as possible.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-print-bytes-0.5
   (package
+    (inherit rust-print-bytes-1)
     (name "rust-print-bytes")
     (version "0.5.0")
     (source
@@ -45715,17 +49137,11 @@ formatted tables in terminal.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "0d4i9y3jx1chi6w97a8rgdbwm9g3cppr53rw53zl6fcaq31qx0b6"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-os-str-bytes" ,rust-os-str-bytes-4))))
-    (home-page "https://github.com/dylni/print_bytes")
-    (synopsis "Print bytes as losslessly as possible")
-    (description "This package contains a Rust library to print bytes as
-losslessly as possible.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-os-str-bytes" ,rust-os-str-bytes-4))))))
 
 (define-public rust-print-bytes-0.4
   (package
@@ -45946,7 +49362,7 @@ in your code.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.52")
+    (version "1.0.64")
     (source
      (origin
        (method url-fetch)
@@ -45954,7 +49370,7 @@ in your code.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0922fkhi689x134yh6l97lnpwgarhbv0vnv3vpnkpk1nx3lil3hx"))))
+         "1nm7qw54jn9n0g1ygkw4f63vj90m241yih6ph3g6zx7irdi3p03q"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
@@ -46136,14 +49552,14 @@ property-based testing and fuzzing.")
 (define-public rust-proptest-1
   (package
     (name "rust-proptest")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "proptest" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1rdhjnf0xma5rmsq04d31n2vq1pgbm42pjc6jn3jsj8qgz09q38y"))))
+        (base32 "0w5s3wwchd3i6m15lsbsk3r3y25d1gwn13m6a185ks8w06cbiw99"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -46159,7 +49575,8 @@ property-based testing and fuzzing.")
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
         ("rust-rusty-fork" ,rust-rusty-fork-0.3)
         ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-x86" ,rust-x86-0.33))
+        ("rust-unarray" ,rust-unarray-0.1)
+        ("rust-x86" ,rust-x86-0.52))
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-1))))
     (home-page "https://altsysrq.github.io/proptest-book/proptest/index.html")
@@ -46229,68 +49646,9 @@ including most strategies and the testing framework itself.")
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-1))))))
 
-(define-public rust-proptest-0.8
-  (package
-    (inherit rust-proptest-0.9)
-    (name "rust-proptest")
-    (version "0.8.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "proptest" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "07qrxwsd72wr1cqs0b5b159lnagjffp0l4s4zriz8jak8w20cvcj"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f      ; 1 doc test fails
-       #:cargo-inputs
-       (("rust-bit-set" ,rust-bit-set-0.5)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-byteorder" ,rust-byteorder-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-quick-error" ,rust-quick-error-1)
-        ("rust-rand" ,rust-rand-0.5)
-        ("rust-regex-syntax" ,rust-regex-syntax-0.6)
-        ("rust-rusty-fork" ,rust-rusty-fork-0.2)
-        ("rust-tempfile" ,rust-tempfile-3))
-       #:cargo-development-inputs
-       (("rust-regex" ,rust-regex-1))))))
-
-(define-public rust-proptest-0.7
-  (package
-    (inherit rust-proptest-0.9)
-    (name "rust-proptest")
-    (version "0.7.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "proptest" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "13giz85f7jkjc8miplzj4zh3fr704c1y1cg0dh218iw2dfkpbwi7"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-bit-set" ,rust-bit-set-0.5)
-        ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-quick-error" ,rust-quick-error-1)
-        ("rust-rand" ,rust-rand-0.4)
-        ("rust-regex-syntax" ,rust-regex-syntax-0.4)
-        ("rust-rusty-fork" ,rust-rusty-fork-0.2)
-        ("rust-tempfile" ,rust-tempfile-3))
-       #:cargo-development-inputs
-       (("rust-regex" ,rust-regex-0.2))))))
-
 (define-public rust-proptest-0.3
   (package
-    (inherit rust-proptest-0.7)
+    (inherit rust-proptest-0.9)
     (name "rust-proptest")
     (version "0.3.4")
     (source
@@ -46523,7 +49881,7 @@ name.")
 (define-public rust-psl-types-2
   (package
     (name "rust-psl-types")
-    (version "2.0.7")
+    (version "2.0.11")
     (source
      (origin
        (method url-fetch)
@@ -46531,9 +49889,8 @@ name.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0kqssn9wgqpl1m26ynv7cvxanfhyjvssi2a3jc2nzpbw7q3ricv6"))))
+         "1b3cz1q07iy744a39smykra2j83nv8vmni6la37wnx3ax17jkjrk"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://github.com/addr-rs/psl-types")
     (synopsis "Common types for the public suffix implementation crates")
     (description "This package provides common types for the public suffix
@@ -46649,7 +50006,7 @@ configuration file and/or environment variables.")
 (define-public rust-publicsuffix-2
   (package
     (name "rust-publicsuffix")
-    (version "2.1.1")
+    (version "2.2.3")
     (source
      (origin
        (method url-fetch)
@@ -46657,16 +50014,17 @@ configuration file and/or environment variables.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1q9kbcqh9pa06p3kq7d3ksbnqjhs88v5wk5qg89wrgkbmpnp4a99"))))
+         "0mvls29klp6xk16n8114sr1llhahy6fy8qi9kbwzf6mflnyw3a4n"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-hashbrown" ,rust-hashbrown-0.11)
-        ("rust-idna" ,rust-idna-0.2)
+     `(#:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.12)
+        ("rust-idna" ,rust-idna-0.3)
         ("rust-psl-types" ,rust-psl-types-2)
-        ("rust-unicase" ,rust-unicase-2))))
+        ("rust-unicase" ,rust-unicase-2))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-rspec" ,rust-rspec-1))))
     (home-page "https://github.com/rushmorem/publicsuffix")
     (synopsis "Domain name parsing and email address validation")
     (description "This package provides robust domain name parsing and RFC
@@ -46696,8 +50054,43 @@ compliant email address validation.")
         ("rust-regex" ,rust-regex-1)
         ("rust-url" ,rust-url-2))))))
 
+(define-public rust-pulldown-cmark-0.9
+  (package
+    (name "rust-pulldown-cmark")
+    (version "0.9.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pulldown-cmark" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "166rhmwk42ffirrzhv7lmsh9f3my6xv1ggmb66fgzv57y3qs58bp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-unicase" ,rust-unicase-2))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-criterion" ,rust-criterion-0.3)
+        ("rust-html5ever" ,rust-html5ever-0.26)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-markup5ever-rcdom" ,rust-markup5ever-rcdom-0.2)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-tendril" ,rust-tendril-0.4))))
+    (home-page "https://github.com/raphlinus/pulldown-cmark")
+    (synopsis "Pull parser for CommonMark")
+    (description
+     "This package provides a pull parser for CommonMark.")
+    (license license:expat)))
+
 (define-public rust-pulldown-cmark-0.8
   (package
+    (inherit rust-pulldown-cmark-0.9)
     (name "rust-pulldown-cmark")
     (version "0.8.0")
     (source
@@ -46709,7 +50102,6 @@ compliant email address validation.")
         (sha256
           (base32
             "1y6wh446g6vravvj70zsadzswyl2b4pyln9ib76m697jjljf1bgz"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:skip-build? #t
         #:cargo-inputs
@@ -46724,12 +50116,7 @@ compliant email address validation.")
          ("rust-markup5ever-rcdom"
           ,rust-markup5ever-rcdom-0.1)
          ("rust-regex" ,rust-regex-1)
-         ("rust-tendril" ,rust-tendril-0.4))))
-    (home-page "https://github.com/raphlinus/pulldown-cmark")
-    (synopsis "Pull parser for CommonMark")
-    (description
-     "This package provides a pull parser for CommonMark.")
-    (license license:expat)))
+         ("rust-tendril" ,rust-tendril-0.4))))))
 
 (define-public rust-pulldown-cmark-0.4
   (package
@@ -46902,17 +50289,17 @@ they were parsed from")
 @code{LC_COLLATE} and @code{LC_CTYPE} are not yet supported.")
     (license license:expat)))
 
-(define-public rust-pyo3-build-config-0.18
+(define-public rust-pyo3-build-config-0.19
   (package
     (name "rust-pyo3-build-config")
-    (version "0.18.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "pyo3-build-config" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zb7sz2w59ba0ipmy7saigyyr9v6pkrzqb8r5gagmp87bncryhvm"))))
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-build-config" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1c4n6dvv79p5mb558nz1cb0ifgxbhw9gjs0j1ff0l61w1d7v4kam"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -46927,6 +50314,24 @@ they were parsed from")
 ecosystem.")
     (license license:asl2.0)))
 
+(define-public rust-pyo3-build-config-0.18
+  (package
+    (inherit rust-pyo3-build-config-0.19)
+    (name "rust-pyo3-build-config")
+    (version "0.18.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pyo3-build-config" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18vrn0hcf18bqjis9xq5nwijpgbfjc6r292906jn3fv1mksldfcw"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-once-cell" ,rust-once-cell-1)
+        ("rust-python3-dll-a" ,rust-python3-dll-a-0.2)
+        ("rust-target-lexicon" ,rust-target-lexicon-0.12))))))
+
 (define-public rust-pyo3-build-config-0.16
   (package
     (name "rust-pyo3-build-config")
@@ -46968,23 +50373,23 @@ ecosystem.")
      `(#:cargo-inputs
        (("rust-once-cell" ,rust-once-cell-1))))))
 
-(define-public rust-pyo3-ffi-0.16
+(define-public rust-pyo3-ffi-0.19
   (package
     (name "rust-pyo3-ffi")
-    (version "0.16.5")
+    (version "0.19.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-ffi" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0avls4q393nmzhb124zg6kp5lj6xzy2f6qx564qa7b614xqs0xf2"))))
+                "193hg837vk0c9b4fxxx4bp2vjm4n4m0sx59ivba0lq78b63xwblj"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.16))))
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.19))))
+    (native-inputs (list python))
     (home-page "https://github.com/pyo3/pyo3")
     (synopsis "Python API bindings for the PyO3 ecosystem")
     (description
@@ -46993,54 +50398,126 @@ ecosystem.")
 
 (define-public rust-pyo3-ffi-0.18
   (package
+    (inherit rust-pyo3-ffi-0.19)
     (name "rust-pyo3-ffi")
-    (version "0.18.1")
+    (version "0.18.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "pyo3-ffi" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1r8fmkfad60wdidsj4h5w16h0n2avn5bcy9nh92gy5vsq2jjd5c3"))))
-    (build-system cargo-build-system)
+                "0p7n9zs9ifrzcnna0lwyhwscyhw45q4x288x5bm1c6c26x9pqkgx"))))
     (arguments
-     `(;; The doctests fail with this error: `core::slice::<impl
-       ;; [T]>::as_mut_ptr` is not yet stable as a const fn
-       #:tests? #false
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.18))))))
+
+(define-public rust-pyo3-ffi-0.16
+  (package
+    (inherit rust-pyo3-ffi-0.19)
+    (name "rust-pyo3-ffi")
+    (version "0.16.5")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-ffi" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0avls4q393nmzhb124zg6kp5lj6xzy2f6qx564qa7b614xqs0xf2"))))
+    (arguments
+     `(#:skip-build? #t
        #:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.18))))
-    (native-inputs (list python))
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.16))))))
+
+(define-public rust-pyo3-log-0.8
+  (package
+    (name "rust-pyo3-log")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-log" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0i0lwnzp0gizijidcddas3888zrzqpa60pmqs3bmibkbb99zcky9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arc-swap" ,rust-arc-swap-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pyo3" ,rust-pyo3-0.16))
+       #:cargo-development-inputs
+       (("rust-pyo3" ,rust-pyo3-0.16)
+        ("rust-syn" ,rust-syn-1))))
+    (inputs (list python))
+    (home-page "https://github.com/vorner/pyo3-log")
+    (synopsis "Logging bridge from pyo3 native extension to python")
+    (description "This package provides a logging bridge from pyo3 native
+extension to python.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-pyo3-macros-backend-0.19
+  (package
+    (name "rust-pyo3-macros-backend")
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-macros-backend" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12zs1vx0h4hainb0lpnw8knd9i9l0g2rdzdnrmb1bnv0n75qrdz0"))))
+    (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/pyo3/pyo3")
-    (synopsis "Python API bindings for the PyO3 ecosystem")
+    (synopsis "Code generation for PyO3")
     (description
-     "This crate provides Rust FFI declarations for Python 3.")
+     "This package provides code generation backends for PyO3.")
     (license license:asl2.0)))
 
+(define-public rust-pyo3-macros-backend-0.18
+  (package
+    (inherit rust-pyo3-macros-backend-0.19)
+    (name "rust-pyo3-macros-backend")
+    (version "0.18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-macros-backend" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "062rxf7cj1dn82yiaws3dmxw5qq9ssccq92jgdc210y4lh4gznlp"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-pyo3-macros-backend-0.16
   (package
+    (inherit rust-pyo3-macros-backend-0.19)
     (name "rust-pyo3-macros-backend")
     (version "0.16.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "pyo3-macros-backend" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1bvzvdx2a6hhliny12n2vy7v7gbsgzanxjckjr1cbxbkizss1gak"))))
-    (build-system cargo-build-system)
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-macros-backend" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bvzvdx2a6hhliny12n2vy7v7gbsgzanxjckjr1cbxbkizss1gak"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.16)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/pyo3/pyo3")
-    (synopsis "Code generation for PyO3")
-    (description
-     "This package provides code generation backends for PyO3.")
-    (license license:asl2.0)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-pyo3-macros-backend-0.15
   (package
@@ -47062,30 +50539,49 @@ ecosystem.")
         ("rust-syn" ,rust-syn-1))))
     (native-inputs (list python))))
 
-(define-public rust-pyo3-macros-0.16
+(define-public rust-pyo3-macros-0.19
   (package
     (name "rust-pyo3-macros")
-    (version "0.16.5")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "pyo3-macros" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "1xwh7sl4n73746q80n5m5afd261zg0kxcqfnlr89ik7vbd4c8kr8"))))
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18n57jpi3292jhzmg5bjr1343zl93gmvxz21m1j5jdfxl73awp4a"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.16)
-         ("rust-quote" ,rust-quote-1)
-         ("rust-syn" ,rust-syn-1))))
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.19)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/pyo3/pyo3")
     (synopsis "Proc macros for PyO3")
     (description
      "This package provides compiler macros for use with PyO3.")
     (license license:asl2.0)))
 
+(define-public rust-pyo3-macros-0.18
+  (package
+    (inherit rust-pyo3-macros-0.19)
+    (name "rust-pyo3-macros")
+    (version "0.18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "13b454p012l1487lbfqkr952qifsl88arldv4m5mmz5kv9arrlx9"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.18)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-pyo3-macros-backend-0.13
   (package
     (inherit rust-pyo3-macros-backend-0.15)
@@ -47105,6 +50601,25 @@ ecosystem.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
+(define-public rust-pyo3-macros-0.16
+  (package
+    (inherit rust-pyo3-macros-0.19)
+    (name "rust-pyo3-macros")
+    (version "0.16.5")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pyo3-macros" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32 "1xwh7sl4n73746q80n5m5afd261zg0kxcqfnlr89ik7vbd4c8kr8"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pyo3-macros-backend" ,rust-pyo3-macros-backend-0.16)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-pyo3-macros-0.15
   (package
     (inherit rust-pyo3-macros-0.16)
@@ -47124,8 +50639,112 @@ ecosystem.")
         ("rust-syn" ,rust-syn-1))))
     (native-inputs (list python))))
 
+(define-public rust-pyo3-0.19
+  (package
+    (name "rust-pyo3")
+    (version "0.19.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0nca4p22jxwcg5dvg907j9m9618bvi8lmb20vvy4nsrhbzh8mf7z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("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-indoc" ,rust-indoc-1)
+        ("rust-inventory" ,rust-inventory-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.9)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.19)
+        ("rust-pyo3-ffi" ,rust-pyo3-ffi-0.19)
+        ("rust-pyo3-macros" ,rust-pyo3-macros-0.19)
+        ("rust-rust-decimal" ,rust-rust-decimal-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-unindent" ,rust-unindent-0.1))
+       #: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)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-send-wrapper" ,rust-send-wrapper-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-widestring" ,rust-widestring-0.5))))
+    (inputs (list python))
+    (home-page "https://github.com/pyo3/pyo3")
+    (synopsis "Rust bindings for the Python interpreter")
+    (description
+     "This package provides Rust bindings for Python, including tools for
+creating native Python extension modules.  Running and interacting with
+Python code from a Rust binary is also supported.")
+    (license license:asl2.0)))
+
+(define-public rust-pyo3-0.18
+  (package
+    (inherit rust-pyo3-0.19)
+    (name "rust-pyo3")
+    (version "0.18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyo3" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "02914yszvcg7qzh1kkrhiz8qqi0p9pbzi1cpmbyk9fii6xdsrcg3"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--"
+         "--skip=test_compile_errors")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("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-indoc" ,rust-indoc-1)
+        ("rust-inventory" ,rust-inventory-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.8)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
+        ("rust-pyo3-build-config" ,rust-pyo3-build-config-0.18)
+        ("rust-pyo3-ffi" ,rust-pyo3-ffi-0.18)
+        ("rust-pyo3-macros" ,rust-pyo3-macros-0.18)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-unindent" ,rust-unindent-0.1))
+       #: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-rustversion" ,rust-rustversion-1)
+        ("rust-send-wrapper" ,rust-send-wrapper-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-trybuild" ,rust-trybuild-1)
+        ("rust-widestring" ,rust-widestring-0.5))))))
+
 (define-public rust-pyo3-0.16
   (package
+    (inherit rust-pyo3-0.19)
     (name "rust-pyo3")
     (version "0.16.5")
     (source
@@ -47135,7 +50754,6 @@ ecosystem.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1p5kjsj3jdw2gnahdjrzljmi93w3nxdp11qq8x3i80b0a3l04qqy"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
@@ -47167,15 +50785,7 @@ ecosystem.")
         ("rust-trybuild" ,rust-trybuild-1)
         ("rust-widestring" ,rust-widestring-0.5))
        ;; FIXME: fails to initialize Python interpreter.
-       #:tests? #f))
-    (inputs (list python))
-    (home-page "https://github.com/pyo3/pyo3")
-    (synopsis "Rust bindings for the Python interpreter")
-    (description
-     "This package provides Rust bindings for Python, including tools for
-creating native Python extension modules.  Running and interacting with
-Python code from a Rust binary is also supported.")
-    (license license:asl2.0)))
+       #:tests? #f))))
 
 (define-public rust-pyo3-macros-0.13
   (package
@@ -47282,6 +50892,61 @@ Python code from a Rust binary is also supported.")
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-trybuild" ,rust-trybuild-1))))))
 
+(define-public rust-pyproject-toml-0.6
+  (package
+    (name "rust-pyproject-toml")
+    (version "0.6.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pyproject-toml" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pywp6ml15jlv9yxfjcvrs3fgd3xnq8fc6a2wcbw9q9iknmgwygf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-pep440-rs" ,rust-pep440-rs-0.3)
+        ("rust-pep508-rs" ,rust-pep508-rs-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-toml" ,rust-toml-0.7))))
+    (home-page "https://github.com/PyO3/pyproject-toml-rs.git")
+    (synopsis "pyproject.toml parser in Rust")
+    (description "This package provides a pyproject.toml parser in Rust.")
+    (license license:expat)))
+
+(define-public rust-python-pkginfo-0.5
+  (package
+    (name "rust-python-pkginfo")
+    (version "0.5.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "python-pkginfo" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03hvc5h10vicfjql9dw46w0xcwq2gjm9sfbfmr13rglz1z68hfg2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bzip2" ,rust-bzip2-0.4)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fs-err" ,rust-fs-err-2)
+        ("rust-mailparse" ,rust-mailparse-0.14)
+        ("rust-rfc2047-decoder" ,rust-rfc2047-decoder-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-xz" ,rust-xz-0.1)
+        ("rust-zip" ,rust-zip-0.6))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/PyO3/python-pkginfo-rs")
+    (synopsis "Parse Python package metadata from sdist and bdists")
+    (description
+     "Parse Python package metadata from sdist and bdists and etc.")
+    (license license:expat)))
+
 (define-public rust-python3-dll-a-0.2
   (package
     (name "rust-python3-dll-a")
@@ -47351,85 +51016,6 @@ for MinGW-w64 and MSVC (cross-)compile targets.")
      "This package provides a collection of approximate quantile algorithms.")
     (license license:expat)))
 
-(define-public rust-quasi-0.32
-  (package
-    (name "rust-quasi")
-    (version "0.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "quasi" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1csqqgz3aw85q570ywmhb34r3sqgi1sprf8xadfwzlfnai45ri0q"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-syntex-errors" ,rust-syntex-errors-0.58)
-        ("rust-syntex-syntax" ,rust-syntex-syntax-0.58))))
-    (home-page "https://github.com/serde-rs/quasi")
-    (synopsis "Quasi-quoting macro system")
-    (description
-     "This package provides a quasi-quoting macro system.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-quasi-codegen-0.32
-  (package
-    (name "rust-quasi-codegen")
-    (version "0.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "quasi_codegen" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1m3nwzn5ip8y86cyfk6hdnbhiinsk2faag7l0cc4q11wl9gy5fai"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-aster" ,rust-aster-0.41)
-        ("rust-clippy" ,rust-clippy-0.0)
-        ("rust-syntex" ,rust-syntex-0.58)
-        ("rust-syntex-errors" ,rust-syntex-errors-0.58)
-        ("rust-syntex-syntax" ,rust-syntex-syntax-0.58))))
-    (home-page "https://github.com/serde-rs/quasi")
-    (synopsis "Quasi-quoting macro system")
-    (description "This package provides a quasi-quoting macro system.")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-quasi-macros-0.32
-  (package
-    (name "rust-quasi-macros")
-    (version "0.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "quasi_macros" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1p825s96wa9xcc01pm5f4nlb01nx0pah50qnwkbncrw1q9xwiki9"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-quasi-codegen" ,rust-quasi-codegen-0.32))
-       #:cargo-development-inputs
-       (("rust-aster" ,rust-aster-0.41)
-        ("rust-quasi" ,rust-quasi-0.32))))
-    (home-page "https://github.com/serde-rs/quasi")
-    (synopsis "Quasi-quoting macro system")
-    (description "This package provides a quasi-quoting macro system.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-quick-error-2
   (package
     (name "rust-quick-error")
@@ -47464,8 +51050,42 @@ to write.")
          (base32
           "1q6za3v78hsspisc197bg3g7rpc989qycy8ypr8ap8igv10ikl51"))))))
 
+(define-public rust-quick-xml-0.27
+  (package
+    (name "rust-quick-xml")
+    (version "0.27.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "quick-xml" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hacs71afvppq6d7x6b8d4liv0rcqhsf9mrcyrb8lxnxazq57h7z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-document-features" ,rust-document-features-0.2)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-value" ,rust-serde-value-0.7)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4))))
+    (home-page "https://github.com/tafia/quick-xml")
+    (synopsis "High performance xml reader and writer")
+    (description
+     "This package provides a high performance XML reader and writer.")
+    (license license:expat)))
+
 (define-public rust-quick-xml-0.22
   (package
+    (inherit rust-quick-xml-0.27)
     (name "rust-quick-xml")
     (version "0.22.0")
     (source
@@ -47475,7 +51095,6 @@ to write.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0ssk30ymrd1724g36qjnnql225i6p31jm09cb46sval2hd6g2cw5"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -47485,12 +51104,7 @@ to write.")
        #:cargo-development-inputs
        (("rust-regex" ,rust-regex-1)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-value" ,rust-serde-value-0.7))))
-    (home-page "https://github.com/tafia/quick-xml")
-    (synopsis "High performance XML reader and writer")
-    (description
-     "This package provides a high performance XML reader and writer.")
-    (license license:expat)))
+        ("rust-serde-value" ,rust-serde-value-0.7))))))
 
 (define-public rust-quick-xml-0.21
   (package
@@ -47954,14 +51568,14 @@ transport protocol in Rust.")
 (define-public rust-quote-1
   (package
     (name "rust-quote")
-    (version "1.0.25")
+    (version "1.0.29")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "quote" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "117y035vad1a67md2r9fk9663i5cvbax1ykc998f3hr9hwhfh22k"))))
+                "019ij5fwp56ydww6zr46dhmzsf078qkdq9vz6mw1cri7mgl1ac2p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -48027,16 +51641,15 @@ transport protocol in Rust.")
 (define-public rust-quoted-printable-0.4
   (package
     (name "rust-quoted-printable")
-    (version "0.4.3")
+    (version "0.4.8")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "quoted_printable" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1ig9b5nr2i2f72smsjkkx8pwpxp9vz2090dhi7n4jdlj15mjaf0j"))))
+        (base32 "0jcyi10gh2xzjvxls8r58gwc9yavw3iighkgnb1jwrjij8hncf2s"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
     (home-page "https://github.com/staktrace/quoted-printable")
     (synopsis "Simple encoder/decoder for quoted-printable data")
     (description
@@ -48044,10 +51657,10 @@ transport protocol in Rust.")
 data.")
     (license license:bsd-0)))
 
-(define-public rust-r2d2
+(define-public rust-r2d2-0.8
   (package
     (name "rust-r2d2")
-    (version "0.8.9")
+    (version "0.8.10")
     (source
      (origin
        (method url-fetch)
@@ -48055,12 +51668,12 @@ data.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0vxjgh83bss63mkx308p16iwl33s80c781p422f3r5w0p315np2l"))))
+         "14qw32y4m564xb1f5ya8ii7dwqyknvk8bsx2r0lljlmn7zxqbpji"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
-        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
         ("rust-scheduled-thread-pool" ,rust-scheduled-thread-pool-0.2))))
     (home-page "https://github.com/sfackler/r2d2")
     (synopsis "Generic connection pool")
@@ -49083,8 +52696,43 @@ random generic types.")
     (license
      (list license:zlib license:asl2.0 license:expat))))
 
+(define-public rust-raw-cpuid-10
+  (package
+    (name "rust-raw-cpuid")
+    (version "10.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "raw-cpuid" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ckkg47m8wbdinqg4z4dx7ipi3d7fjxdnrwzikx70x46rdwpcabc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-clap" ,rust-clap-3)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-termimad" ,rust-termimad-0.20))
+       #:cargo-development-inputs
+       (("rust-core-affinity" ,rust-core-affinity-0.5)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-phf" ,rust-phf-0.11)
+        ("rust-rustversion" ,rust-rustversion-1))))
+    (home-page "https://github.com/gz/rust-cpuid")
+    (synopsis "Library to parse the x86 CPUID instruction, written in Rust")
+    (description
+     "This package provides a library to parse the x86 CPUID instruction,
+written in Rust with no external dependencies.  The implementation closely
+resembles the Intel CPUID manual description.  The library does only depend on
+libcore.")
+    (license license:expat)))
+
 (define-public rust-raw-cpuid-8
   (package
+    (inherit rust-raw-cpuid-10)
     (name "rust-raw-cpuid")
     (version "8.1.2")
     (source
@@ -49094,7 +52742,6 @@ random generic types.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0wry932lx7gqyxn7w54mg61b7hiwywyir754jhfxiws3pnfpvpqz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -49105,15 +52752,7 @@ random generic types.")
        #:cargo-development-inputs
        (("rust-core-affinity" ,rust-core-affinity-0.5)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-rustversion" ,rust-rustversion-0.1))))
-    (home-page "https://github.com/gz/rust-cpuid")
-    (synopsis "Library to parse the x86 CPUID instruction, written in Rust")
-    (description
-     "This package provides a library to parse the x86 CPUID instruction,
-written in Rust with no external dependencies.  The implementation closely
-resembles the Intel CPUID manual description.  The library does only depend on
-libcore.")
-    (license license:expat)))
+        ("rust-rustversion" ,rust-rustversion-0.1))))))
 
 (define-public rust-rawpointer-0.2
   (package
@@ -49283,8 +52922,51 @@ Rust.")
     (description "This package provides core APIs for Rayon.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-rcgen-0.11
+  (package
+    (name "rust-rcgen")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rcgen" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xl91nlp4ld00gl01pfv00a3agaip980wwc7r6184kfd1p0gnm29"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Don't use a vendored botan.
+                  (substitute* "Cargo.toml"
+                    ((".*vendored.*") ""))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-pem" ,rust-pem-2)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-x509-parser" ,rust-x509-parser-0.15)
+        ("rust-yasna" ,rust-yasna-0.5)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-botan" ,rust-botan-0.10)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rsa" ,rust-rsa-0.9)
+        ("rust-webpki" ,rust-webpki-0.22)
+        ("rust-x509-parser" ,rust-x509-parser-0.15))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list botan openssl perl))
+    (home-page "https://github.com/est31/rcgen")
+    (synopsis "Rust X.509 certificate generator")
+    (description "Rust X.509 certificate generator")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rcgen-0.8
   (package
+    (inherit rust-rcgen-0.11)
     (name "rust-rcgen")
     (version "0.8.14")
     (source (origin
@@ -49299,7 +52981,6 @@ Rust.")
                   ;; Don't use a vendored botan.
                   (substitute* "Cargo.toml"
                     ((".*vendored.*") ""))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
@@ -49314,15 +52995,7 @@ Rust.")
         ("rust-rand" ,rust-rand-0.8)
         ("rust-rsa" ,rust-rsa-0.5)
         ("rust-webpki" ,rust-webpki-0.22)
-        ("rust-x509-parser" ,rust-x509-parser-0.12))))
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list botan openssl))
-    (home-page "https://github.com/est31/rcgen")
-    (synopsis "Rust X.509 certificate generator")
-    (description "Rust X.509 certificate generator")
-    (license (list license:expat license:asl2.0))))
+        ("rust-x509-parser" ,rust-x509-parser-0.12))))))
 
 (define-public rust-rctree-0.4
   (package
@@ -49557,7 +53230,7 @@ initial value.")
 (define-public rust-ref-cast-1
   (package
     (name "rust-ref-cast")
-    (version "1.0.2")
+    (version "1.0.18")
     (source
      (origin
        (method url-fetch)
@@ -49566,13 +53239,15 @@ initial value.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "08r6qz7228k55nlyl5v7ykdzxrasnawgzmb1jrbfbnkx2s3ifp3l"))))
+         "0sxzy3f0zmclsmi1z17n16xbjbp99d5c6nh7592yy6f3fya82h8n"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f          ; Doesn't always interact well with the test crate.
+       #:cargo-inputs
        (("rust-ref-cast-impl" ,rust-ref-cast-impl-1))
        #:cargo-development-inputs
-       (("rust-rustversion" ,rust-rustversion-1)
+       (("rust-ref-cast-test-suite" ,rust-ref-cast-test-suite-0.0.0)
+        ("rust-rustversion" ,rust-rustversion-1)
         ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://github.com/dtolnay/ref-cast")
     (synopsis "Safely cast &T to &U")
@@ -49609,7 +53284,7 @@ initial value.")
 (define-public rust-ref-cast-impl-1
   (package
     (name "rust-ref-cast-impl")
-    (version "1.0.2")
+    (version "1.0.18")
     (source
      (origin
        (method url-fetch)
@@ -49618,13 +53293,14 @@ initial value.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0i1i3an8si070aqg2mvz6yqc6y2pl9zhd6dd2piz17l7mdsv88bx"))))
+         "05kjg9g9akzb0yns255a5zvdkbwk0wa9kp1cf8k6h25nv7d57gv8"))))
     (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))))
+        ("rust-syn" ,rust-syn-2))
+       #:cargo-development-inputs (("rust-ref-cast" ,rust-ref-cast-1))))
     (home-page "https://github.com/dtolnay/ref-cast")
     (synopsis "Derive implementation for @code{ref_cast::RefCast}")
     (description
@@ -49646,6 +53322,24 @@ initial value.")
         (base32
          "0av43xxjlinfqklb67rpj217cmaxfjsf8151gs0hbs4hnr5664ck"))))))
 
+(define-public rust-ref-cast-test-suite-0.0.0
+  (package
+    (name "rust-ref-cast-test-suite")
+    (version "0.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ref-cast-test-suite" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cx15bhs8zq99qidrhjmjhc5krlfclcaq0y5c68pq48vlds72idl"))))
+    (build-system cargo-build-system)
+    (arguments (list #:skip-build? #t))
+    (home-page "https://github.com/dtolnay/ref-cast")
+    (synopsis "Test suite of the ref-cast crate")
+    (description "Test suite of the ref-cast crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-refpool-0.4
   (package
     (name "rust-refpool")
@@ -49673,24 +53367,28 @@ memory to speed up reallocation.")
 (define-public rust-regex-1
   (package
     (name "rust-regex")
-    (version "1.7.1")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "regex" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0czp6hxg02lm02hvlhp9xjkd65cjcagw119crnaznwd5idsabaj8"))))
+        (base32 "0xdmrvs8fy7yw2bdk76mjbhzqibms7g4ljg468jwzxr0qa7ydsmj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-aho-corasick" ,rust-aho-corasick-0.7)
+       (("rust-aho-corasick" ,rust-aho-corasick-1)
         ("rust-memchr" ,rust-memchr-2)
-        ("rust-regex-syntax" ,rust-regex-syntax-0.6))
+        ("rust-regex-automata" ,rust-regex-automata-0.3)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.7))
        #:cargo-development-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-quickcheck" ,rust-quickcheck-1)
-        ("rust-rand" ,rust-rand-0.8))))
+        ("rust-regex-test" ,rust-regex-test-0.1))))
     (home-page "https://github.com/rust-lang/regex")
     (synopsis "Regular expressions for Rust")
     (description
@@ -49754,20 +53452,50 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-quickcheck" ,rust-quickcheck-0.2)
         ("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-regex-automata-0.3
+  (package
+    (name "rust-regex-automata")
+    (version "0.3.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "regex-automata" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "041kj8fnyh3hv8sqmqq1am6agb1ckjxj6swjfcp8qih7vl84qd9r"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
+       (("rust-aho-corasick" ,rust-aho-corasick-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-regex-syntax" ,rust-regex-syntax-0.7))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-bstr" ,rust-bstr-1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-regex-test" ,rust-regex-test-0.1))))
+    (home-page "https://github.com/rust-lang/regex/tree/master/regex-automata")
+    (synopsis "Automata construction and matching using regular expressions")
+    (description
+     "Automata construction and matching using regular expressions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-regex-automata-0.1
   (package
+    (inherit rust-regex-automata-0.3)
     (name "rust-regex-automata")
     (version "0.1.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "regex-automata" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1r3aqa9c0s9sfrmd2w0mli16ldjzbar0rzb1x7srfjkasrqys7df"))))
-    (build-system cargo-build-system)
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "regex-automata" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1r3aqa9c0s9sfrmd2w0mli16ldjzbar0rzb1x7srfjkasrqys7df"))))
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -49781,16 +53509,30 @@ uses finite automata and guarantees linear time matching on all inputs.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-toml" ,rust-toml-0.5)))) ; 0.4
-    (home-page "https://github.com/BurntSushi/regex-automata")
-    (synopsis
-     "Automata construction and matching using regular expressions")
-    (description
-     "Automata construction and matching using regular expressions.")
-    (license (list license:expat license:unlicense))))
+        ("rust-toml" ,rust-toml-0.5)))))) ; 0.4
+
+(define-public rust-regex-syntax-0.7
+  (package
+    (name "rust-regex-syntax")
+    (version "0.7.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "regex-syntax" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1qjczlc2w92kamn9ipjdr5pjql0jnccahpi9l3r6wp0rnsjr5sp5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-arbitrary" ,rust-arbitrary-1))))
+    (home-page "https://github.com/rust-lang/regex/tree/master/regex-syntax")
+    (synopsis "Regular expression parser")
+    (description "This package provides a regular expression parser.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-regex-syntax-0.6
   (package
+    (inherit rust-regex-syntax-0.7)
     (name "rust-regex-syntax")
     (version "0.6.27")
     (source
@@ -49800,12 +53542,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0i32nnvyzzkvz1rqp2qyfxrp2170859z8ck37jd63c8irrrppy53"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/rust-lang/regex")
-    (synopsis "Regular expression parser")
-    (description
-     "This package provides a regular expression parser.")
-    (license (list license:expat license:asl2.0))))
+    (arguments '())))
 
 (define-public rust-regex-syntax-0.5
   (package
@@ -49863,6 +53600,31 @@ uses finite automata and guarantees linear time matching on all inputs.")
        (("rust-quickcheck" ,rust-quickcheck-0.2)
         ("rust-rand" ,rust-rand-0.3))))))
 
+(define-public rust-regex-test-0.1
+  (package
+    (name "rust-regex-test")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "regex-test" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "012nj2qjkxlv5zmnk53hc5a95kdsz8ss469s0a6fp5xdqbpi9f8l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-bstr" ,rust-bstr-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-toml" ,rust-toml-0.7))))
+    (home-page "https://github.com/rust-lang/regex/tree/master/regex-test")
+    (synopsis "Infrastructure for testing regexes")
+    (description
+     "Infrastructure for testing regexes.  You probably don't want to use this
+crate unless you're working on a regex implementation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-region-3
   (package
     (name "rust-region")
@@ -49933,8 +53695,48 @@ uses finite automata and guarantees linear time matching on all inputs.")
     (description "This package provides portable, relative paths for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-remove-dir-all-0.8
+  (package
+    (name "rust-remove-dir-all")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "remove-dir-all" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ay0mi06ak1n5gw3yjgp0hvzl59nj31ahxpdqvczw5qrvkx5r293"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-aligned" ,rust-aligned-0.4)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-cvt" ,rust-cvt-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-fs-at" ,rust-fs-at-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-normpath" ,rust-normpath-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-windows-sys" ,rust-windows-sys-0.45))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-log" ,rust-test-log-0.2))))
+    (home-page "https://github.com/XAMPPRocky/remove_dir_all.git")
+    (synopsis "Implementation of remove_dir_all for Windows")
+    (description
+     "This package provides a safe, reliable implementation of
+@code{remove_dir_all} for Windows")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-remove-dir-all-0.5
   (package
+    (inherit rust-remove-dir-all-0.8)
     (name "rust-remove-dir-all")
     (version "0.5.3")
     (source
@@ -49945,19 +53747,11 @@ uses finite automata and guarantees linear time matching on all inputs.")
         (sha256
          (base32
           "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-doc-comment" ,rust-doc-comment-0.3))))
-    (home-page "https://github.com/XAMPPRocky/remove_dir_all")
-    (synopsis "Implementation of remove_dir_all for Windows")
-    (description
-     "This package provides a safe, reliable implementation of
-@code{remove_dir_all} for Windows")
-    (license (list license:asl2.0
-                   license:expat))))
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))))
 
 (define-public rust-rend-0.3
   (package
@@ -50263,6 +54057,59 @@ Rust.")
 functionality as retain but gives mutable borrow to the predicate.")
     (license license:expat)))
 
+(define-public rust-rfc2047-decoder-0.2
+  (package
+    (name "rust-rfc2047-decoder")
+    (version "0.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rfc2047-decoder" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0bpc2k7dp3nxc3pnsvz6zd3vc58j8q29nzibn4q3wz49a974pz31"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-charset" ,rust-charset-0.1)
+        ("rust-chumsky" ,rust-chumsky-0.9)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-quoted-printable" ,rust-quoted-printable-0.4)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/soywod/rfc2047-decoder")
+    (synopsis "Rust library for decoding RFC 2047 MIME Message Headers")
+    (description "This package provides a rust library for decoding RFC 2047
+MIME Message Headers.")
+    (license license:expat)))
+
+(define-public rust-rfc6979-0.4
+  (package
+    (name "rust-rfc6979")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rfc6979" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1chw95jgcfrysyzsq6a10b1j5qb7bagkx8h0wda4lv25in02mpgq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hmac" ,rust-hmac-0.12)
+        ("rust-subtle" ,rust-subtle-2))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-sha2" ,rust-sha2-0.10))))
+    (home-page "https://github.com/RustCrypto/signatures/tree/master/rfc6979")
+    (synopsis "Pure Rust implementation of RFC6979")
+    (description
+     "This package provides a pure Rust implementation of RFC6979: Deterministic
+Usage of the @dfn{Digital Signature Algorithm} (DSA) and @dfn{Elliptic Curve
+Digital Signature Algorithm} (ECDSA).")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ring-0.16
   (package
     (name "rust-ring")
@@ -50274,18 +54121,24 @@ functionality as retain but gives mutable borrow to the predicate.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"))
+       (patches (search-patches "rust-ring-0.16-missing-files.patch"
+                                "rust-ring-0.16-test-files.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            (delete-file-recursively "pregenerated")
+           ;; Regenerating the curve25519_tables requires python2 and clang-format.
+           ;; Luckily we've added the script back in the patch.
+           ;; Rust doesn't provide a clear way to regenerate files located in
+           ;; source directories, so for now we don't remove the file here.
+           ;(delete-file "crypto/curve25519/curve25519_tables.h")
            ;; Pretend this isn't a relase tarball.
            (with-output-to-file ".git"
              (lambda _
                 (format #t "")))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #false                  ;missing file
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-spin" ,rust-spin-0.5)
@@ -50296,9 +54149,17 @@ functionality as retain but gives mutable borrow to the predicate.")
         ("rust-cc" ,rust-cc-1))
        #:cargo-development-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
+        ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'generate-curve25519-tables
+           (lambda _
+             (with-directory-excursion "crypto/curve25519"
+               (with-output-to-file "curve25519_tables.h"
+                 (lambda _
+                   (invoke "python" "make_curve25519_tables.py")))))))))
     (native-inputs
-     (list perl))
+     (list clang perl python-2))
     (home-page "https://github.com/briansmith/ring")
     (synopsis "Safe, fast, small crypto using Rust")
     (description "This package provided safe, fast, small crypto using Rust.")
@@ -50397,6 +54258,29 @@ functionality as retain but gives mutable borrow to the predicate.")
                  (lambda _
                    (invoke "python" "make_curve25519_tables.py")))))))))))
 
+(define-public rust-ripemd-0.1
+  (package
+    (name "rust-ripemd")
+    (version "0.1.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "ripemd" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "17xh5yl9wjjj2v18rh3m8ajlmdjg1yj13l6r9rj3mnbss4i444mx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-digest" ,rust-digest-0.10))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/hashes")
+    (synopsis "Pure Rust implementation of the RIPEMD hash functions")
+    (description "Pure Rust implementation of the RIPEMD hash functions")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-riscv-0.7
   (package
     (name "rust-riscv")
@@ -50564,6 +54448,30 @@ MessagePack format.")
     (description "This crate provides Serde bindings for RMP.")
     (license license:expat)))
 
+(define-public rust-roadmap-0.5
+  (package
+    (name "rust-roadmap")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "roadmap" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d0j88wn59sfxwh2k4f609w56n6bmcgf54m0jk9rwc3vci5f8ad1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-textwrap" ,rust-textwrap-0.15)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://gitlab.com/larswirzenius/roadmap")
+    (synopsis "Model a project roadmap as a directed acyclic graph")
+    (description "Model a project roadmap as a directed acyclic graph.")
+    (license license:expat-0)))
+
 (define-public rust-rocket-0.4
   (package
     (name "rust-rocket")
@@ -50662,6 +54570,27 @@ and speed.")
 responses, and headers for the Rocket web framework.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-roff-0.2
+  (package
+    (name "rust-roff")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "roff" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "05j324x84xkgp848smhnknnlpl70833xb9lalqg4n2ga6k8dhcxq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-duct" ,rust-duct-0.13)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1))))
+    (home-page "https://github.com/rust-cli/roff-rs")
+    (synopsis "ROFF (man page format) generation library")
+    (description "ROFF (man page format) generation library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-romio-0.3
   (package
     (name "rust-romio")
@@ -50847,8 +54776,57 @@ can handle huge texts and memory-incoherent edits with ease.")
      "This package provides a library for generic lossless syntax trees.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rsa-0.9
+  (package
+    (name "rust-rsa")
+    (version "0.9.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rsa" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1a762gzj9xl14n8gmclsz8kcwp958nd1k05nnhqsdh93gns3pd3a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-const-oid" ,rust-const-oid-0.9)
+        ("rust-digest" ,rust-digest-0.10)
+        ("rust-num-bigint-dig" ,rust-num-bigint-dig-0.8)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-pkcs1" ,rust-pkcs1-0.7)
+        ("rust-pkcs8" ,rust-pkcs8-0.10)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-signature" ,rust-signature-2)
+        ("rust-spki" ,rust-spki-0.7)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-base64ct" ,rust-base64ct-1)
+        ("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-chacha" ,rust-rand-chacha-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-sha3" ,rust-sha3-0.10))))
+    (home-page "https://github.com/RustCrypto/RSA")
+    (synopsis "Pure Rust RSA implementation")
+    (description "This package provides a pure Rust RSA implementation.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rsa-0.5
   (package
+    (inherit rust-rsa-0.9)
     (name "rust-rsa")
     (version "0.5.0")
     (source
@@ -50858,7 +54836,6 @@ can handle huge texts and memory-incoherent edits with ease.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "039676a4mj0875phdi7vc0bd37hv84dh0dql6fmk8dl2w81jcp70"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-byteorder" ,rust-byteorder-1)
@@ -50889,11 +54866,7 @@ can handle huge texts and memory-incoherent edits with ease.")
            (lambda _
              (substitute*
                  "Cargo.toml"
-               (("version = \">=1, <1.5\"") "version = \"^1\"")))))))
-    (home-page "https://github.com/RustCrypto/RSA")
-    (synopsis "Pure Rust RSA implementation")
-    (description "This package provides a pure Rust RSA implementation.")
-    (license (list license:expat license:asl2.0))))
+               (("version = \">=1, <1.5\"") "version = \"^1\"")))))))))
 
 (define-public rust-rspec-1
   (package
@@ -51173,28 +55146,64 @@ scenario you want to test.")
 floating-point, and complex numbers based on GMP, MPFR and MPC.")
     (license license:lgpl3+)))
 
+(define-public rust-rpassword-7
+  (package
+    (name "rust-rpassword")
+    (version "7.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rpassword" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "08l3jbjwpsj6awm4lacm2bcj3cn9jhy4j6q21n68k49lmdiwyy36"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rtoolbox" ,rust-rtoolbox-0.0.1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/conradkleinespel/rpassword")
+    (synopsis "Read passwords in Rust console applications")
+    (description "This package provides a crate for reading passwords in
+console applications.")
+    (license license:asl2.0)))
+
+(define-public rust-rpassword-6
+  (package
+    (inherit rust-rpassword-7)
+    (name "rust-rpassword")
+    (version "6.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rpassword" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0mnrpxvai78mn9wqkqx8wp1gd280jjhn29ixd1dm84l6i2hrkw1b"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-winapi" ,rust-winapi-0.3))))))
+
 (define-public rust-rpassword-5
   (package
+    (inherit rust-rpassword-6)
     (name "rust-rpassword")
-    (version "5.0.0")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rpassword" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1j96nc3dmqhxwb4ql50r5xjs0imwr2x6mrj02mj9i7grq1zj6mfp"))))
-    (build-system cargo-build-system)
+        (base32 "1yry1kmgjcb4qd5wak91203493x42ak3dz9hy1c0r9kyib7kdjgz"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
-        ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/conradkleinespel/rpassword")
-    (synopsis "Read passwords in Rust console applications")
-    (description "This package provides a crate for reading passwords in
-console applications.")
-  (license license:asl2.0)))
+        ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-rpassword-4
   (package
@@ -51314,8 +55323,49 @@ please consider using @code{async-std} or @code{tokio}.")
     (description "This package provides traits to implement custom Runtimes.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-rusqlite-0.29
+  (package
+    (name "rust-rusqlite")
+    (version "0.29.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rusqlite" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1wj12rmwa8g0bfhsk307fl84k0xcw8ji872xx3k447apdl1rv6sl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-2)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
+        ("rust-fallible-streaming-iterator" ,rust-fallible-streaming-iterator-0.1)
+        ("rust-hashlink" ,rust-hashlink-0.8)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.26)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-1))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-unicase" ,rust-unicase-2)
+        ("rust-uuid" ,rust-uuid-1))))
+    (inputs (list sqlite))
+    (home-page "https://github.com/rusqlite/rusqlite")
+    (synopsis "Wrapper for SQLite")
+    (description "This crate provides a wrapper for SQLite.")
+    (license license:expat)))
+
 (define-public rust-rusqlite-0.26
   (package
+    (inherit rust-rusqlite-0.29)
     (name "rust-rusqlite")
     (version "0.26.1")
     (source
@@ -51325,7 +55375,6 @@ please consider using @code{async-std} or @code{tokio}.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "19sh4nnw1i7a6wacqllz20qpqpdj96jsg3dzaq61cwmd3ywv10la"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -51344,11 +55393,7 @@ please consider using @code{async-std} or @code{tokio}.")
         ("rust-smallvec" ,rust-smallvec-1)
         ("rust-time" ,rust-time-0.3)
         ("rust-url" ,rust-url-2)
-        ("rust-uuid" ,rust-uuid-0.8))))
-    (home-page "https://github.com/rusqlite/rusqlite")
-    (synopsis "Wrapper for SQLite")
-    (description "This crate provides a wrapper for SQLite.")
-    (license license:expat)))
+        ("rust-uuid" ,rust-uuid-0.8))))))
 
 (define-public rust-rust-htslib-0.38
   (package
@@ -51479,7 +55524,7 @@ hashing function.")
 (define-public rust-rust-decimal-1
   (package
     (name "rust-rust-decimal")
-    (version "1.14.3")
+    (version "1.17.0")
     (source
       (origin
         (method url-fetch)
@@ -51488,7 +55533,7 @@ hashing function.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "10k58hf367626d4akl7ifyk5qwqphfs5x6z1yay22pkyc6w7q4h1"))))
+          "1s3k05vpq9ba8mj1wx1fj52kdbq1n8y88zvkrbf0wh0zdbwpadrm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f          ; not all test files included.
@@ -51506,6 +55551,7 @@ hashing function.")
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1)
         ("rust-bytes" ,rust-bytes-1)
+        ("rust-criterion" ,rust-criterion-0.3)
         ("rust-csv" ,rust-csv-1)
         ("rust-futures" ,rust-futures-0.3)
         ("rust-serde-derive" ,rust-serde-derive-1)
@@ -51518,27 +55564,6 @@ hashing function.")
 suitable for financial calculations.")
     (license license:expat)))
 
-(define-public rust-rust-decimal-0.10
-  (package
-    (inherit rust-rust-decimal-1)
-    (name "rust-rust-decimal")
-    (version "0.10.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rust_decimal" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1h80xz88f07ifb4i0mfh9j9p67afiy4xm6xswkk9gnf1spirag59"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-num" ,rust-num-0.2)
-        ("rust-postgres" ,rust-postgres-0.15)
-        ("rust-serde" ,rust-serde-1))))))
-
 (define-public rust-rust-embed-5
   (package
     (name "rust-rust-embed")
@@ -51643,6 +55668,23 @@ the file-system during development.")
      "This package provides a library for parsing @file{.eml} files.")
     (license license:asl2.0)))
 
+(define-public rust-equivalent-1
+  (package
+    (name "rust-equivalent")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "equivalent" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1malmx5f4lkfvqasz319lq6gb3ddg19yzf9s8cykfsgzdmyq0hsl"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/cuviper/equivalent")
+    (synopsis "Traits for key comparison in maps")
+    (description "Traits for key comparison in maps.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-rust-hawktracer-0.7
   (package
     (name "rust-rust-hawktracer")
@@ -51813,57 +55855,6 @@ the file-system during development.")
 library.")
     (license license:expat)))
 
-(define-public rust-rustc-ap-graphviz-654
-  (package
-    (name "rust-rustc-ap-graphviz")
-    (version "654.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustc-ap-graphviz" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1z8rs3k9zcd1i2clrnzgvfaq1q05m02wjcyy3d9zk9qln03vp43l"))))
-    (build-system cargo-build-system)
-    (home-page "https://github.com/alexcrichton/rustc-auto-publish")
-    (synopsis
-     "Automatically published versions of the graphviz crate used in rustc")
-    (description
-     "Use the graphviz library used in the Rust compiler with this crate.
-It is automatically published using the compiler repository at
-@url{https://www.github.com/rust-lang/rust}")
-    (license (list license:expat license:asl2.0))))
-
-(define-public rust-rustc-ap-rustc-index-654
-  (package
-    (name "rust-rustc-ap-rustc-index")
-    (version "654.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustc-ap-rustc_index" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0qqnvdn3zbwrn884ziw0nrmi1wqmr9yp8js7whw6y8nzdhz0q8ij"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-rustc-ap-serialize" ,rust-rustc-ap-serialize-654)
-        ("rust-smallvec" ,rust-smallvec-1))))
-    (home-page  "https://github.com/alexcrichton/rustc-auto-publish")
-    (synopsis
-     "Automatically published version of the types of indexes in rustc")
-    (description
-     "Use the types of index used in the Rust compiler with this crate.
-It is automatically published using the compiler repository at
-@url{https://www.github.com/rust-lang/rust}")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-rustc-ap-rustc-lexer-725
   (package
     (name "rust-rustc-ap-rustc-lexer")
@@ -51892,34 +55883,6 @@ It is automatically published using the compiler repository at
 @url{https://www.github.com/rust-lang/rust}.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rustc-ap-serialize-654
-  (package
-    (name "rust-rustc-ap-serialize")
-    (version "654.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustc-ap-serialize" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1vwfa3q4f9k0nfryr53jnwmf8vhaq7ijbgw8449nx467dr98yvkm"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-1)
-        ("rust-smallvec" ,rust-smallvec-1))))
-    (home-page "https://github.com/alexcrichton/rustc-auto-publish")
-    (synopsis
-     "Automatically published versions of the serialize crate used in rustc")
-    (description
-     "Use the serialize library used in the Rust compiler with this crate.
-It is automatically published using the compiler repository at
-@url{https://www.github.com/rust-lang/rust}")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-rustc-demangle-0.1
   (package
     (name "rust-rustc-demangle")
@@ -51985,30 +55948,27 @@ It is automatically published using the compiler repository at
 hex conversion traits.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rustc-rayon-0.4
+(define-public rust-rustc-rayon-0.5
   (package
     (name "rust-rustc-rayon")
-    (version "0.4.0")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rustc-rayon" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ykjr1i56jmi8ykkcr7x555wnxki1vsi703mz6n2x7k0naqg0y8s"))))
+                "040p2am25g3isnpsixrcrjrv70yz2lzkbq8gpv76xjipi3fam0gb"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f                      ;XXX can not find rayon?
-       #:cargo-inputs
-       (("rust-autocfg" ,rust-autocfg-1)
-        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-either" ,rust-either-1)
-        ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.4))
+     `(#:cargo-inputs
+       (("rust-either" ,rust-either-1)
+        ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.5))
        #:cargo-development-inputs
-       (("rust-docopt" ,rust-docopt-1))))
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3))))
     (home-page "https://github.com/rust-lang/rustc-rayon")
-    (synopsis
-     "Simple work-stealing parallelism for Rust - fork for rustc")
+    (synopsis "Simple work-stealing parallelism for Rust - fork for rustc")
     (description
      "Rustc-rayon is a fork of the Rayon crate.  It adds a few \"in progress\"
 features that rustc is using, mostly around deadlock detection.  These features
@@ -52017,25 +55977,51 @@ way into rayon proper at some point.  In general, if you are not rustc, you
 should be using the real rayon crate, not rustc-rayon.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-rustc-rayon-core-0.4
+(define-public rust-rustc-rayon-0.4
+  (package
+    (inherit rust-rustc-rayon-0.5)
+    (name "rust-rustc-rayon")
+    (version "0.4.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustc-rayon" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ykjr1i56jmi8ykkcr7x555wnxki1vsi703mz6n2x7k0naqg0y8s"))))
+    (arguments
+     `(#:tests? #f                      ;XXX can not find rayon?
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
+        ("rust-either" ,rust-either-1)
+        ("rust-rustc-rayon-core" ,rust-rustc-rayon-core-0.4))
+       #:cargo-development-inputs
+       (("rust-docopt" ,rust-docopt-1))))))
+
+(define-public rust-rustc-rayon-core-0.5
   (package
     (name "rust-rustc-rayon-core")
-    (version "0.4.1")
+    (version "0.5.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rustc-rayon-core" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0c4cf58056ya3282c24bnyq39cwm1rd1m96lymfbb6yvl12929h2"))))
+                "0zqbr87x58j2g9rgm2lc0254b6yqabb41jvddw99qd8fy2m8srk7"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f   ;XXX cannot find rayon_core?
-       #:cargo-inputs
+     `(#: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-num-cpus" ,rust-num-cpus-1))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-xorshift" ,rust-rand-xorshift-0.3)
+        ("rust-scoped-tls" ,rust-scoped-tls-1))))
     (home-page "https://github.com/rust-lang/rustc-rayon")
     (synopsis "Core APIs for Rayon - fork for rustc")
     (description
@@ -52045,33 +56031,25 @@ Rayon-core represents the \"core, stable\" APIs of Rayon: join, scope, and so
 forth, as well as the ability to create custom thread-pools with ThreadPool.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-rustc-rayon-core-0.3
+(define-public rust-rustc-rayon-core-0.4
   (package
-    (inherit rust-rustc-rayon-core-0.4)
+    (inherit rust-rustc-rayon-core-0.5)
     (name "rust-rustc-rayon-core")
-    (version "0.3.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "rustc-rayon-core" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1cwc50mcclzfmhmi87953fjk6cc9ppmchn9mlwzfllq03y1jf97a"))))
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustc-rayon-core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0c4cf58056ya3282c24bnyq39cwm1rd1m96lymfbb6yvl12929h2"))))
     (arguments
-     `(#:tests? #f
+     `(#:tests? #f   ;XXX cannot find rayon_core?
        #:cargo-inputs
-       (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-num-cpus" ,rust-num-cpus-1))
-       #:cargo-development-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-rand" ,rust-rand-0.6)
-        ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
-        ("rust-scoped-tls" ,rust-scoped-tls-1))))))
+       (("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))))))
 
 (define-public rust-rustc-serialize-0.3
   (package
@@ -52376,41 +56354,42 @@ rustc compiler.")
         `(("rust-failure" ,rust-failure-0.1)
           ,@(alist-delete "rust-anyhow" cargo-inputs)))))))
 
-(define-public rust-rustix-0.36
+(define-public rust-rustix-0.37
   (package
     (name "rust-rustix")
-    (version "0.36.4")
+    (version "0.37.19")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rustix" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "08vwnvf76nkgb2bbxf8cn51c43x6sc9k462khrwbb2z0g19fi4yb"))))
+                "0gb12rp992bh2h5msqcbpdsx6h1gslsb0zpp5hdnyxj2hnfp5y5c"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-development-inputs
-       (("rust-criterion" ,rust-criterion-0.4)
-        ("rust-ctor" ,rust-ctor-0.1)
-        ("rust-errno" ,rust-errno-0.2)
-        ("rust-flate2" ,rust-flate2-1)
-        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-memoffset" ,rust-memoffset-0.7)
-        ("rust-serial-test" ,rust-serial-test-0.6))
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cc" ,rust-cc-1)
         ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
-        ("rust-errno" ,rust-errno-0.2)
+        ("rust-errno" ,rust-errno-0.3)
         ("rust-io-lifetimes" ,rust-io-lifetimes-1)
         ("rust-itoa" ,rust-itoa-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.1)
+        ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.3)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
-        ("rust-windows-sys" ,rust-windows-sys-0.42))))
+        ("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-io-lifetimes" ,rust-io-lifetimes-1)
+        ("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
@@ -52418,6 +56397,43 @@ rustc compiler.")
     ;; Apache 2.0, Apache 2.0 with LLVM exception, or Expat.
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-rustix-0.36
+  (package
+    (inherit rust-rustix-0.37)
+    (name "rust-rustix")
+    (version "0.36.13")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustix" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0n6ng6kdcz65ax5s17xavkjqs5a6gwcp9acc9r8blfp91d9gjf1s"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+        ("rust-errno" ,rust-errno-0.3)
+        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-linux-raw-sys" ,rust-linux-raw-sys-0.1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1)
+        ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1)
+        ("rust-windows-sys" ,rust-windows-sys-0.45))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-ctor" ,rust-ctor-0.1)
+        ("rust-errno" ,rust-errno-0.3)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-io-lifetimes" ,rust-io-lifetimes-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memoffset" ,rust-memoffset-0.7)
+        ("rust-serial-test" ,rust-serial-test-0.6)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
 (define-public rust-rustix-0.35
   (package
     (inherit rust-rustix-0.36)
@@ -52456,19 +56472,51 @@ rustc compiler.")
              ("rust-serial-test" ,rust-serial-test-0.6)
              ("rust-tempfile" ,rust-tempfile-3))))))
 
+(define-public rust-rustls-0.21
+  (package
+    (name "rust-rustls")
+    (version "0.21.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustls" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1fvc3n5h6354yi2yxrvq7yfdak0y6jga5sbcbhzv7h7wzkgys7qx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Not all files included.
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls-webpki" ,rust-rustls-webpki-0.101)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-sct" ,rust-sct-0.7))
+       #:cargo-development-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-bencher" ,rust-bencher-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
+        ("rust-webpki-roots" ,rust-webpki-roots-0.25))))
+    (native-inputs (list perl))
+    (home-page "https://github.com/rustls/rustls")
+    (synopsis "Modern TLS library written in Rust")
+    (description
+     "This package provides a modern TLS library written in Rust.")
+    (license (list license:asl2.0 license:isc license:expat))))
+
 (define-public rust-rustls-0.20
   (package
+    (inherit rust-rustls-0.21)
     (name "rust-rustls")
     (version "0.20.8")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustls" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0bqfymq5bjs1jxg1iw2nn4ab3kzz2lrk8a1vx3s98lhp9p3qzxzz"))))
-    (build-system cargo-build-system)
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustls" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0bqfymq5bjs1jxg1iw2nn4ab3kzz2lrk8a1vx3s98lhp9p3qzxzz"))))
     (arguments
      `(#:tests? #f          ; Not all files included.
        #:cargo-inputs
@@ -52483,14 +56531,7 @@ rustc compiler.")
         ("rust-env-logger" ,rust-env-logger-0.9)
         ("rust-log" ,rust-log-0.4)
         ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.22))))
-    (native-inputs (list perl))
-    (home-page "https://github.com/rustls/rustls")
-    (synopsis "Modern TLS library written in Rust")
-    (description
-     "This package provides a modern TLS library written in Rust.")
-    (license
-     (list license:asl2.0 license:isc license:expat))))
+        ("rust-webpki-roots" ,rust-webpki-roots-0.22))))))
 
 (define-public rust-rustls-0.19
   (package
@@ -52649,39 +56690,6 @@ rustc compiler.")
         ("rust-untrusted" ,rust-untrusted-0.6)
         ("rust-webpki" ,rust-webpki-0.18))))))
 
-(define-public rust-rustls-0.12
-  (package
-    (inherit rust-rustls-0.16)
-    (name "rust-rustls")
-    (version "0.12.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustls" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1k8b8cc0pjkv5cxdgs43jif7nslzsxair9b2sifgvjag7a4f8wmb"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:tests? #f ;; 1/45 tests fails due to some missing file
-       #:cargo-inputs
-       (("rust-base64" ,rust-base64-0.9)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-ring" ,rust-ring-0.13)
-        ("rust-sct" ,rust-sct-0.3)
-        ("rust-untrusted" ,rust-untrusted-0.6)
-        ("rust-webpki" ,rust-webpki-0.18))
-       #:cargo-development-inputs
-       (("rust-ct-logs" ,rust-ct-logs-0.3)
-        ("rust-docopt" ,rust-docopt-0.8)
-        ("rust-env-logger" ,rust-env-logger-0.4)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-mio" ,rust-mio-0.6)
-        ("rust-regex" ,rust-regex-0.2)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.14))))))
-
 (define-public rust-rustls-ffi-0.8
   (package
     (name "rust-rustls-ffi")
@@ -52796,14 +56804,14 @@ native certificate store.")
 (define-public rust-rustls-pemfile-1
   (package
     (name "rust-rustls-pemfile")
-    (version "1.0.2")
+    (version "1.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rustls-pemfile" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16x5jhja8z0j5hcrlaqqz5qnyg9qgv8qqffwbdil6fl0b1nvb56i"))))
+        (base32 "1cplx6hgkr32nq31p3613b2sj7csrrq3zp6znx9vc1qx9c4qff9d"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -52834,6 +56842,56 @@ PEM-encodings commonly used to store keys and certificates at rest.")
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3))))))
 
+(define-public rust-rustls-webpki-0.101
+  (package
+    (name "rust-rustls-webpki")
+    (version "0.101.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustls-webpki" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ngs6y42k47jr14kka9w92hwyjsq3gm0j45nf8gsg05dfgyj4dsi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-ring" ,rust-ring-0.16)
+        ("rust-untrusted" ,rust-untrusted-0.7))
+       #:cargo-development-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-bencher" ,rust-bencher-0.1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rcgen" ,rust-rcgen-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (native-inputs
+     (list perl))
+    (home-page "https://github.com/rustls/webpki")
+    (synopsis "Web PKI X.509 Certificate Verification")
+    (description "Web PKI X.509 Certificate Verification.")
+    (license license:isc)))
+
+(define-public rust-rustls-webpki-0.100
+  (package
+    (inherit rust-rustls-webpki-0.101)
+    (name "rust-rustls-webpki")
+    (version "0.100.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "rustls-webpki" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0sxlgpcczd1wihmnbgv5qz00jim32dap5wzq2rwcm39xxpapq86n"))))
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-ring" ,rust-ring-0.16)
+        ("rust-untrusted" ,rust-untrusted-0.7))
+       #:cargo-development-inputs (("rust-base64" ,rust-base64-0.13))))))
+
 (define-public rust-rusttype-0.9
   (package
     (name "rust-rusttype")
@@ -52923,7 +56981,7 @@ font rendering.")
 (define-public rust-rustversion-1
   (package
     (name "rust-rustversion")
-    (version "1.0.9")
+    (version "1.0.13")
     (source
      (origin
        (method url-fetch)
@@ -52932,7 +56990,7 @@ font rendering.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1a6nlrrnfbacn5pzg3m3311anhngcxs8kbvsbynh71ngni47wiwp"))))
+         "0pxx0mxigrvzsbpkw54wjyx4jfm85bcss60dcpwk2b53c6dvscfw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -53151,36 +57209,6 @@ sub-processes using a fork-like interface.")
         ("rust-rustyline-derive" ,rust-rustyline-derive-0.3)
         ("rust-tempfile" ,rust-tempfile-3))))))
 
-(define-public rust-rustyline-5
-  (package
-    (inherit rust-rustyline-6)
-    (name "rust-rustyline")
-    (version "5.0.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustyline" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0dd6hwm3rqj8d17gf38ffs1lh3b8dqw45j5kxnvazmm80abv2g52"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-dirs" ,rust-dirs-2)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-memchr" ,rust-memchr-2)
-        ("rust-nix" ,rust-nix-0.14)
-        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
-        ("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-utf8parse" ,rust-utf8parse-0.1)
-        ("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-assert-matches" ,rust-assert-matches-1)
-        ("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-rustyline-derive" ,rust-rustyline-derive-0.2)
-        ("rust-tempdir" ,rust-tempdir-0.3))))))
-
 (define-public rust-rustyline-derive-0.3
   (package
     (name "rust-rustyline-derive")
@@ -53204,32 +57232,17 @@ sub-processes using a fork-like interface.")
     (description "This package provides Rustyline macros implementation in Rust.")
     (license license:expat)))
 
-(define-public rust-rustyline-derive-0.2
-  (package
-    (inherit rust-rustyline-derive-0.3)
-    (name "rust-rustyline-derive")
-    (version "0.2.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "rustyline-derive" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "1n3iw9kaq70dw1rvvma0gjwydbj0f2mvvqvrva69f5cl6yv1dnd0"))))))
-
 (define-public rust-rkyv-0.7
   (package
     (name "rust-rkyv")
-    (version "0.7.40")
+    (version "0.7.42")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rkyv" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1hsd81bkm1rvh3kl66fhnadji4h88w2pgf0yrp4cnqdav52is3y3"))))
+                "0n2wzwnghkr2ny16c08f5szbkljfqrp3s8fnnb096f011ciwh002"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -53275,14 +57288,14 @@ sub-processes using a fork-like interface.")
 (define-public rust-rkyv-derive-0.7
   (package
     (name "rust-rkyv-derive")
-    (version "0.7.39")
+    (version "0.7.42")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "rkyv_derive" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1i1lmir3lm8zj8k1an7j2rchv1admqhysh6r6bfkcgmmi3fdmbkf"))))
+                "07alynj16yqlyprlwqd8av157rrywvid2dm7swbhl8swbf8npq5j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
@@ -53414,8 +57427,33 @@ quickly convert floating point numbers to decimal strings.")
      "This package provides a procedural macros for the salsa crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-salsa20-0.10
+  (package
+    (name "rust-salsa20")
+    (version "0.10.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "salsa20" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04w211x17xzny53f83p8f7cj7k2hi8zck282q5aajwqzydd2z8lp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/stream-ciphers")
+    (synopsis "Salsa20 Stream Cipher")
+    (description "Salsa20 is a collection of stream cipher algorithms written
+in pure Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-salsa20-0.9
   (package
+    (inherit rust-salsa20-0.10)
     (name "rust-salsa20")
     (version "0.9.0")
     (source
@@ -53425,17 +57463,11 @@ quickly convert floating point numbers to decimal strings.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "11i646kpgimimqiq8hyi0b7ngp588f7nl9xsc317d9kdcxgvn3qc"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-cipher" ,rust-cipher-0.3)
-        ("rust-zeroize" ,rust-zeroize-1))))
-    (home-page "https://github.com/RustCrypto/stream-ciphers")
-    (synopsis "Salsa20 Stream Cipher")
-    (description "Salsa20 is a collection of stream cipher algorithms written
-in pure Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-zeroize" ,rust-zeroize-1))))))
 
 (define-public rust-salsa-0.17
   (package
@@ -54033,8 +58065,59 @@ shareable by multiple crates in a build graph and erased by @code{cargo
 clean}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-scrypt-0.11
+  (package
+    (name "rust-scrypt")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "scrypt" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "07zxfaqpns9jn0mnxm7wj3ksqsinyfpirkav1f7kc2bchs2s65h5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-password-hash" ,rust-password-hash-0.5)
+        ("rust-pbkdf2" ,rust-pbkdf2-0.12)
+        ("rust-salsa20" ,rust-salsa20-0.10)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-password-hash" ,rust-password-hash-0.5))))
+    (home-page
+     "https://github.com/RustCrypto/password-hashes/tree/master/scrypt")
+    (synopsis "Scrypt password-based key derivation function")
+    (description
+     "This package provides a Scrypt password-based key derivation
+function.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-scrypt-0.10
+  (package
+    (inherit rust-scrypt-0.11)
+    (name "rust-scrypt")
+    (version "0.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "scrypt" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pglmppcl8mdzfxdv2x9dsjrwxhc1bm9zvxjibnlv59jnv9297lz"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-hmac" ,rust-hmac-0.12)
+        ("rust-password-hash" ,rust-password-hash-0.4)
+        ("rust-pbkdf2" ,rust-pbkdf2-0.11)
+        ("rust-salsa20" ,rust-salsa20-0.10)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-password-hash" ,rust-password-hash-0.4))))))
+
 (define-public rust-scrypt-0.8
   (package
+    (inherit rust-scrypt-0.11)
     (name "rust-scrypt")
     (version "0.8.1")
     (source
@@ -54044,7 +58127,6 @@ clean}.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "09fkz5sc7qx97dyi1nkv69z36diggd2c9mja33cxpsqicdy6sgg7"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -54052,13 +58134,7 @@ clean}.")
         ("rust-password-hash" ,rust-password-hash-0.3)
         ("rust-pbkdf2" ,rust-pbkdf2-0.10)
         ("rust-salsa20" ,rust-salsa20-0.9)
-        ("rust-sha2" ,rust-sha2-0.10))))
-    (home-page "https://github.com/RustCrypto/password-hashes")
-    (synopsis "Scrypt password-based key derivation function")
-    (description
-     "This package provides a Scrypt password-based key derivation
-function.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-sha2" ,rust-sha2-0.10))))))
 
 (define-public rust-scrypt-0.5
   (package
@@ -54108,8 +58184,34 @@ function.")
         ("rust-sha2" ,rust-sha2-0.9)
         ("rust-subtle" ,rust-subtle-2))))))
 
+(define-public rust-scroll-0.11
+  (package
+    (name "rust-scroll")
+    (version "0.11.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "scroll" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1nhrhpzf95pxbcjjy222blwf8rl3adws6vsqax0yzyxsa6snbi84"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-scroll-derive" ,rust-scroll-derive-0.11))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/m4b/scroll")
+    (synopsis "Endian-aware Read/Write traits for byte buffers")
+    (description
+     "This package provides a suite of powerful, extensible, generic,
+endian-aware Read/Write traits for byte buffers.")
+    (license license:expat)))
+
 (define-public rust-scroll-0.10
   (package
+    (inherit rust-scroll-0.11)
     (name "rust-scroll")
     (version "0.10.2")
     (source
@@ -54121,19 +58223,12 @@ function.")
         (sha256
          (base32
           "1v61drdig30qfx2xh8bn7qdk2xgqbmmhwyrznjl0gf1h915qv8px"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-scroll-derive" ,rust-scroll-derive-0.10))
        #:cargo-development-inputs
        (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-rayon" ,rust-rayon-1))))
-    (home-page "https://github.com/m4b/scroll")
-    (synopsis "Endian-aware Read/Write traits for byte buffers")
-    (description
-     "This package provides a suite of powerful, extensible, generic,
-endian-aware Read/Write traits for byte buffers.")
-    (license license:expat)))
+        ("rust-rayon" ,rust-rayon-1))))))
 
 (define-public rust-scroll-0.9
   (package
@@ -54164,8 +58259,34 @@ endian-aware Read/Write traits for byte buffers.")
 endian-aware Read/Write traits for byte buffers.")
     (license license:expat)))
 
+(define-public rust-scroll-derive-0.11
+  (package
+    (name "rust-scroll-derive")
+    (version "0.11.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "scroll-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1bi5ljnzksvqhic6j7i2a2ap41s78xr0gifkgjxdxlj63pw4kc8x"))))
+    (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-scroll" ,rust-scroll-0.11))))
+    (home-page "https://github.com/m4b/scroll")
+    (synopsis "Pread and Pwrite traits from the scroll crate")
+    (description
+     "This package provides a macros 1.1 derive implementation for Pread and
+Pwrite traits from the scroll crate.")
+    (license license:expat)))
+
 (define-public rust-scroll-derive-0.10
   (package
+    (inherit rust-scroll-derive-0.11)
     (name "rust-scroll-derive")
     (version "0.10.1")
     (source
@@ -54177,19 +58298,12 @@ endian-aware Read/Write traits for byte buffers.")
         (sha256
          (base32
           "0a7f0xybi27p1njs4bqmxh9zyb2dqal4dbvgnhjjix4zkgm4wn7q"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-syn" ,rust-syn-1)
-        ("rust-quote" ,rust-quote-1))))
-    (home-page "https://github.com/m4b/scroll")
-    (synopsis "Pread and Pwrite traits from the scroll crate")
-    (description
-     "This package provides a macros 1.1 derive implementation for Pread and
-Pwrite traits from the scroll crate.")
-    (license license:expat)))
+        ("rust-quote" ,rust-quote-1))))))
 
 (define-public rust-scroll-derive-0.9
   (package
@@ -54307,26 +58421,6 @@ Pwrite traits from the scroll crate.")
        (("rust-ring" ,rust-ring-0.13)
         ("rust-untrusted" ,rust-untrusted-0.6))))))
 
-(define-public rust-sct-0.3
-  (package
-    (inherit rust-sct-0.6)
-    (name "rust-sct")
-    (version "0.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "sct" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0z090j3lvy0lqbhmpswm4vb2n4i8dqswy0l93abdx9biipnhlm5l"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:cargo-inputs
-       (("rust-ring" ,rust-ring-0.13)
-        ("rust-untrusted" ,rust-untrusted-0.6))
-       #:cargo-development-inputs
-       (("rust-cc" ,rust-cc-1))))))
-
 (define-public rust-sctk-adwaita-0.5
   (package
     (name "rust-sctk-adwaita")
@@ -54395,6 +58489,39 @@ proven statistical guarantees.")
 statistical guarantees.")
     (license license:expat)))
 
+(define-public rust-sec1-0.7
+  (package
+    (name "rust-sec1")
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sec1" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0vh4pvdfnghbjglh6k74vs93jj337jpli28bbyqr0srxh67c9bph"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base16ct" ,rust-base16ct-0.2)
+        ("rust-der" ,rust-der-0.7)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-pkcs8" ,rust-pkcs8-0.10)
+        ("rust-serdect" ,rust-serdect-0.2)
+        ("rust-subtle" ,rust-subtle-2)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/sec1")
+    (synopsis
+     "Rust implementation of SEC1: Elliptic Curve Cryptography encoding formats")
+    (description
+     "This package procides a pure Rust implementation of SEC1: Elliptic Curve
+Cryptography encoding formats including ASN.1 DER-serialized private keys as
+well as the Elliptic-Curve-Point-to-Octet-String encoding.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-seccomp-sys-0.1
   (package
     (name "rust-seccomp-sys")
@@ -54417,6 +58544,41 @@ statistical guarantees.")
     (description "This package provides low-level bindings to libseccomp.")
     (license license:lgpl2.1)))
 
+(define-public rust-secret-service-3
+  (package
+    (name "rust-secret-service")
+    (version "3.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "secret-service" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15cddmlbbmahlzq9ib39i1yy7x83cvrxjxrgz0v3bh189nnsb8ax"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Build needs to decide on a crypto backend.
+       #:cargo-inputs
+       (("rust-aes" ,rust-aes-0.7)
+        ("rust-block-modes" ,rust-block-modes-0.8)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-hkdf" ,rust-hkdf-0.12)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-zbus" ,rust-zbus-3))
+       #:cargo-development-inputs
+       (("rust-test-with" ,rust-test-with-0.8)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/hwchen/secret-service-rs.git")
+    (synopsis "Library to interface with Secret Service API")
+    (description "Library to interface with Secret Service API.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-section-testing-0.0
   (package
     (name "rust-section-testing")
@@ -54496,14 +58658,14 @@ SECG elliptic curve group secp256k1 and related utilities.")
 (define-public rust-security-framework-2
   (package
     (name "rust-security-framework")
-    (version "2.0.0")
+    (version "2.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "security-framework" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0scc4vj2mw9k6qpxp26zx8gnqnmw79nwayja91x030457hp9qxf1"))))
+        (base32 "1pplxk15s5yxvi2m1sz5xfmjibp96cscdcl432w9jzbk0frlzdh5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;missing files
@@ -54512,10 +58674,15 @@ SECG elliptic curve group secp256k1 and related utilities.")
         ("rust-core-foundation" ,rust-core-foundation-0.9)
         ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
         ("rust-libc" ,rust-libc-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
         ("rust-security-framework-sys" ,rust-security-framework-sys-2))
        #:cargo-development-inputs
-       (("rust-hex" ,rust-hex-0.4)
-        ("rust-tempdir" ,rust-tempdir-0.3))))
+       (("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-tempdir" ,rust-tempdir-0.3)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-x509-parser" ,rust-x509-parser-0.15))))
     (home-page "https://lib.rs/crates/security_framework")
     (synopsis "@code{Security.framework} bindings for macOS and iOS")
     (description "This package provides @code{Security.framework} bindings for
@@ -54627,14 +58794,14 @@ macOS and iOS.")
 (define-public rust-security-framework-sys-2
   (package
     (name "rust-security-framework-sys")
-    (version "2.0.0")
+    (version "2.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "security-framework-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12v7wpf7cbc92xza4lf3w12411wzrkkvlbjgrhrid9yj4rg9v6zr"))))
+        (base32 "0yhciwlsy9dh0ps1gw3197kvyqx1bvc4knrhiznhid6kax196cp9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -54780,32 +58947,32 @@ macOS and iOS.")
        #:cargo-development-inputs
        (("rust-phf-codegen" ,rust-phf-codegen-0.8))))))
 
-(define-public rust-selectors-0.21
+(define-public rust-self-cell-1
   (package
-    (inherit rust-selectors-0.22)
-    (name "rust-selectors")
-    (version "0.21.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "selectors" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "11icfj8ix8fqjsnw3dqw83bmhd5qdhxzq2klb486akyypq0b31hv"))))
-   (arguments
-    `(#:cargo-inputs
-      (("rust-bitflags" ,rust-bitflags-1)
-       ("rust-cssparser" ,rust-cssparser-0.25)
-       ("rust-fxhash" ,rust-fxhash-0.2)
-       ("rust-log" ,rust-log-0.4)
-       ("rust-matches" ,rust-matches-0.1)
-       ("rust-phf" ,rust-phf-0.7)
-       ("rust-precomputed-hash" ,rust-precomputed-hash-0.1)
-       ("rust-servo-arc" ,rust-servo-arc-0.1)
-       ("rust-smallvec" ,rust-smallvec-0.6)
-       ("rust-thin-slice" ,rust-thin-slice-0.1))))))
+    (name "rust-self-cell")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "self-cell" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1djgfccbfhj2zv7xmqc2nxwn41g1swyrxg1d488pirj3am8rwc2c"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (substitute* "Cargo.toml"
+                         (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
+                          (string-append "^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-rustversion" ,rust-rustversion-1))
+       #:cargo-development-inputs (("rust-once-cell" ,rust-once-cell-1))))
+    (home-page "https://github.com/Voultapher/self_cell")
+    (synopsis "Self-referential structs in stable Rust")
+    (description
+     "This package provides safe-to-use proc-macro-free self-referential structs
+in stable Rust.")
+    (license license:asl2.0)))
 
 (define-public rust-semver-1
   (package
@@ -54990,19 +59157,23 @@ Semantic Versioning.")
          (base32
           "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq"))))))
 
-(define-public rust-send-wrapper-0.5
+(define-public rust-send-wrapper-0.6
   (package
     (name "rust-send-wrapper")
-    (version "0.5.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "send_wrapper" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1mwbg1nv36d5kdjb0iwmprz24km0m8ck08dn59gdngqdc77hl34k"))))
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "send-wrapper" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0wrxzsh9fzgkkkms621ydnz8mj30ilyq299a8cf65jn1y72hw2yd"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
+    (arguments
+     `(#:cargo-inputs (("rust-futures-core" ,rust-futures-core-0.3))
+       #:cargo-development-inputs
+       (("rust-futures-executor" ,rust-futures-executor-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3))))
     (home-page "https://github.com/thk1/send_wrapper")
     (synopsis "Wrapper moving around non-@code{Send} types between threads")
     (description
@@ -55013,6 +59184,20 @@ also have to make sure that the wrapper is dropped from within the original
 thread.  If any of these constraints is violated, a panic occurs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-send-wrapper-0.5
+  (package
+    (inherit rust-send-wrapper-0.6)
+    (name "rust-send-wrapper")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "send_wrapper" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mwbg1nv36d5kdjb0iwmprz24km0m8ck08dn59gdngqdc77hl34k"))))
+    (arguments `(#:skip-build? #t))))
+
 (define-public rust-send-wrapper-0.4
   (package
     (inherit rust-send-wrapper-0.5)
@@ -55100,7 +59285,7 @@ fragment of code.")
 (define-public rust-serde-1
   (package
     (name "rust-serde")
-    (version "1.0.160")
+    (version "1.0.171")
     (source
      (origin
        (method url-fetch)
@@ -55108,7 +59293,7 @@ fragment of code.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0v11q6pjdjivw24cv98zv9dkdx50d6h9748lgvdbrqxwr1q3fbxv"))))
+         "1a9lvibgi42mhmgafp747mvshsq6ybx6rzcjqh398rfp9wg7vqih"))))
     (build-system cargo-build-system)
     (arguments
      ;; XXX: three test failures, e.g.:
@@ -55167,6 +59352,32 @@ fragment of code.")
        (("rust-clippy" ,rust-clippy-0.0))
        #:tests? #f))))
 
+(define-public rust-serde-aux-4
+  (package
+    (name "rust-serde-aux")
+    (version "4.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-aux" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fdf1hdv85ghlfcil6ynl3npbbparmlx3ynn3c0wz7bgxfvy3py3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Cut the dependency graph.
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))
+       ;#:cargo-development-inputs
+       ;(("rust-serde-qs" ,rust-serde-qs-0.10))
+       ))
+    (home-page "https://github.com/vityafx/serde-aux")
+    (synopsis "Serde crate's auxiliary library")
+    (description "This package provides a serde crate's auxiliary library.")
+    (license license:expat)))
+
 (define-public rust-serde-big-array-0.4
   (package
     (name "rust-serde-big-array")
@@ -55255,7 +59466,7 @@ fragment of code.")
 (define-public rust-serde-bytes-0.11
   (package
     (name "rust-serde-bytes")
-    (version "0.11.8")
+    (version "0.11.11")
     (source
      (origin
        (method url-fetch)
@@ -55263,7 +59474,7 @@ fragment of code.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "06a8lv3x1zm1ynzq6xri4k46zklnzh62i6y47w4rjvxkypzwb3bi"))))
+        (base32 "0yj2kj2hcphabzrydpa4dndfm9clh8cy6iv4fc4dw2ijwm7vw5js"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -55316,37 +59527,6 @@ fragment of code.")
     (description "CBOR support for serde.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-serde-codegen-0.4
-  (package
-    (name "rust-serde-codegen")
-    (version "0.4.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "serde_codegen" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0167ghvqs0n8qin8fjx2ihn3gx92m55685qpv4nzihw48h4rq0vq"))))
-    (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-aster" ,rust-aster-0.41)
-        ("rust-quasi" ,rust-quasi-0.32)
-        ("rust-quasi-macros" ,rust-quasi-macros-0.32)
-        ("rust-syntex" ,rust-syntex-0.58)
-        ("rust-syntex-syntax" ,rust-syntex-syntax-0.58))
-       #:cargo-development-inputs
-       (("rust-quasi-codegen" ,rust-quasi-codegen-0.32)
-        ("rust-syntex" ,rust-syntex-0.58))))
-    (home-page "https://serde.rs")
-    (synopsis "Macros for the serde framework")
-    (description "This package provides macros to auto-generate implementations
-for the serde framework.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-serde-codegen-internals-0.14
   (package
     (name "rust-serde-codegen-internals")
@@ -55479,7 +59659,7 @@ TOML/JSON/MessagePack strings and serializable values.")
 (define-public rust-serde-derive-1
   (package
     (name "rust-serde-derive")
-    (version "1.0.160")
+    (version "1.0.171")
     (source
      (origin
        (method url-fetch)
@@ -55487,7 +59667,7 @@ TOML/JSON/MessagePack strings and serializable values.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1pvpiml328jhsz5h3pdc7x7wcyaagab6l5hb2q07wjfqcdy0j6i9"))))
+         "10j6s97fk7fgjiqhhrx6a44rqxr7v3w985i3avx4d36i7dh9961q"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -55584,18 +59764,18 @@ 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.96")
+    (version "1.0.102")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "serde-json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1waj3qwpa610vmksnzcmkll6vaw7nf7v3ckj4v0wlfs0a153jz85"))))
+        (base32 "1vfzj76zdn8yh5l08yzr6lf95whic3vrlkh6nq4266s8bncjl1mm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-indexmap" ,rust-indexmap-1)
+       (("rust-indexmap" ,rust-indexmap-2)
         ("rust-itoa" ,rust-itoa-1)
         ("rust-ryu" ,rust-ryu-1)
         ("rust-serde" ,rust-serde-1))
@@ -55640,6 +59820,31 @@ data.  This crate provides a wrapper that works with any existing Serde
        #:cargo-development-inputs
        (("rust-serde-derive" ,rust-serde-derive-0.9))))))
 
+(define-public rust-serde-json-core-0.5
+  (package
+    (name "rust-serde-json-core")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-json-core" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1w2g6ylmxbj9fbz4f86i0nnyk2mbv7qbksx0mbimxx17wj7krv2q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heapless" ,rust-heapless-0.7)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/rust-embedded-community/serde-json-core")
+    (synopsis "serde-json for no_std programs")
+    (description "This package provides @code{serde-json} for @code{no_std}
+programs in rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-path-to-error-0.1
   (package
     (name "rust-serde-path-to-error")
@@ -55756,7 +59961,7 @@ serializing Rust structures.")
 (define-public rust-serde-stacker-0.1
   (package
     (name "rust-serde-stacker")
-    (version "0.1.7")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
@@ -55765,7 +59970,7 @@ serializing Rust structures.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1zgwd22cswfsjsxmnpf97nw5fzyv0s6mif5blbb948q7qgskvxrm"))))
+         "13kz9x2f1bhv6n997ydkykkhz479ki25wm6jxmr5rfsj1dxh2njp"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -55783,7 +59988,7 @@ by dynamically growing the stack.")
 (define-public rust-serde-test-1
   (package
     (name "rust-serde-test")
-    (version "1.0.160")
+    (version "1.0.171")
     (source
      (origin
        (method url-fetch)
@@ -55792,11 +59997,10 @@ by dynamically growing the stack.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1s3mcs9b3qw59lc6w2d1bkpklh2fjclvy5iszkvmhcljwc0ab59w"))))
+         "0fjsdcxx1ig10qf73dqwgyy7ksjwmmi3657aaybyqj8l9qphlj5n"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f                  ; Requires a newer rust
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde" ,rust-serde-1)
@@ -55953,8 +60157,62 @@ for later processing.")
 (compatible with 0.9+)")
     (license license:expat)))
 
+(define-public rust-serde-xml-rs-0.4
+  (package
+    (inherit rust-serde-xml-rs-0.5)
+    (name "rust-serde-xml-rs")
+    (version "0.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-xml-rs" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ykx1xkfd59gf0ijnp93xhpd457xy4zi8xv2hrr0ikvcd6h1pgzh"))))
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=test_doctype_fail")
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-xml-rs" ,rust-xml-rs-0.8))
+       #:cargo-development-inputs
+       (("rust-docmatic" ,rust-docmatic-0.1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-simple-logger" ,rust-simple-logger-1))))))
+
+(define-public rust-serde-yaml-0.9
+  (package
+    (name "rust-serde-yaml")
+    (version "0.9.21")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serde-yaml" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1714w6f5b2g4svha9r96cirz05mc0d9xfaxkcrabzqvxxkiq9mnr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itoa" ,rust-itoa-1)
+        ("rust-ryu" ,rust-ryu-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-unsafe-libyaml" ,rust-unsafe-libyaml-0.2))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-indoc" ,rust-indoc-2)
+        ("rust-serde-derive" ,rust-serde-derive-1))))
+    (home-page "https://github.com/dtolnay/serde-yaml")
+    (synopsis "YAML support for Serde")
+    (description "This package provides YAML support for Serde.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-yaml-0.8
   (package
+    (inherit rust-serde-yaml-0.9)
     (name "rust-serde-yaml")
     (version "0.8.26")
     (source
@@ -55964,7 +60222,6 @@ for later processing.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "06y7gxy312mink8nsnmci9cw0ykpgsdcxmayg0snmdbnnwrp92jp"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-indexmap" ,rust-indexmap-1)
@@ -55974,11 +60231,41 @@ for later processing.")
        #:cargo-development-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-indoc" ,rust-indoc-1)
-        ("rust-serde-derive" ,rust-serde-derive-1))))
-    (home-page "https://github.com/dtolnay/serde-yaml")
-    (synopsis "YAML support for Serde")
-    (description "This package provides YAML support for Serde.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
+
+(define-public rust-serdect-0.2
+  (package
+    (name "rust-serdect")
+    (version "0.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "serdect" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0xw1b6acw6nd0jchzyxzr97f0s4shbcqh92iyjwln0cskshi8kx8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base16ct" ,rust-base16ct-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-ciborium" ,rust-ciborium-0.2)
+        ("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json-core" ,rust-serde-json-core-0.5)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-toml" ,rust-toml-0.7))))
+    (home-page "https://github.com/RustCrypto/formats/tree/master/serdect")
+    (synopsis
+     "Constant-time serde serializer/deserializer helpers")
+    (description
+     "This package provides constant-time serde serializer/deserializer helpers
+for data that potentially contains secrets (e.g. cryptographic keys).")
+    (license (list license:asl2.0 license:expat))))
 
 (define-public rust-serial-test-0.6
   (package
@@ -56240,7 +60527,7 @@ functionality and without weak references.")
 (define-public rust-sha-1-0.10
   (package
     (name "rust-sha-1")
-    (version "0.10.0")
+    (version "0.10.5")
     (source
      (origin
        (method url-fetch)
@@ -56249,15 +60536,18 @@ functionality and without weak references.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "03zag8zk4qlv40n2yryddapv5yxkam3hdr7n53d8qrzr2gali3q2"))))
+         "1jr2a7pi67s8nxm4m09df9nnzsdlpif5hnk29hl8xk55fx975y2y"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; use of undeclared crate or module `sha1`
        #:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-cpufeatures" ,rust-cpufeatures-0.2)
         ("rust-digest" ,rust-digest-0.10)
-        ("rust-sha1-asm" ,rust-sha1-asm-0.5))))
+        ("rust-sha1-asm" ,rust-sha1-asm-0.5))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
     (home-page "https://github.com/RustCrypto/hashes")
     (synopsis "SHA-1 hash function")
     (description "This crate provides a SHA-1 hash function.")
@@ -56486,14 +60776,14 @@ code is translated from C to Rust using c2rust.")
 (define-public rust-sha2-0.10
   (package
     (name "rust-sha2")
-    (version "0.10.1")
+    (version "0.10.6")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "sha2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1v60pzdr3pp6y2sgg1v1nwv4169rb6psk44jmnnq51y5d60vvhwr"))))
+        (base32 "1h5xrrv2y06kr1gsz4pwrm3lsp206nm2gjxgbf21wfrfzsavgrl2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -56616,8 +60906,34 @@ functions core functionality.")
        (sha256
         (base32 "0y4n8r4362y2fa6p2j0dgny4zfi194gdf01l6j850n9vf8ha3kwj"))))))
 
+(define-public rust-sha3-0.10
+  (package
+    (name "rust-sha3")
+    (version "0.10.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sha3" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0q5s3qlwnk8d5j34jya98j1v2p3009wdmnqdza3yydwgi8kjv1vm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-keccak" ,rust-keccak-0.1))
+       #:cargo-development-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))
+    (home-page "https://github.com/RustCrypto/hashes")
+    (synopsis "SHA-3 (Keccak) hash function")
+    (description "This package provides a pure Rust implementation of the SHA-3
+(Keccak) hash function.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-sha3-0.9
   (package
+    (inherit rust-sha3-0.10)
     (name "rust-sha3")
     (version "0.9.1")
     (source
@@ -56627,7 +60943,6 @@ functions core functionality.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32 "02d85wpvz75a0n7r2da15ikqjwzamhii11qy9gqf6pafgm0rj4gq"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-block-buffer" ,rust-block-buffer-0.9)
@@ -56636,12 +60951,7 @@ functions core functionality.")
         ("rust-opaque-debug" ,rust-opaque-debug-0.3))
        #:cargo-development-inputs
        (("rust-digest" ,rust-digest-0.9)
-        ("rust-hex-literal" ,rust-hex-literal-0.2))))
-    (home-page "https://github.com/RustCrypto/hashes")
-    (synopsis "SHA-3 (Keccak) hash function")
-    (description "This package provides a pure Rust implementation of the SHA-3
-(Keccak) hash function.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-hex-literal" ,rust-hex-literal-0.2))))))
 
 (define-public rust-shadow-rs-0.8
   (package
@@ -56672,7 +60982,7 @@ exactly where a binary came from and how it was built.")
 (define-public rust-sharded-slab-0.1
   (package
     (name "rust-sharded-slab")
-    (version "0.1.0")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
@@ -56680,16 +60990,17 @@ exactly where a binary came from and how it was built.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "09r1i2adjkm4flsj4l0j7x79gdyxz0hvivxdh2d8j5jfj6z22jbv"))))
+        (base32 "0cbb8kgwsyr3zzhsv8jrs3y1j3vsw4jxil42lfq31ikhdy0bl3wh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-loom" ,rust-loom-0.3))
+        ("rust-loom" ,rust-loom-0.5))
        #:cargo-development-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-criterion" ,rust-criterion-0.3)
-        ("rust-proptest" ,rust-proptest-0.9))))
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-loom" ,rust-loom-0.5)
+        ("rust-proptest" ,rust-proptest-1)
+        ("rust-slab" ,rust-slab-0.4))))
     (home-page "https://github.com/hawkw/sharded-slab")
     (synopsis "Lock-free concurrent slab")
     (description "This package provides a lock-free concurrent slab.")
@@ -56766,7 +61077,7 @@ exactly where a binary came from and how it was built.")
 (define-public rust-shell-escape-0.1
   (package
     (name "rust-shell-escape")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
@@ -56775,7 +61086,7 @@ exactly where a binary came from and how it was built.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp"))))
+         "0kqq83dk0r1fqj4cfzddpxrni2hpz5i1y607g366c4m9iyhngfs5"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/sfackler/shell-escape")
     (synopsis
@@ -56787,14 +61098,14 @@ exactly where a binary came from and how it was built.")
 (define-public rust-shell-words-1
   (package
     (name "rust-shell-words")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "shell-words" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0x5hw7ch98sp6b99ihxjs5vw5dmwg4yvy4yxzr59394xr4w3kymn"))))
+        (base32 "1plgwx8r0h5ismbbp6cp03740wmzgzhip85k5hxqrrkaddkql614"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/tmiasko/shell-words")
     (synopsis "Process command line according to parsing rules of UNIX shell")
@@ -57001,8 +61312,37 @@ words, like Python's shlex.")
        (("rust-signal-hook" ,rust-signal-hook-0.1)
         ("rust-version-sync" ,rust-version-sync-0.8))))))
 
+(define-public rust-signature-2
+  (package
+    (name "rust-signature")
+    (version "2.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "signature" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "00457czdia5gvll3a1vzf2ffsdpgcz2dz0h56z7zk28nsbp8h5sy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-digest" ,rust-digest-0.10)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-signature-derive" ,rust-signature-derive-2))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-sha2" ,rust-sha2-0.10))))
+    (home-page "https://github.com/RustCrypto/traits/tree/master/signature")
+    (synopsis
+     "Traits for cryptographic signature algorithms (e.g. ECDSA, Ed25519)")
+    (description
+     "This package contains traits which provide generic, object-safe APIs
+for generating and verifying digital signatures.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-signature-1
   (package
+    (inherit rust-signature-2)
     (name "rust-signature")
     (version "1.5.0")
     (source
@@ -57012,23 +61352,43 @@ words, like Python's shlex.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1r4x94n6ibdd1f85cwmvi29jvyyf1l379n9yybb7jlg9lv0wcm7h"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-digest" ,rust-digest-0.10)
         ("rust-rand-core" ,rust-rand-core-0.6)
-        ("rust-signature-derive" ,rust-signature-derive-1))))
-    (home-page "")
-    (synopsis "Traits for cryptographic signature algorithms (e.g. ECDSA,
-Ed25519)")
-    (description
-     "This package contains traits which provide generic, object-safe APIs
-for generating and verifying digital signatures.")
+        ("rust-signature-derive" ,rust-signature-derive-1))))))
+
+(define-public rust-signature-derive-2
+  (package
+    (name "rust-signature-derive")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "signature-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1z0mjjg3fpj08kc3nkax4lczgp7sfzbcm8q2qgim865510wkgpxc"))))
+    (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/RustCrypto/traits/tree/master/signature/derive")
+    (synopsis "Custom derive support for the 'signature' crate")
+    (description "This package provides proc macros used by the signature
+crate.
+
+It's not intended to be used directly.  See the signature crate's documentation
+for additional details.")
     (license (list license:asl2.0 license:expat))))
 
 (define-public rust-signature-derive-1
   (package
+    (inherit rust-signature-derive-2)
     (name "rust-signature-derive")
     (version "1.0.0-pre.4")
     (source
@@ -57038,22 +61398,13 @@ for generating and verifying digital signatures.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0p1x0wv6grrgdn226m9rsqpcnpfwkpji7rjpalkbk1ynv0xpvf57"))))
-    (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-synstructure" ,rust-synstructure-0.12))))
-    (home-page "signature_derive")
-    (synopsis "Custom derive support for the 'signature' crate")
-    (description "This package provides proc macros used by the signature
-crate.
-
-It's not intended to be used directly.  See the signature crate's documentation
-for additional details.")
-    (license (list license:asl2.0 license:expat))))
+        ("rust-synstructure" ,rust-synstructure-0.12))))))
 
 (define-public rust-simba-0.6
   (package
@@ -57726,16 +62077,39 @@ implementations.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1881q2yc17j2m1yvh01447c93ws1mspnrj3k2nbvwbvcm8z81kkv"))))
+         "1881q2yc17j2m1yvh01447c93ws1mspnrj3k2nbvwbvcm8z81kkv"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "src/lib.rs"
+             ;; __m64 is x86 only, not x86 or x86_64 as in the code.
+             ;; See: https://github.com/gnzlbg/sleef-sys/issues/27
+             (("__m64") "// __m64"))
+           (delete-file "Cargo.toml")
+           (rename-file "Cargo.toml.orig" "Cargo.toml")
+           (substitute* "Cargo.toml"
+             ;; Dependabot says the dependencies can be updated.
+             (("cfg-if = \"\\^0.1\"") "cfg-if = \"^1.0\"")
+             (("env_logger = \"0.6\"") "env_logger = \"0.9\"")
+             (("bindgen = \"\\^0.46\"") "bindgen = \"^0.59\""))))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-libc" ,rust-libc-0.2)
-        ("rust-bindgen" ,rust-bindgen-0.46)
+        ("rust-bindgen" ,rust-bindgen-0.59)
         ("rust-cmake" ,rust-cmake-0.1)
-        ("rust-env-logger" ,rust-env-logger-0.6))))
+        ("rust-env-logger" ,rust-env-logger-0.9))
+       #:phases
+       (modify-phases %standard-phases
+         ;; This makes it easier to test the package.
+         (add-after 'unpack 'enable-unstable-features
+           (lambda _
+             (setenv "RUSTC_BOOTSTRAP" "1"))))))
+    (inputs
+     (list clang))
+    (native-inputs
+     (list cmake-minimal))
     (home-page "https://github.com/gnzlbg/sleef-sys")
     (synopsis
      "Rust FFI bindings to the SLEEF Vectorized Math Library")
@@ -58119,8 +62493,33 @@ stack.")
        #:cargo-development-inputs
        (("rust-bincode" ,rust-bincode-1))))))
 
+(define-public rust-smart-default-0.7
+  (package
+    (name "rust-smart-default")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "smart-default" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1hgzs1250559bpayxmn46gzas5ycqn39wkf4srjgqh4461k1ic0f"))))
+    (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/idanarye/rust-smart-default")
+    (synopsis "Custom-derive macro for Default with more control on the fields")
+    (description
+     "This package provides a custom-derive macro for Default with more
+control on the fields.")
+    (license license:expat)))
+
 (define-public rust-smart-default-0.6
   (package
+    (inherit rust-smart-default-0.7)
     (name "rust-smart-default")
     (version "0.6.0")
     (source
@@ -58130,19 +62529,12 @@ stack.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1xnvxz9wilj4d5b8kg4wbs0yk48wm41fnwkmn3p6wi9rafhmjdhk"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/idanarye/rust-smart-default")
-    (synopsis "Custom-derive macro for Default with more control on the fields")
-    (description
-     "This package provides a custom-derive macro for Default with more
-control on the fields.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-smartstring-1
   (package
@@ -58410,15 +62802,17 @@ algorithm.  Includes streaming compression and decompression.")
 (define-public rust-snapbox-macros-0.3
   (package
     (name "rust-snapbox-macros")
-    (version "0.3.1")
+    (version "0.3.4")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "snapbox-macros" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0dkk7b5l9g8q7fswqj0686jqafkdl8apv1ay8r275cry430napj8"))))
+                "0cfaq1vwy90g3csmmzm773kk0i91422r3432x4myishfkzghkbza"))))
     (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-anstream" ,rust-anstream-0.3))))
     (home-page "https://github.com/assert-rs/trycmd/tree/main/crates/snapbox")
     (synopsis "Snapshot testing toolbox")
     (description
@@ -58450,18 +62844,20 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
 (define-public rust-snapbox-0.4
   (package
     (name "rust-snapbox")
-    (version "0.4.7")
+    (version "0.4.11")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "snapbox" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0gk2ggk4k3vq65yp53akvklg756b8w7bfj21sk7rjcbix270vhh9"))))
+                "0d9q8968hqkq64bain73shj3iqc28pch8c2fj6dghiw30xicvg7n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-backtrace" ,rust-backtrace-0.3)
+       (("rust-anstream" ,rust-anstream-0.3)
+        ("rust-anstyle" ,rust-anstyle-1)
+        ("rust-backtrace" ,rust-backtrace-0.3)
         ("rust-concolor" ,rust-concolor-0.0.11)
         ("rust-content-inspector" ,rust-content-inspector-0.2)
         ("rust-document-features" ,rust-document-features-0.2)
@@ -58469,6 +62865,7 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
         ("rust-escargot" ,rust-escargot-0.5)
         ("rust-filetime" ,rust-filetime-0.2)
         ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-libc" ,rust-libc-0.2)
         ("rust-libtest-mimic" ,rust-libtest-mimic-0.6)
         ("rust-normalize-line-endings" ,rust-normalize-line-endings-0.3)
         ("rust-os-pipe" ,rust-os-pipe-1)
@@ -58478,8 +62875,7 @@ It is also flexible enough to build your own test harness like @code{trycmd}.")
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-wait-timeout" ,rust-wait-timeout-0.2)
         ("rust-walkdir" ,rust-walkdir-2)
-        ("rust-windows-sys" ,rust-windows-sys-0.45)
-        ("rust-yansi" ,rust-yansi-0.5))))
+        ("rust-windows-sys" ,rust-windows-sys-0.45))))
     (home-page "https://github.com/assert-rs/trycmd/tree/main/crates/snapbox")
     (synopsis "Snapshot testing toolbox")
     (description
@@ -58935,19 +63331,27 @@ and spirv-std-macros.")
 SPIR-V.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-spki-0.4
+(define-public rust-spki-0.7
   (package
     (name "rust-spki")
-    (version "0.4.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "spki" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw"))))
+    (version "0.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "spki" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0jhq00sv4w3psdi6li3vjjmspc6z2d9b1wc1srbljircy1p9j7lx"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t #:cargo-inputs (("rust-der" ,rust-der-0.4))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-1)
+        ("rust-base64ct" ,rust-base64ct-1)
+        ("rust-der" ,rust-der-0.7)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.4)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/RustCrypto/formats/tree/master/spki")
     (synopsis
      "X.509 Subject Public Key Info (RFC5280) describing public keys")
@@ -58957,6 +63361,41 @@ describing public keys as well as their associated AlgorithmIdentifiers (i.e.
 OIDs)")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-spki-0.6
+  (package
+    (inherit rust-spki-0.7)
+    (name "rust-spki")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "spki" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ar1ldkl7svp8l3gfw2hyiiph7n2nqynjnjgdv1pscvsmjxh5kv7"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64ct" ,rust-base64ct-1)
+        ("rust-der" ,rust-der-0.6)
+        ("rust-sha2" ,rust-sha2-0.10))
+       #:cargo-development-inputs
+       (("rust-hex-literal" ,rust-hex-literal-0.3)
+        ("rust-tempfile" ,rust-tempfile-3))))))
+
+(define-public rust-spki-0.4
+  (package
+    (inherit rust-spki-0.7)
+    (name "rust-spki")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "spki" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw"))))
+    (arguments `(#:skip-build? #t #:cargo-inputs (("rust-der" ,rust-der-0.4))))))
+
 (define-public rust-spmc-0.3
   (package
     (name "rust-spmc")
@@ -59234,7 +63673,7 @@ to the same address.")
 (define-public rust-stacker-0.1
   (package
     (name "rust-stacker")
-    (version "0.1.6")
+    (version "0.1.15")
     (source
       (origin
         (method url-fetch)
@@ -59242,16 +63681,15 @@ to the same address.")
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "12igajfgqz96c7vcwi91xdfsphawik6g36ndlglqih0a7bqw8vyr"))))
+          "1klz4mk1iqn3jixhnls6ia4ql4fpinnfjibxabpx6pqmh12bv1n8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
+       (("rust-cc" ,rust-cc-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-psm" ,rust-psm-0.1)
-        ("rust-winapi" ,rust-winapi-0.3))
-       #:cargo-development-inputs
-       (("rust-cc" ,rust-cc-1))))
+        ("rust-winapi" ,rust-winapi-0.3))))
     (home-page "https://github.com/rust-lang/stacker")
     (synopsis "Manual segmented stacks for Rust")
     (description
@@ -59281,8 +63719,33 @@ deeply recursive algorithms that may accidentally blow the stack.")
     (description "New standard library, old compiler.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-state-0.5
+  (package
+    (name "rust-state")
+    (version "0.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "state" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0fzji31ijbkimbzdy4dln9mp5xp7lm1a0dnqxv4n10hywphnds6v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-loom" ,rust-loom-0.5))
+       #:cargo-development-inputs
+       (("rust-static-assertions" ,rust-static-assertions-1))))
+    (home-page "https://github.com/SergioBenitez/state")
+    (synopsis "Library for safe global and thread-local state management")
+    (description
+     "This package provides a library for safe global and thread-local state
+management.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-state-0.4
   (package
+    (inherit rust-state-0.5)
     (name "rust-state")
     (version "0.4.2")
     (source
@@ -59292,17 +63755,10 @@ deeply recursive algorithms that may accidentally blow the stack.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "10v4k9bgjryc9m40c8nnhyrby2ngkhpx841p3k4halgxlp8af59h"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-lazy-static" ,rust-lazy-static-1))))
-    (home-page "https://github.com/SergioBenitez/state")
-    (synopsis "Library for safe global and thread-local state management")
-    (description
-     "This package provides a library for safe global and thread-local state
-management.")
-    (license (list license:expat license:asl2.0))))
+       (("rust-lazy-static" ,rust-lazy-static-1))))))
 
 (define-public rust-static-assertions-1
   (package
@@ -60636,6 +65092,144 @@ easier in Rust.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))))
 
+(define-public rust-subplot-0.7
+  (package
+    (name "rust-subplot")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "subplot" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1la2vsjlxarld2w7farzlbmiy2hvascmd8bhi29ssm816m571jc8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; These rely on java
+             "--skip=diagrams::PlantumlMarkup"
+             "--skip=diagrams::DotMarkup")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-base64" ,rust-base64-0.21)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-env-logger" ,rust-env-logger-0.10)
+        ("rust-file-diff" ,rust-file-diff-1)
+        ("rust-git-testament" ,rust-git-testament-0.2)
+        ("rust-html-escape" ,rust-html-escape-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-line-col" ,rust-line-col-0.2)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-pikchr" ,rust-pikchr-0.1)
+        ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.9)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-roadmap" ,rust-roadmap-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-aux" ,rust-serde-aux-4)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.9)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tempfile-fast" ,rust-tempfile-fast-0.3)
+        ("rust-tera" ,rust-tera-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://subplot.tech/")
+    (synopsis "Tools for automated acceptance tests")
+    (description
+     "This package provides tools for specifying, documenting, and implementing
+automated acceptance tests for systems and software.")
+    (license license:expat-0)))
+
+(define-public rust-subplot-build-0.7
+  (package
+    (name "rust-subplot-build")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "subplot-build" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1p38kq7fmg6gpwqmkymn68f2qiaw7k35s7i4k0ifs6g5c0d70xfw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-subplot" ,rust-subplot-0.7)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://subplot.tech/")
+    (synopsis "Library for using Subplot code generation")
+    (description
+     "This package provides a library for using Subplot code generation from
+another project's @code{build.rs} module.")
+    (license license:expat-0)))
+
+(define-public rust-subplotlib-0.7
+  (package
+    (name "rust-subplotlib")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "subplotlib" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cbsrsk9pkyhs3fqzmxgf19x2bhr22pic5wqwvphv3sk4nc1ysiw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.21)
+        ("rust-fehler" ,rust-fehler-1)
+        ("rust-filetime" ,rust-filetime-0.2)
+        ("rust-fs2" ,rust-fs2-0.4)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-remove-dir-all" ,rust-remove-dir-all-0.8)
+        ("rust-shell-words" ,rust-shell-words-1)
+        ("rust-state" ,rust-state-0.5)
+        ("rust-subplot-build" ,rust-subplot-build-0.7)
+        ("rust-subplotlib-derive" ,rust-subplotlib-derive-0.7)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-unescape" ,rust-unescape-0.1))
+       #:cargo-development-inputs
+       (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://subplot.tech/")
+    (synopsis "Utility functions and types for @code{subplot codegen}")
+    (description
+     "Utility functions and types for @code{subplot codegen} generated Rust
+based test suites.  Relies on @code{subplotlib-derive} for associated macros.")
+    (license license:expat-0)))
+
+(define-public rust-subplotlib-derive-0.7
+  (package
+    (name "rust-subplotlib-derive")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "subplotlib-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11x93kzj6x5x44irkbiz1vyns9ivr7skixyd318sxa021xas16ci"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-fehler" ,rust-fehler-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-2))))
+    (home-page "https://subplot.tech/")
+    (synopsis "macros for constructing subplotlib based test suites")
+    (description
+     "This package provides macros for constructing subplotlib based test
+suites, typically generated by @code{subplot codegen}.")
+    (license license:expat-0)))
+
 (define-public rust-subprocess-0.2
   (package
     (name "rust-subprocess")
@@ -60702,6 +65296,27 @@ cryptographic implementations.")
         (base32
          "1vm80mxbwfj334izwm8x8l65v1xl9hr0kwrg36r1rq565fkaarrd"))))))
 
+(define-public rust-subtle-ng-2
+  (package
+    (name "rust-subtle-ng")
+    (version "2.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "subtle-ng" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hj1wp8xl64bjhbvlfffmllqy7wdw2b505f32gn3qqic4vmpcikk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-rand" ,rust-rand-0.7))))
+    (home-page "https://dalek.rs/")
+    (synopsis "Pure-Rust for constant-time cryptographic implementations")
+    (description
+     "This package provides pure-Rust traits and utilities for constant-time
+cryptographic implementations.")
+    (license license:bsd-3)))
+
 (define-public rust-surf-2
   (package
     (name "rust-surf")
@@ -60757,6 +65372,29 @@ alike.  It's completely modular, and built directly for @code{async/await}.")
 values without proliferating generics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-supports-color-2
+  (package
+    (name "rust-supports-color")
+    (version "2.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "supports-color" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m5kayz225f23k5jyjin82sfkrqhfdq3j72ianafkazz9cbyfl29"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; panicked at 'assertion failed: `(left == right)`
+       #:cargo-inputs
+       (("rust-is-terminal" ,rust-is-terminal-0.4)
+        ("rust-is-ci" ,rust-is-ci-1))))
+    (home-page "https://github.com/zkat/supports-color")
+    (synopsis "Detects whether a terminal supports color")
+    (description
+     "Detects whether a terminal supports color, and gives details about that support.")
+    (license license:asl2.0)))
+
 (define-public rust-sval-1
   (package
     (name "rust-sval")
@@ -60992,14 +65630,14 @@ interface")
 (define-public rust-syn-2
   (package
     (name "rust-syn")
-    (version "2.0.5")
+    (version "2.0.25")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "syn" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "12iqdd7j7hfsp4584bph1318n47z7x79ddgvl63j30i6db3x3hl9"))))
+                "1qjswb3cifay6x9l0qjpm9c42ikacpxybr9ny4npw9kl1j6grqqm"))))
     (build-system cargo-build-system)
     (arguments
      ;; Tests fail to compile
@@ -61021,10 +65659,17 @@ interface")
        #:cargo-development-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-automod" ,rust-automod-1)
+        ("rust-flate2" ,rust-flate2-1)
         ("rust-insta" ,rust-insta-1)
+        ("rust-rayon" ,rust-rayon-1)
         ("rust-ref-cast" ,rust-ref-cast-1)
+        ("rust-regex" ,rust-regex-1)
         ("rust-reqwest" ,rust-reqwest-0.11)
-        ("rust-tar" ,rust-tar-0.4))))
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-syn-test-suite" ,rust-syn-test-suite-0.0.0)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-walkdir" ,rust-walkdir-2))))
     (inputs (list openssl))
     (native-inputs (list pkg-config))
     (home-page "https://github.com/dtolnay/syn")
@@ -61193,48 +65838,39 @@ a syntax tree of Rust source code.")
         ("rust-tempdir" ,rust-tempdir-0.3)
         ("rust-walkdir" ,rust-walkdir-1))))))
 
-(define-public rust-syn-mid-0.5
+(define-public rust-syn-test-suite-0.0.0
   (package
-    (name "rust-syn-mid")
-    (version "0.5.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "syn-mid" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "12ikg5jfklixq0wsgfl7sdzjqlxgq50ygklxy4f972hjdjgm7qvv"))))
+    (name "rust-syn-test-suite")
+    (version "0.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "syn-test-suite" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15yz9q7rgxaplv0zbnanzyv1la4gmg47yq5wlkcwv3cck4qlncdm"))))
     (build-system cargo-build-system)
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-syn" ,rust-syn-1)
-        ("rust-quote" ,rust-quote-1))))
-    (home-page "https://github.com/taiki-e/syn-mid")
-    (synopsis
-     "Provide the features between \"full\" and \"derive\" of syn")
-    (description
-     "This package provides the features between \"full\" and \"derive\" of syn.")
-    (license (list license:asl2.0 license:expat))))
+    (arguments (list #:skip-build? #t))
+    (home-page "https://github.com/dtolnay/syn")
+    (synopsis "Test suite of the syn crate")
+    (description "Test suite of the syn crate.")
+    (license (list license:expat license:asl2.0))))
 
 (define-public rust-synchronoise-1
   (package
     (name "rust-synchronoise")
-    (version "1.0.0")
+    (version "1.0.1")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "synchronoise" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1szasv8xl6z3gxfq8h8wllw2mq53d71nn29achxsnfcxzh7fs5yp"))))
+                "1wnylkdf84520ks7a70fnwds2wibxmnkgqzz3j6ww9n61wwh3g1x"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1))))
+       (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.3))))
     (home-page "https://github.com/QuietMisdreavus/synchronoise")
     (synopsis "Synchronization primitives")
     (description
@@ -61374,32 +66010,6 @@ standard library.")
 intelligence using Sublime Text's grammars.")
     (license license:expat)))
 
-(define-public rust-syntex-0.58
- (package
-   (name "rust-syntex")
-   (version "0.58.1")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (crate-uri "syntex" version))
-      (file-name
-       (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32
-        "03lgd36cxhc6gzaab0wqvckbhml00s6s73lk34ymf6cklymf7xd8"))))
-   (build-system cargo-build-system)
-   (arguments
-    `(#:skip-build? #t
-      #:cargo-inputs
-      (("rust-syntex-errors" ,rust-syntex-errors-0.58)
-       ("rust-syntex-syntax" ,rust-syntex-syntax-0.58))))
-   (home-page "https://github.com/erickt/rust-syntex")
-   (synopsis "Compile time syntax extension expansion")
-   (description
-    "This package provides a library that enables compile time
-syntax extension expansion.")
-   (license (list license:expat license:asl2.0))))
-
 (define-public rust-syntex-errors-0.58
   (package
     (name "rust-syntex-errors")
@@ -61606,8 +66216,46 @@ no_std compatible by default, only relying on alloc.")
         ("rust-errno" ,rust-errno-0.2)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-sysinfo-0.27
+  (package
+    (name "rust-sysinfo")
+    (version "0.27.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sysinfo" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cqy39g76298pqfr8jv30j6cxl9bpnd7c2smfxl5s2na1w2yj0m9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; These files aren't available in the build environment.
+             "--skip=test::check_system_info"
+             "--skip=test::check_uid_gid"
+             "--skip=test_networks"
+             "--skip=test_wait_non_child"
+             "--skip=test_process_disk_usage")
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-ntapi" ,rust-ntapi-0.4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs (("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/GuillaumeGomez/sysinfo")
+    (synopsis "System handler to interact with processes")
+    (description
+     "This package is a library to get system information such as processes,
+processors, disks, components and networks.")
+    (license license:expat)))
+
 (define-public rust-sysinfo-0.15
   (package
+    (inherit rust-sysinfo-0.27)
     (name "rust-sysinfo")
     (version "0.15.11")
     (source (origin
@@ -61617,7 +66265,6 @@ no_std compatible by default, only relying on alloc.")
               (sha256
                (base32
                 "0n713rhayp28z8j4pviqcg4blcp1yfvniwa1ipinp75hyv7lq0nx"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs (("rust-cc" ,rust-cc-1)
@@ -61628,13 +66275,7 @@ no_std compatible by default, only relying on alloc.")
                        ("rust-ntapi" ,rust-ntapi-0.3)
                        ("rust-once-cell" ,rust-once-cell-1)
                        ("rust-rayon" ,rust-rayon-1)
-                       ("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/GuillaumeGomez/sysinfo")
-    (synopsis "System handler to interact with processes")
-    (description
-     "This package is a library to get system information such as processes,
-processors, disks, components and networks.")
-    (license license:expat)))
+                       ("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-sysinfo-0.23
   (package
@@ -61842,26 +66483,6 @@ provides both a library for wrapping Rust @code{Writer}s and a small program
 that exposes the same functionality at the command line.")
     (license (list license:unlicense license:expat))))
 
-(define-public rust-take-0.1
-  (package
-    (name "rust-take")
-    (version "0.1.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "take" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1i8p579k9kq21k7pcm4yzbc12xpshl39jfa5c1j6pxf1ia6qcmxi"))))
-    (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/carllerche/take")
-    (synopsis "Simple container utility for Rust")
-    (description
-     "This package provides a cell allowing the inner value to be consumed
-without a mutable reference.")
-    (license (list license:expat license:asl2.0))))
-
 (define-public rust-take-mut-0.2
   (package
     (name "rust-take-mut")
@@ -61993,17 +66614,19 @@ memory all at once.")
 (define-public rust-target-lexicon-0.12
   (package
     (name "rust-target-lexicon")
-    (version "0.12.4")
+    (version "0.12.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "target-lexicon" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1hfk4v8gbhczr6jwsy1ja6yg4npkvznym6b7r4fbgjc0fw428960"))))
+        (base32 "180iwqwvdk586b1b27anfddq5zbfckisgi3yjhdzaqbsfp5pg3nz"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/CraneStation/target-lexicon")
+    (arguments
+     `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/bytecodealliance/target-lexicon")
     (synopsis "Targeting utilities for compilers and related tools")
     (description
      "This package provides targeting utilities for compilers and related
@@ -62755,24 +67378,24 @@ deleting all contents when it's dropped.")
 (define-public rust-tempfile-3
   (package
     (name "rust-tempfile")
-    (version "3.3.0")
+    (version "3.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tempfile" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1r3rdp66f7w075mz6blh244syr3h0lbm07ippn7xrbgfxbs1xnsw"))))
+        (base32 "163rp254r3x7i5hisagrpxid2166pq94jvk511dpkmc1yf2fryxr"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-fastrand" ,rust-fastrand-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-redox-syscall" ,rust-redox-syscall-0.2)
-        ("rust-remove-dir-all" ,rust-remove-dir-all-0.5)
-        ("rust-winapi" ,rust-winapi-0.3))))
+        ("rust-redox-syscall" ,rust-redox-syscall-0.3)
+        ("rust-rustix" ,rust-rustix-0.37)
+        ("rust-windows-sys" ,rust-windows-sys-0.45))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
     (home-page "https://stebalien.com/projects/tempfile-rs")
     (synopsis "Library for managing temporary files and directories")
     (description
@@ -62781,6 +67404,29 @@ directories.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-tempfile-fast-0.3
+  (package
+    (name "rust-tempfile-fast")
+    (version "0.3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "tempfile-fast" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1xksx1l1019k9q0az9mhqsgb14w0vm88yax30iq6178s3d9yhjx7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (home-page "https://github.com/FauxFaux/tempfile-fast-rs")
+    (synopsis "Support for Linux-specific tempfile extensions")
+    (description
+     "This package provides support for Linux-specific tempfile extensions.")
+    (license license:expat)))
+
 (define-public rust-tendril-0.4
   (package
     (name "rust-tendril")
@@ -62813,22 +67459,33 @@ directories.")
 (define-public rust-tera-1
   (package
     (name "rust-tera")
-    (version "1.15.0")
+    (version "1.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tera" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "13dmx1qfn66v55l54gddp89mi82ghszwml9jyv75phhmnqqwijnk"))))
+        (base32 "1h3hgixby1vsfgk83ww09aq25p74jhqf48b7ql1jmwh22dsnb9lm"))
+       (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" "--"
+             ;; Not all files included.
+             "--skip=tera::tests::full_reload_with_glob"
+             "--skip=tera::tests::full_reload_with_glob_after_extending"
+             "--skip=tera::tests::can_load_from_glob_with_patterns"
+             "--skip=tera::tests::can_load_from_glob")
        #:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
         ("rust-chrono-tz" ,rust-chrono-tz-0.6)
         ("rust-globwalk" ,rust-globwalk-0.8)
-        ("rust-humansize" ,rust-humansize-1)
+        ("rust-humansize" ,rust-humansize-2)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-pest" ,rust-pest-2)
@@ -62838,7 +67495,11 @@ directories.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-slug" ,rust-slug-0.1)
-        ("rust-unic-segment" ,rust-unic-segment-0.9))))
+        ("rust-unic-segment" ,rust-unic-segment-0.9))
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://tera.netlify.com/")
     (synopsis "Template engine based on Jinja2/Django templates")
     (description
@@ -63073,6 +67734,37 @@ writing colored text to a terminal.")
        #:cargo-inputs
        (("rust-wincolor" ,rust-wincolor-0.1))))))
 
+(define-public rust-termimad-0.20
+  (package
+    (name "rust-termimad")
+    (version "0.20.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "termimad" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11qj19k1bry9pf78r515sgamnjia8s3irqyc4vr1qq0ppjs49ayg"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (substitute* "Cargo.toml"
+                         (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
+                          (string-append "^" version)))))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Cut the dependency graph
+       #:cargo-inputs
+       (("rust-coolor" ,rust-coolor-0.5)
+        ("rust-crossbeam" ,rust-crossbeam-0.8)
+        ("rust-crossterm" ,rust-crossterm-0.23)
+        ("rust-minimad" ,rust-minimad-0.9)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-unicode-width" ,rust-unicode-width-0.1))))
+    (home-page "https://github.com/Canop/termimad")
+    (synopsis "Markdown Renderer for the Terminal")
+    (description "Markdown Renderer for the Terminal.")
+    (license license:expat)))
+
 (define-public rust-terminal-size-0.2
   (package
     (name "rust-terminal-size")
@@ -63235,8 +67927,40 @@ return values to @code{std::io::Result} to indicate success or failure.")
 streams.")
     (license license:expat)))
 
+(define-public rust-test-case-3
+  (package
+    (name "rust-test-case")
+    (version "3.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-case" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pr53g4x6gykfj4hvffivyd0aa0hj9pbfr87y8908sskvrxnw79a"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f          ; Not all test files included.
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1)
+        ("rust-test-case-macros" ,rust-test-case-macros-3))
+       #:cargo-development-inputs
+       (("rust-insta" ,rust-insta-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/frondeus/test-case")
+    (synopsis "Procedural macro attribute for parametrized test cases")
+    (description
+     "This crate provides @code{#[test_case]} procedural macro attribute that
+generates multiple parametrized tests using one body with different input
+parameters.  A test is generated for each data set passed in test_case
+attribute.  Under the hood, all test cases that share same body are grouped
+into mod, giving clear and readable test results.")
+    (license license:expat)))
+
 (define-public rust-test-case-2
   (package
+    (inherit rust-test-case-3)
     (name "rust-test-case")
     (version "2.2.2")
     (source (origin
@@ -63250,7 +67974,6 @@ streams.")
                '(begin (substitute* "Cargo.toml"
                          (("=([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+)" _ version)
                           (string-append "^" version)))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f              ; Not all files included.
        #:cargo-inputs
@@ -63263,16 +67986,7 @@ streams.")
         ("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
         ("rust-once-cell" ,rust-once-cell-1)
         ("rust-regex" ,rust-regex-1)
-        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
-    (home-page "https://github.com/frondeus/test-case")
-    (synopsis "Procedural macro attribute for parametrized test cases")
-    (description
-     "This crate provides @code{#[test_case]} procedural macro attribute that
-generates multiple parametrized tests using one body with different input
-parameters.  A test is generated for each data set passed in test_case
-attribute.  Under the hood, all test cases that share same body are grouped
-into mod, giving clear and readable test results.")
-    (license license:expat)))
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))))
 
 (define-public rust-test-case-1
   (package
@@ -63297,16 +68011,17 @@ into mod, giving clear and readable test results.")
        (("rust-insta" ,rust-insta-0.12)
         ("rust-lazy-static" ,rust-lazy-static-1))))))
 
-(define-public rust-test-case-macros-2
+(define-public rust-test-case-core-3
   (package
-    (name "rust-test-case-macros")
-    (version "2.2.2")
+    (name "rust-test-case-core")
+    (version "3.1.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "test-case-macros" version))
+              (uri (crate-uri "test-case-core" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "09jvbfvz48v6ya3i25gp3lbr6ym1fz7qyp3l6bcdslwkw7v7nnz4"))))
+               (base32
+                "1vhckjjw4w1kaanhgy6bw8kdr8ligr68bz5nfbvr8xz2s7ar80yi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -63316,12 +68031,57 @@ into mod, giving clear and readable test results.")
         ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/frondeus/test-case")
+    (synopsis "Core functionality for the test-case crate")
+    (description
+     "This package provides core functionality for parsing #[test_case(...)]
+procedural macro attribute for generating parametrized test cases easily")
+    (license license:expat)))
+
+(define-public rust-test-case-macros-3
+  (package
+    (name "rust-test-case-macros")
+    (version "3.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-case-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "014l5wafp069d251c62flwyai8nv75vpjlmib2xc2m3a3i5s9fgf"))))
+    (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)
+        ("rust-test-case-core" ,rust-test-case-core-3))))
+    (home-page "https://github.com/frondeus/test-case")
     (synopsis "Macros for the test-case crate")
     (description
      "This package provides #[test_case(...)] procedural macro attribute for
 generating parametrized test cases easily.")
     (license license:expat)))
 
+(define-public rust-test-case-macros-2
+  (package
+    (inherit rust-test-case-macros-3)
+    (name "rust-test-case-macros")
+    (version "2.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-case-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "09jvbfvz48v6ya3i25gp3lbr6ym1fz7qyp3l6bcdslwkw7v7nnz4"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("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))))))
+
 (define-public rust-test-cert-gen-0.7
   (package
     (name "rust-test-cert-gen")
@@ -63373,6 +68133,37 @@ one body with different resource input parameters.  A test is generated for
 each resource matching the specific resource location pattern.")
     (license license:asl2.0)))
 
+(define-public rust-test-log-0.2
+  (package
+    (name "rust-test-log")
+    (version "0.2.11")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-log" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03pmvrg6lc2qgnby9w2fhn1vzqysbl643p7jy14a0s7bz9aciw1q"))))
+    (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-env-logger" ,rust-env-logger-0.9)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://github.com/d-e-s-o/test-log")
+    (synopsis "Replacement of the #[test] attribute that initializes logging")
+    (description
+     "This package provides a replacement of the #[test] attribute that initializes
+logging and/or tracing infrastructure before running tests.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-test-strategy-0.2
   (package
     (name "rust-test-strategy")
@@ -63401,6 +68192,42 @@ each resource matching the specific resource location pattern.")
 strategies in proptest.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-test-with-0.8
+  (package
+    (name "rust-test-with")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "test-with" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1vaqbyixd8li4jb9akvrbc6yfm0kl435byggg0kghrdl32hpn6ay"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byte-unit" ,rust-byte-unit-4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-ping" ,rust-ping-0.4)
+        ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-syn" ,rust-syn-1)
+        ("rust-sysinfo" ,rust-sysinfo-0.27)
+        ("rust-users" ,rust-users-0.11))
+       #:cargo-development-inputs (("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://github.com/yanganto/test-with")
+    (synopsis "Run test with conditions")
+    (description
+     "This package provides a lib to help you run test with conditions in Rust.")
+    (license license:expat)))
+
 (define-public rust-tester-0.9
   (package
     (name "rust-tester")
@@ -63452,6 +68279,25 @@ unstable language features.")
         ("rust-libc" ,rust-libc-0.2)
         ("rust-term" ,rust-term-0.4))))))
 
+(define-public rust-testing-logger-0.1
+  (package
+    (name "rust-testing-logger")
+    (version "0.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "testing-logger" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "087pi7y9iisspafyzblj41qvrw95dfb6px7pavlkmls5rckvg4kd"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-log" ,rust-log-0.4))))
+    (home-page "https://github.com/brucechapman/rust_testing_logger")
+    (synopsis "Supports writing tests to verify `log` crate calls")
+    (description "Supports writing tests to verify `log` crate calls.")
+    (license license:bsd-3)))
+
 (define-public rust-text-size-1
   (package
     (name "rust-text-size")
@@ -63714,20 +68560,21 @@ different for every thread.")
 (define-public rust-thread-local-1
   (package
     (name "rust-thread-local")
-    (version "1.1.3")
+    (version "1.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "thread_local" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gccp3grndpi6dyhzylz4hkqnkzc1xyri98n0xwwhnn90i7d4640"))))
+        (base32 "0lp19jdgvp5m4l60cgxdnl00yw1hlqy8gcywg9bddwng9h36zp9z"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-once-cell" ,rust-once-cell-1))))
+     `(#:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-once-cell" ,rust-once-cell-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4))))
     (home-page "https://github.com/Amanieu/thread_local-rs")
     (synopsis "Per-object thread-local storage")
     (description "Per-object thread-local storage.")
@@ -64888,11 +69735,10 @@ the current thread.")
     (description "This package provides future execution primitives.")
     (license license:expat)))
 
-;; Cyclic dependency with rust-tokio.
 (define-public rust-tokio-executor-0.1
   (package
     (name "rust-tokio-executor")
-    (version "0.1.7")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
@@ -64901,12 +69747,11 @@ the current thread.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0pjmgpg58k3hf5q9w6xjljsv8xy66lf734qnfwsc0g3pq3349sl3"))))
+         "0w8n78d2vixs1vghqc4wy9w0d1h6qkli51c1yzhzbns88n7inbgv"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+     `(#:cargo-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-futures" ,rust-futures-0.1))
        #:cargo-development-inputs
        (("rust-tokio" ,rust-tokio-0.1))))
@@ -65311,7 +70156,7 @@ in Rust.")
 (define-public rust-tokio-process-0.2
   (package
     (name "rust-tokio-process")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
      (origin
        (method url-fetch)
@@ -65320,11 +70165,10 @@ in Rust.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1s6vi5n5iax4ksx3bzpfdhfbngj49mvq5n40np1d4aycp3qnxgdg"))))
+         "0hvygspal1v62kamkjxqygzr8cwnakccziivbnzaw7537zs90b9q"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
@@ -65351,7 +70195,7 @@ futures.")
 (define-public rust-tokio-reactor-0.1
   (package
     (name "rust-tokio-reactor")
-    (version "0.1.9")
+    (version "0.1.12")
     (source
      (origin
        (method url-fetch)
@@ -65360,17 +70204,22 @@ futures.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1khip64cn63xvayq1db68kxcnhgw3cb449a4n2lbw4p1qzx6pwba"))))
+         "0l8klnd41q55f3ialzz0lb7s5bfwa38nh86sa9vai2xsqh75kg09"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-mio" ,rust-mio-0.6)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-parking-lot" ,rust-parking-lot-0.7)
+        ("rust-parking-lot" ,rust-parking-lot-0.9)
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio-executor" ,rust-tokio-executor-0.1)
         ("rust-tokio-io" ,rust-tokio-io-0.1)
@@ -65525,31 +70374,6 @@ Rustls.")
         ("rust-webpki-roots" ,rust-webpki-roots-0.18))))
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-tokio-rustls-0.10
-  (package
-    (inherit rust-tokio-rustls-0.12)
-    (name "rust-tokio-rustls")
-    (version "0.10.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "tokio-rustls" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0xh6gxilm7waj55rxfgqmvl8abynzr3ang57qvbap400k67z0z1d"))))
-    (arguments
-     `(#:cargo-test-flags '("--release" "--" "--skip=test_badssl")
-       #:cargo-inputs
-       (("rust-bytes" ,rust-bytes-0.4)
-        ("rust-futures" ,rust-futures-0.1)
-        ("rust-iovec" ,rust-iovec-0.1)
-        ("rust-rustls" ,rust-rustls-0.16)
-        ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-webpki" ,rust-webpki-0.21))
-       #:cargo-development-inputs
-       (("rust-tokio" ,rust-tokio-0.1)
-        ("rust-webpki-roots" ,rust-webpki-roots-0.17))))))
-
 (define-public rust-tokio-rustls-0.9
   (package
     (inherit rust-tokio-rustls-0.12)
@@ -65667,25 +70491,26 @@ Rust.")
 (define-public rust-tokio-stream-0.1
   (package
     (name "rust-tokio-stream")
-    (version "0.1.0")
+    (version "0.1.14")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio-stream" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0airchgn5zwzynchygdr8m7i4nizhfmifjz0iw6224sbnw9yjfrz"))))
+        (base32 "0hi8hcwavh5sdi1ivc9qc4yvyr32f153c212dpd7sb366y6rhz1r"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #false                  ;FIXME: unresolved import
+     `(#:tests? #false      ; unresolved import `tokio_test`
        #:cargo-inputs
        (("rust-async-stream" ,rust-async-stream-0.3)
-        ("rust-futures-core" ,rust-futures-core-0.3)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
-        ("rust-tokio" ,rust-tokio-1))
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-util" ,rust-tokio-util-0.7))
        #:cargo-development-inputs
-       (("rust-futures" ,rust-futures-0.3)
-        ("rust-proptest" ,rust-proptest-0.10)
+       (("rust-async-stream" ,rust-async-stream-0.3)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-parking-lot" ,rust-parking-lot-0.12)
         ("rust-tokio" ,rust-tokio-1))))
     (home-page "https://tokio.rs")
     (synopsis "Utilities to work with @code{Stream} and @code{tokio}")
@@ -65746,14 +70571,14 @@ Rust.")
 (define-public rust-tokio-test-0.4
   (package
     (name "rust-tokio-test")
-    (version "0.4.0")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tokio-test" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gwrqdwlfih6ib66wxc7yaaq7a9mlsmnxj2ahag3zc2rdxgj0zbw"))))
+        (base32 "1qv3h6y0c87i22p3q6sqvq2a1y5lzim9abbzs4q6a5jymqkl6isk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -65848,7 +70673,7 @@ futures-based code.")
 (define-public rust-tokio-threadpool-0.1
   (package
     (name "rust-tokio-threadpool")
-    (version "0.1.14")
+    (version "0.1.18")
     (source
      (origin
        (method url-fetch)
@@ -65857,23 +70682,23 @@ futures-based code.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1wkj3wixicsqvllm8w74b24knw6mdn00zslm8l9fm1p81gr8lmbj"))))
+         "12azq8jm71b7hdm72pxrgqm2879bn6b0fcdl1s7i2k3qh5jhnwnz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
-        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
-        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-futures" ,rust-futures-0.1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-rand" ,rust-rand-0.6)
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio-executor" ,rust-tokio-executor-0.1))
        #:cargo-development-inputs
-       (("rust-env-logger" ,rust-env-logger-0.5)
+       (("rust-env-logger" ,rust-env-logger-0.6)
         ("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
+        ("rust-rand" ,rust-rand-0.7)
         ("rust-threadpool" ,rust-threadpool-1))))
     (home-page "https://github.com/tokio-rs/tokio")
     (synopsis
@@ -65886,7 +70711,7 @@ pool.")
 (define-public rust-tokio-timer-0.2
   (package
     (name "rust-tokio-timer")
-    (version "0.2.11")
+    (version "0.2.13")
     (source
      (origin
        (method url-fetch)
@@ -65895,17 +70720,16 @@ pool.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "03m68ainkdy3b5pf20rjyknhk2ppx35bjdc2yfj2bv80sl96h47j"))))
+         "15pjjj6daks3sii8p24a509b0dapl2kyk740nwfgz59w64nly14k"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+     `(#:cargo-inputs
+       (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-slab" ,rust-slab-0.4)
         ("rust-tokio-executor" ,rust-tokio-executor-0.1))
        #:cargo-development-inputs
-       (("rust-rand" ,rust-rand-0.4)
+       (("rust-rand" ,rust-rand-0.7)
         ("rust-tokio" ,rust-tokio-0.1)
         ("rust-tokio-mock-task" ,rust-tokio-mock-task-0.1))))
     (home-page "https://github.com/tokio-rs/tokio")
@@ -66250,6 +71074,38 @@ stream-based WebSocket implementation.")
         ("rust-tokio" ,rust-tokio-0.2)
         ("rust-tokio-test" ,rust-tokio-test-0.2))))))
 
+(define-public rust-tokio-vsock-0.3
+  (package
+    (name "rust-tokio-vsock")
+    (version "0.3.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "tokio-vsock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1g1fhsibfdgsqayjr9gxkd5npgxh8rj36pcb9pi1c7ci51l5acwv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       '("--release" "--" "--skip=test_vsock_server")
+       #:cargo-inputs
+       (("rust-bytes" ,rust-bytes-0.4)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tonic" ,rust-tonic-0.6)
+        ("rust-vsock" ,rust-vsock-0.2))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tokio" ,rust-tokio-1))))
+    (home-page "https://github.com/rust-vsock/tokio-vsock")
+    (synopsis "Asynchronous Virtio socket support for Rust")
+    (description
+     "This package provides asynchronous Virtio socket support for Rust.")
+    (license license:asl2.0)))
+
 (define-public rust-toml-0.7
   (package
     (name "rust-toml")
@@ -66591,17 +71447,17 @@ parser.")
 (define-public rust-tonic-0.6
   (package
     (name "rust-tonic")
-    (version "0.6.1")
+    (version "0.6.2")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "tonic" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "1yjsnfkkq3c7xcyxkid0zgpm8w774qqdny0im6fr0s1drxwkn814"))))
+          (base32 "02jxiy0n2mw2c1fchykj3m18wp986685bji26px0z9qhkmjg827z"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
+      `(#:tests? #f     ; unresolved import `crate::codec::compression`
         #:cargo-inputs
         (("rust-async-stream" ,rust-async-stream-0.3)
          ("rust-async-trait" ,rust-async-trait-0.1)
@@ -66629,7 +71485,15 @@ parser.")
          ("rust-tower-service" ,rust-tower-service-0.3)
          ("rust-tracing" ,rust-tracing-0.1)
          ("rust-tracing-futures" ,rust-tracing-futures-0.2)
-         ("rust-webpki-roots" ,rust-webpki-roots-0.21))))
+         ("rust-webpki-roots" ,rust-webpki-roots-0.21))
+        #:cargo-development-inputs
+        (("rust-bencher" ,rust-bencher-0.1)
+         ("rust-quickcheck" ,rust-quickcheck-1)
+         ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
+         ("rust-rand" ,rust-rand-0.8)
+         ("rust-static-assertions" ,rust-static-assertions-1)
+         ("rust-tokio" ,rust-tokio-1)
+         ("rust-tower" ,rust-tower-0.4))))
     (home-page "https://github.com/hyperium/tonic")
     (synopsis "gRPC over HTTP/2 implementation for Rust")
     (description
@@ -66802,27 +71666,26 @@ server @code{Service} tests.")
 (define-public rust-tracing-0.1
   (package
     (name "rust-tracing")
-    (version "0.1.36")
+    (version "0.1.38")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tracing" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "01s3qsm1jfz4h4l401lhy8j2yfds45kpb234l447v9k0pmkrbkig"))))
+        (base32 "0kc1mpsh00l2zd9wryf1jyzwvilmbjdg5dmnn240rx6k2flgd76g"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-1)
-        ("rust-log" ,rust-log-0.4)
+     `(#:tests? #f
+       #:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
         ("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
         ("rust-tracing-attributes" ,rust-tracing-attributes-0.1)
         ("rust-tracing-core" ,rust-tracing-core-0.1))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-futures" ,rust-futures-0.1)
+        ("rust-futures" ,rust-futures-0.3)
         ("rust-log" ,rust-log-0.4)
-        ("rust-tokio" ,rust-tokio-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3))))
     (home-page "https://tokio.rs")
     (synopsis "Application-level tracing for Rust")
@@ -66833,7 +71696,7 @@ programs to collect structured, event-based diagnostic information.")
 (define-public rust-tracing-attributes-0.1
   (package
     (name "rust-tracing-attributes")
-    (version "0.1.22")
+    (version "0.1.26")
     (source
      (origin
        (method url-fetch)
@@ -66841,19 +71704,21 @@ programs to collect structured, event-based diagnostic information.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1qjf90dvc9jiw78bjzb3iqzrhaybypg8nm0n0zhwi6smmy9miiqi"))))
+         "1ax44ldpbcb7dsvpljiv2krnx6xp0hs85zcyv8385sarc7sk2ksz"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:tests? #f
+       #: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-async-trait" ,rust-async-trait-0.1)
-        ("rust-tokio-test" ,rust-tokio-test-0.3)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-tokio-test" ,rust-tokio-test-0.4)
         ("rust-tracing" ,rust-tracing-0.1)
-        ("rust-tracing-core" ,rust-tracing-core-0.1)
-        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
+        ("rust-trybuild" ,rust-trybuild-1))))
     (home-page "https://tokio.rs")
     (synopsis "Automatically instrument functions")
     (description "This package provides procedural macro attributes for
@@ -66863,7 +71728,7 @@ automatically instrumenting functions.")
 (define-public rust-tracing-core-0.1
   (package
     (name "rust-tracing-core")
-    (version "0.1.29")
+    (version "0.1.31")
     (source
      (origin
        (method url-fetch)
@@ -66871,7 +71736,7 @@ automatically instrumenting functions.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1xr2dqar64fj4y43vy0xvaxs6n3xssd3z0jbf408lmbn60qa9vjs"))))
+         "16pp28izw9c41m7c55qsghlz07r9ark8lzd3x6ig3xhxg89vhm89"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -66918,7 +71783,7 @@ automatically instrumenting functions.")
 (define-public rust-tracing-log-0.1
   (package
     (name "rust-tracing-log")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
@@ -66927,16 +71792,19 @@ automatically instrumenting functions.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1qv1cwvdqrgvizkszbff4fvkw0m3nn5yz68r3yaw2hcflivk94m6"))))
+         "08prnkxq8yas6jvvjnvyx5v3hwblas5527wxxgbiw2yis8rsvpbq"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-env-logger" ,rust-env-logger-0.7)
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-env-logger" ,rust-env-logger-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
+        ("rust-lru" ,rust-lru-0.7)
         ("rust-tracing-core" ,rust-tracing-core-0.1))
        #:cargo-development-inputs
-       (("rust-tracing" ,rust-tracing-0.1))))
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-tracing" ,rust-tracing-0.1))))
     (home-page "https://tokio.rs")
     (synopsis
      "Provides compatibility between tracing the log crates")
@@ -66961,19 +71829,21 @@ with tracing (optional, enabled by the env-logger feature).
 (define-public rust-tracing-serde-0.1
   (package
     (name "rust-tracing-serde")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tracing-serde" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12xjirg0b3cparjdhkd9pksrmv33gz7rdm4gfkvgk15v3x2flrgv"))))
+        (base32 "1qfr0va69djvxqvjrx4vqq7p6myy414lx4w1f6amcn0hfwqj2sxw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-serde" ,rust-serde-1)
-        ("rust-tracing-core" ,rust-tracing-core-0.1))
+        ("rust-tracing-core" ,rust-tracing-core-0.1)
+        ("rust-valuable" ,rust-valuable-0.1)
+        ("rust-valuable-serde" ,rust-valuable-serde-0.1))
        #:cargo-development-inputs
        (("rust-serde-json" ,rust-serde-json-1))))
     (home-page "https://tokio.rs")
@@ -66987,22 +71857,22 @@ with @code{serde}.")
 (define-public rust-tracing-subscriber-0.3
   (package
     (name "rust-tracing-subscriber")
-    (version "0.3.5")
+    (version "0.3.17")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "tracing-subscriber" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "157mz6q0ljpragrj4hsv5rchyabsbfc7r0sb0g5rik142jlbz0ax"))))
+          (base32 "0xvwfpmb943hdy4gzyn7a2azgigf30mfd1kx10gyh5gr6yy539ih"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
+      `(#:tests? #f     ; use of undeclared crate or module `tracing_mock`
         #:cargo-inputs
-        (("rust-ansi-term" ,rust-ansi-term-0.12)
-         ("rust-lazy-static" ,rust-lazy-static-1)
-         ("rust-matchers" ,rust-matchers-0.1)
-         ("rust-parking-lot" ,rust-parking-lot-0.11)
+        (("rust-matchers" ,rust-matchers-0.1)
+         ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.46)
+         ("rust-once-cell" ,rust-once-cell-1)
+         ("rust-parking-lot" ,rust-parking-lot-0.12)
          ("rust-regex" ,rust-regex-1)
          ("rust-serde" ,rust-serde-1)
          ("rust-serde-json" ,rust-serde-json-1)
@@ -67013,7 +71883,18 @@ with @code{serde}.")
          ("rust-tracing" ,rust-tracing-0.1)
          ("rust-tracing-core" ,rust-tracing-core-0.1)
          ("rust-tracing-log" ,rust-tracing-log-0.1)
-         ("rust-tracing-serde" ,rust-tracing-serde-0.1))))
+         ("rust-tracing-serde" ,rust-tracing-serde-0.1)
+         ("rust-valuable" ,rust-valuable-0.1)
+         ("rust-valuable-serde" ,rust-valuable-serde-0.1))
+        #:cargo-development-inputs
+        (("rust-criterion" ,rust-criterion-0.3)
+         ("rust-log" ,rust-log-0.4)
+         ("rust-regex" ,rust-regex-1)
+         ("rust-time" ,rust-time-0.3)
+         ("rust-tokio" ,rust-tokio-1)
+         ("rust-tracing" ,rust-tracing-0.1)
+         ("rust-tracing-futures" ,rust-tracing-futures-0.2)
+         ("rust-tracing-log" ,rust-tracing-log-0.1))))
     (home-page "https://tokio.rs")
     (synopsis "Implement and compose tracing subscribers")
     (description
@@ -67175,26 +72056,31 @@ be used directly.  See @code{rust-trackable} for more information.")
 (define-public rust-trash-2
   (package
     (name "rust-trash")
-    (version "2.0.2")
+    (version "2.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "trash" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1g3wjnr5qvgvvi144mlgf0mh80dybmy9zv2xyswpm55p5p5vdsyk"))))
+        (base32 "14ji8b84ghwkln01v90ahhl2jkxv2qxkm0afprzphf1ln41k6nqi"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-objc" ,rust-objc-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
         ("rust-scopeguard" ,rust-scopeguard-1)
         ("rust-url" ,rust-url-2)
-        ("rust-windows" ,rust-windows-0.9)
-        ("rust-windows" ,rust-windows-0.9))))
+        ("rust-windows" ,rust-windows-0.9))
+       #:cargo-development-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serial-test" ,rust-serial-test-0.6))))
     (home-page "https://github.com/ArturKovacs/trash-rs")
     (synopsis "Library for moving files and folders to the recycle bin")
     (description
@@ -67288,6 +72174,58 @@ etc. distance calculations and string search.")
        (sha256
         (base32 "0v795l496crk3h6yff9zh1cjyrh5s9v23fbgccc4dpz25z70jav2"))))))
 
+(define-public rust-trust-dns-client-0.22
+  (package
+    (name "rust-trust-dns-client")
+    (version "0.22.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "trust-dns-client" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1znkfhzwikii6v9k98ccbn3krwic1xs3bknf6y0b7nx9wqr8qh3c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Tests require network access.
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-futures-channel" ,rust-futures-channel-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-radix-trie" ,rust-radix-trie-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.22)
+        ("rust-webpki" ,rust-webpki-0.22))
+       #:cargo-development-inputs
+       (("rust-futures" ,rust-futures-0.3)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://trust-dns.org/")
+    (synopsis "DNS library with DNSSEC support")
+    (description
+     "Trust-DNS is a DNS library.  This is the Client library with DNSSEC
+support.  DNSSEC with NSEC validation for negative records, is complete.  The
+client supports dynamic DNS with SIG0 authenticated requests, implementing
+easy to use high level funtions.  Trust-DNS is based on the Tokio and Futures
+libraries, which means it should be easily integrated into other software that
+also use those libraries.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-trust-dns-https-0.20
   (package
     (name "rust-trust-dns-https")
@@ -68184,14 +73122,14 @@ the Trust-DNS client to use rustls for TLS.")
 (define-public rust-trybuild-1
   (package
     (name "rust-trybuild")
-    (version "1.0.77")
+    (version "1.0.81")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "trybuild" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "04rlcx55q7qbc17hv4znypwnm5n5d5ynbh5vsca8wk0nyakaakd4"))))
+        (base32 "0ab7ahdx563n6kbm14pm3qnxq4fp06pz42nh5ii4acvlzycnwdh4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -68202,27 +73140,59 @@ the Trust-DNS client to use rustls for TLS.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-termcolor" ,rust-termcolor-1))))
+        ("rust-termcolor" ,rust-termcolor-1))
+       #:cargo-development-inputs (("rust-automod" ,rust-automod-1))))
     (home-page "https://github.com/dtolnay/trybuild")
     (synopsis "Test harness for ui tests of compiler diagnostics")
     (description
      "Test harness for ui tests of compiler diagnostics.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-trybuild2-1
+  (package
+    (name "rust-trybuild2")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "trybuild2" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0z5nv6skmzz4d74sbrsrd7smyhs76sh8dwz4pd1kbvjpzq2l3v8i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-basic-toml" ,rust-basic-toml-0.1)
+        ("rust-dissimilar" ,rust-dissimilar-1)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-termcolor" ,rust-termcolor-1))
+       #:cargo-development-inputs (("rust-automod" ,rust-automod-1))))
+    (home-page "https://github.com/GuillaumeGomez/trybuild2")
+    (synopsis "Test harness for ui tests of compiler diagnostics")
+    (description
+     "This package provides a test harness for ui tests of compiler diagnostics
+(with support for inline tests).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-trycmd-0.14
   (package
     (name "rust-trycmd")
-    (version "0.14.12")
+    (version "0.14.16")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "trycmd" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "10ag8s931glx0g1arj823dph27x77jc37nal733z7pal2g4dwiq3"))))
+               (base32 "13i5bmw4c8pansylgixfzknzm79g5n602rmi3qy1fax1d0cff999"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-escargot" ,rust-escargot-0.5)
+       (("rust-anstream" ,rust-anstream-0.3)
+        ("rust-escargot" ,rust-escargot-0.5)
         ("rust-glob" ,rust-glob-0.3)
         ("rust-humantime" ,rust-humantime-2)
         ("rust-humantime-serde" ,rust-humantime-serde-1)
@@ -68468,6 +73438,29 @@ design abstracts away all the internals of the WebSocket protocol but still
 makes them accessible for those who wants full control over the network.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-twofish-0.7
+  (package
+    (name "rust-twofish")
+    (version "0.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "twofish" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "04w0ii2c0c9ws08aw6c7illh9zql22il9lbwjk1mgir30aiq73m7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4))
+       #:cargo-development-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-hex-literal" ,rust-hex-literal-0.3))))
+    (home-page "https://github.com/RustCrypto/block-ciphers")
+    (synopsis "Twofish block cipher")
+    (description "Twofish block cipher")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-twoway-0.2
   (package
     (name "rust-twoway")
@@ -68748,8 +73741,30 @@ with the Unicode character database.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-uds-windows-1
+  (package
+    (name "rust-uds-windows")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "uds-windows" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "03ckj6vnzvm4r5xd17dxyyqqqcfgs3xqj53hcswykk6k4i1n0rff"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-tempfile" ,rust-tempfile-3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/haraldh/rust_uds_windows")
+    (synopsis "Unix Domain Sockets for Windows")
+    (description "This library integrates Unix Domain Sockets on Windows.")
+    (license license:expat)))
+
 (define-public rust-uds-windows-0.1
   (package
+    (inherit rust-uds-windows-1)
     (name "rust-uds-windows")
     (version "0.1.5")
     (source
@@ -68759,17 +73774,12 @@ with the Unicode character database.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0mdv9xyrf8z8zr2py5drbilkncgrkg61axq6h7hcvgggklv9f14z"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
         ("rust-tempdir" ,rust-tempdir-0.3)
         ("rust-winapi" ,rust-winapi-0.2)
-        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))
-    (home-page "https://github.com/haraldh/rust_uds_windows")
-    (synopsis "Unix Domain Sockets for Windows")
-    (description "This library integrates Unix Domain Sockets on Windows.")
-    (license license:expat)))
+        ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2))))))
 
 (define-public rust-ufmt-0.1
   (package
@@ -68887,6 +73897,27 @@ arithmetic.")
      "This package provides an utility to deal with Unix access mode.")
     (license license:expat)))
 
+(define-public rust-unarray-0.1
+  (package
+    (name "rust-unarray")
+    (version "0.1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "unarray" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "154smf048k84prsdgh09nkm2n0w0336v84jd4zikyn6v6jrqbspa"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; use of undeclared crate or module `proptest`
+       #:cargo-development-inputs
+       (("rust-test-strategy" ,rust-test-strategy-0.2))))
+    (home-page "https://github.com/cameron1024/unarray")
+    (synopsis "Utilities for working with uninitialized arrays")
+    (description "Utilities for working with uninitialized arrays.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-uncased-0.9
   (package
     (name "rust-uncased")
@@ -68932,6 +73963,24 @@ arithmetic.")
      "Unchecked indexing wrapper using regular index syntax.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-unescape-0.1
+  (package
+    (name "rust-unescape")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "unescape" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0vlgws15n4kz8xq4igzr1f80nbiyr838k687hn6ly8a36an7vffc"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/saghm/unescape-rs")
+    (synopsis "Unescapes strings")
+    (description
+     "Unescapes strings with escape sequences written out as literal characters.")
+    (license license:expat)))
+
 (define-public rust-ungrammar-1
   (package
     (name "rust-ungrammar")
@@ -69168,7 +74217,7 @@ Unicode and Internationalization Crates (UNIC) project.")
 (define-public rust-unicode-bidi-0.3
   (package
     (name "rust-unicode-bidi")
-    (version "0.3.4")
+    (version "0.3.13")
     (source
      (origin
        (method url-fetch)
@@ -69177,14 +74226,13 @@ Unicode and Internationalization Crates (UNIC) project.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1malx8ljgm7v1gbaazkn7iicy5wj0bwcyadj3l727a38ch6bvwj9"))))
+         "0q0l7rdkiq54pan7a4ama39dgynaf1mnjj1nddrq1w1zayjqp24j"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; Not all files included.
        #:cargo-inputs
        (("rust-flame" ,rust-flame-0.2)
-        ("rust-flamer" ,rust-flamer-0.3)
-        ("rust-matches" ,rust-matches-0.1)
+        ("rust-flamer" ,rust-flamer-0.4)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))
@@ -69216,14 +74264,14 @@ membership for characters in Rust.")
 (define-public rust-unicode-ident-1
   (package
     (name "rust-unicode-ident")
-    (version "1.0.3")
+    (version "1.0.8")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "unicode-ident" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1bqswc96ws8l6k7xx56dg521a3l5imi3mhlcz7rsi6a92mxb7xf4"))))
+                "1x4v4v95fv9gn5zbpm23sa9awjvmclap1wh1lmikmw9rna3llip5"))))
     (build-system cargo-build-system)
     ;; Most development inputs are competing implementations
     ;; for benchmarks.
@@ -69267,7 +74315,7 @@ breaking algorithm in Rust.")
 (define-public rust-unicode-normalization-0.1
   (package
     (name "rust-unicode-normalization")
-    (version "0.1.19")
+    (version "0.1.22")
     (source
      (origin
        (method url-fetch)
@@ -69275,7 +74323,7 @@ breaking algorithm in Rust.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1yabhmg8zlcksda3ajly9hpbzqgbhknxwch8dwkfkaa1569r0ifm"))))
+        (base32 "08d95g7b1irc578b2iyhzv4xhsa4pfvwsqxcl9lbcpabzkq16msw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -69426,14 +74474,14 @@ whitespace from a string.")
 (define-public rust-uniquote-3
   (package
     (name "rust-uniquote")
-    (version "3.1.0")
+    (version "3.3.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "uniquote" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1bkl0n41yvs415mqny4b434kr456ysnb3dhic1zrrzppwx95jvxa"))))
+         (base32 "037xznqcdvc3riy9498cfrzzdhj2591cz0dpiy0h9wxfnbp01aal"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dylni/uniquote")
     (synopsis "Quote strings for clear display in output")
@@ -69567,6 +74615,30 @@ clear display in the output.")
      "Traits and implementations for unchecked downcasting.")
     (license license:expat)))
 
+;; This package was originally transpiled from libyaml, but has seen development
+;; since then, showing that it is in its editable form.
+(define-public rust-unsafe-libyaml-0.2
+  (package
+    (name "rust-unsafe-libyaml")
+    (version "0.2.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "unsafe-libyaml" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "19l0v20x83dvxbr68rqvs9hvawaqd929hia1nldfahlhamm80r8q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; use of undeclared crate or module `unsafe_libyaml_test_suite`
+       #:cargo-development-inputs
+       (("rust-pretty-assertions" ,rust-pretty-assertions-1))))
+    (home-page "https://github.com/dtolnay/unsafe-libyaml")
+    (synopsis "Libyaml in rust")
+    (description "This package provides libyaml transpiled to rust by c2rust,
+with changes and updated applied to it.")
+    (license license:expat)))
+
 (define-public rust-unsafe-unwrap-0.1
   (package
     (name "rust-unsafe-unwrap")
@@ -69647,23 +74719,29 @@ comparable to calling @code{unwrap_err()}.")
 (define-public rust-ureq-2
   (package
     (name "rust-ureq")
-    (version "2.4.0")
+    (version "2.6.2")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "ureq" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1m8nzx683iph4zfpfg2xmkkbwmgf1i403lnbhxqk4gbsj8pzm6ck"))))
+                "0vf412wyfk1wpaknqiq2v7y5zy9djammgvgkmcx8zxhl2gfk32rk"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f ;tests fail
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; These tests want network access.
+             "--skip=test::range::read_range_rustls"
+             "--skip=tests::connect_http_google"
+             "--skip=tests::connect_https_google_rustls"
+             "--skip=tls_client_certificate"
+             "--skip=middleware::Middleware")
        #:cargo-inputs
        (("rust-base64" ,rust-base64-0.13)
         ("rust-brotli-decompressor" ,rust-brotli-decompressor-2)
-        ("rust-chunked-transfer" ,rust-chunked-transfer-1)
-        ("rust-cookie" ,rust-cookie-0.15)
-        ("rust-cookie-store" ,rust-cookie-store-0.15)
+        ("rust-cookie" ,rust-cookie-0.16)
+        ("rust-cookie-store" ,rust-cookie-store-0.19)
         ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-log" ,rust-log-0.4)
@@ -69678,10 +74756,11 @@ comparable to calling @code{unwrap_err()}.")
         ("rust-webpki" ,rust-webpki-0.22)
         ("rust-webpki-roots" ,rust-webpki-roots-0.22))
        #:cargo-development-inputs
-       (("rust-env-logger" ,rust-env-logger-0.9)
+       (("rust-env-logger" ,rust-env-logger-0.10)
         ("rust-rustls" ,rust-rustls-0.20)
-        ("rust-rustls-pemfile" ,rust-rustls-pemfile-0.2)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
         ("rust-serde" ,rust-serde-1))))
+    (native-inputs (list perl))
     (home-page "https://github.com/algesten/ureq")
     (synopsis "Simple, safe HTTP client")
     (description "This package provides minimal request library in Rust.")
@@ -69690,7 +74769,7 @@ comparable to calling @code{unwrap_err()}.")
 (define-public rust-url-2
   (package
     (name "rust-url")
-    (version "2.3.1")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
@@ -69699,12 +74778,12 @@ comparable to calling @code{unwrap_err()}.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hs67jw257y0a7mj2p9wi0n61x8fc2vgwxg37y62nxkmmscwfs0d"))))
+         "1jw89ack5ldvajpzsvhq9sy12y2xqa2x0cbin62hl80r3s1zggsh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-form-urlencoded" ,rust-form-urlencoded-1)
-        ("rust-idna" ,rust-idna-0.3)
+        ("rust-idna" ,rust-idna-0.4)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
@@ -69768,25 +74847,6 @@ comparable to calling @code{unwrap_err()}.")
 encoding.")
     (license license:expat)))
 
-(define-public rust-urlocator-0.1
- (package
-   (name "rust-urlocator")
-   (version "0.1.3")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (crate-uri "urlocator" version))
-      (file-name
-       (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32
-        "0r5ig00np3svjpvb1gha3ni798cwj2w7rnlwrc8jrrw7bvlb2yri"))))
-   (build-system cargo-build-system)
-   (home-page "https://github.com/alacritty/urlocator")
-   (synopsis "Locate URLs in character streams")
-   (description "Locate URLs in character streams.")
-   (license (list license:expat license:asl2.0))))
-
 (define-public rust-user32-sys-0.2
   (package
     (name "rust-user32-sys")
@@ -69843,27 +74903,6 @@ See winapi for types and constants.")
 Unix users and groups.")
     (license license:expat)))
 
-(define-public rust-users-0.10
-  (package
-    (inherit rust-users-0.11)
-    (name "rust-users")
-    (version "0.10.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "users" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "11plda5r3dl8hs0sl0jskazam4ayv3a06vmhzk4l7914agljfhma"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-log" ,rust-log-0.4))
-       #:cargo-development-inputs
-       (("rust-env-logger" ,rust-env-logger-0.7))))))
-
 (define-public rust-utf-8-0.7
   (package
     (name "rust-utf-8")
@@ -69952,7 +74991,7 @@ first byte.")
 (define-public rust-utf8parse-0.2
   (package
     (name "rust-utf8parse")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -69961,9 +75000,9 @@ first byte.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0wjkvy22cxg023vkmvq2wwkgqyqam0d4pjld3m13blfg594lnvlk"))))
+         "02ip1a0az0qmc2786vxk2nqwsgcwf17d3a38fkf0q7hrmwh9c6vi"))))
     (build-system cargo-build-system)
-    (home-page "https://github.com/jwilm/vte")
+    (home-page "https://github.com/alacritty/vte")
     (synopsis "Table-driven UTF-8 parser")
     (description "This package provides a table-driven UTF-8 parser.")
     (license (list license:asl2.0 license:expat))))
@@ -69986,7 +75025,7 @@ first byte.")
 (define-public rust-uuid-1
   (package
     (name "rust-uuid")
-    (version "1.3.0")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "uuid" version))
@@ -69994,7 +75033,7 @@ first byte.")
                (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0ygxkj6bgfjkbhpdj1s0607zi9l8886pcw04lryd647f4r9q8x0n"))))
+                "1lpcqp1z0zy3l00yd418dpjlpih9la2swm62gwk1nia24kil8m1l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
@@ -70006,7 +75045,7 @@ first byte.")
         ("rust-trybuild" ,rust-trybuild-1)
         ("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
         ("rust-wasm-bindgen-test" ,rust-wasm-bindgen-test-0.3)
-        ("rust-windows-sys" ,rust-windows-sys-0.45))
+        ("rust-windows-sys" ,rust-windows-sys-0.48))
        #:cargo-inputs
        (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-atomic" ,rust-atomic-0.5)
@@ -70110,20 +75149,20 @@ first byte.")
 (define-public rust-uuid-macro-internal-1
   (package
     (name "rust-uuid-macro-internal")
-    (version "1.3.0")
+    (version "1.3.3")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "uuid-macro-internal" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1jbccm5pk216zrrf0ibd1j7m86lgmsyibs8d59ykhak5g2l01cy1"))))
+                "1nj53qzhk4xqw6rkz33q40rjs0mx9pdbjg11xvhydwiayicv8rrz"))))
     (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))))
+        ("rust-syn" ,rust-syn-2))))
     (home-page "https://github.com/uuid-rs/uuid")
     (synopsis "@code{uuid!} macro implementation details")
     (description
@@ -70160,6 +75199,25 @@ first byte.")
 a part of rav1e.")
     (license license:bsd-2)))
 
+(define-public rust-v-htmlescape-0.15
+  (package
+    (name "rust-v-htmlescape")
+    (version "0.15.8")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "v-htmlescape" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "135inp4x7cc32k0hzrymlz1baf0rj0ah5h82nrpa9w0hqpxmg0jf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-buf-min" ,rust-buf-min-0.7))))
+    (home-page "https://github.com/botika/v_escape")
+    (synopsis "Simd optimized HTML escaping code")
+    (description "This package provides simd optimized HTML escaping code.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-valuable-derive-0.1
   (package
     (name "rust-valuable-derive")
@@ -70207,6 +75265,33 @@ crate.")
 un-typed structured data across trait-object boundaries.")
     (license license:expat)))
 
+(define-public rust-valuable-serde-0.1
+  (package
+    (name "rust-valuable-serde")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "valuable-serde" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "01q9ifpd1mk1ic2g8lagp35djzb8i7cm8skk4rkf5ayd63zwz1aj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-valuable" ,rust-valuable-0.1))
+       #:cargo-development-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-test" ,rust-serde-test-1)
+        ("rust-valuable" ,rust-valuable-0.1))))
+    (home-page "https://github.com/tokio-rs/valuable")
+    (synopsis "`serde::Serialize` implementation for `Valuable` types")
+    (description "This package provides a @code{serde::Serialize} implementation
+for @code{Valuable} types.")
+    (license license:expat)))
+
 (define-public rust-value-bag-1
   (package
     (name "rust-value-bag")
@@ -70567,6 +75652,52 @@ updated when the crate version changes.")
 hardware registers.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-vsock-0.3
+  (package
+    (name "rust-vsock")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "vsock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0mwwcjk2yd3fi5ryv5xhd7569bmcj0dlsmi4bh4jh6qypzq1v3jc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Tests not runnable from the build environment.
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-nix" ,rust-nix-0.24))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.10))))
+    (home-page "https://github.com/rust-vsock/vsock-rs")
+    (synopsis "Virtio socket support for Rust")
+    (description "This package provdies virtio socket support for Rust.")
+    (license license:asl2.0)))
+
+(define-public rust-vsock-0.2
+  (package
+    (inherit rust-vsock-0.3)
+    (name "rust-vsock")
+    (version "0.2.6")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "vsock" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0cy1gpiahygfzxms4z170qj672c7n8cjvd8a9hkxzr9w5gp7a9p3"))))
+    (arguments
+     `(#:tests? #f      ; Tests not runnable from the build environment.
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-nix" ,rust-nix-0.23))
+       #:cargo-development-inputs
+       (("rust-rand" ,rust-rand-0.8)
+        ("rust-sha2" ,rust-sha2-0.10))))))
+
 (define-public rust-vswhom-0.1
   (package
     (name "rust-vswhom")
@@ -71617,8 +76748,58 @@ Verification.")
                  (lambda _
                    (invoke "python" "make_curve25519_tables.py")))))))))))
 
+(define-public rust-webpki-roots-0.25
+  (package
+    (name "rust-webpki-roots")
+    (version "0.25.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "webpki-roots" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15piy0vccppqb74li32gnn9l5a4ysxzwh8bp3qv6z8rhr2hyvin9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; This test wants network access.
+             "--skip=generated_code_is_fresh")
+       #:cargo-development-inputs
+       (("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
+        ("rust-rustls-webpki" ,rust-rustls-webpki-0.101)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list perl pkg-config))
+    (inputs
+     (list openssl))
+    (home-page "https://github.com/rustls/webpki-roots")
+    (synopsis "Mozilla's CA root certificates for use with webpki")
+    (description "This package provides Mozilla's CA root certificates for use
+with webpki.")
+    (license license:mpl2.0)))
+
+(define-public rust-webpki-roots-0.23
+  (package
+    (inherit rust-webpki-roots-0.25)
+    (name "rust-webpki-roots")
+    (version "0.23.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "webpki-roots" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0f4k8nng542iilxbibh1nhrdf5wbyi9is4fr219zzrc6hgw5hc5h"))))
+    (arguments
+     `(#:cargo-inputs (("rust-rustls-webpki" ,rust-rustls-webpki-0.100))))))
+
 (define-public rust-webpki-roots-0.22
   (package
+    (inherit rust-webpki-roots-0.25)
     (name "rust-webpki-roots")
     (version "0.22.2")
     (source
@@ -71628,17 +76809,9 @@ Verification.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "0jbll0ys9jakrvv3l1i216bbgj7jbxr7ad2dihw28xcm7s8fnb2m"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-webpki" ,rust-webpki-0.22))))
-    (native-inputs
-     (list perl))
-    (home-page "https://github.com/rustls/webpki-roots")
-    (synopsis "Mozilla's CA root certificates for use with webpki")
-    (description "This package provides Mozilla's CA root certificates for use
-with webpki.")
-    (license license:mpl2.0)))
+       (("rust-webpki" ,rust-webpki-0.22))))))
 
 (define-public rust-webpki-roots-0.21
   (package
@@ -71754,23 +76927,6 @@ with webpki.")
        (("rust-untrusted" ,rust-untrusted-0.6)
         ("rust-webpki" ,rust-webpki-0.18))))))
 
-(define-public rust-webpki-roots-0.14
-  (package
-    (inherit rust-webpki-roots-0.18)
-    (name "rust-webpki-roots")
-    (version "0.14.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "webpki-roots" version))
-      (file-name (string-append name "-" version ".tar.gz"))
-      (sha256
-       (base32 "05zw919077i3jadbvdsvl69wv2siijg2pjbykl6fyi7hmgb7bggd"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-untrusted" ,rust-untrusted-0.6)
-        ("rust-webpki" ,rust-webpki-0.18))))))
-
 (define-public rust-webview-sys-0.6
   (package
     (name "rust-webview-sys")
@@ -71968,25 +77124,41 @@ executable.")
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))))
 
-(define-public rust-whoami-0.8
+(define-public rust-whoami-1
   (package
     (name "rust-whoami")
-    (version "0.8.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "whoami" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0z18m6w2q8a6rivd61sh3f00pdhyvxiwycs2j5088gvgdxb5bfqq"))))
+    (version "1.4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "whoami" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l6ca9pl92wmngsn1dh9ih716v216nmn2zvcn94k04x9p1b3gz12"))))
     (build-system cargo-build-system)
-    (arguments `(#:skip-build? #t))
-    (home-page "https://github.com/libcala/whoami")
+    (arguments
+     `(#:cargo-inputs
+       (("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3))))
+    (home-page "https://github.com/ardaku/whoami/blob/stable/CHANGELOG.md")
     (synopsis "Retrieve the current user and environment")
     (description
      "This package provides simple functions to retrieve the current user and
 environment.")
-    (license (list license:expat license:boost1.0))))
+    (license (list license:asl2.0 license:boost1.0 license:expat))))
+
+(define-public rust-whoami-0.8
+  (package
+    (inherit rust-whoami-1)
+    (name "rust-whoami")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "whoami" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "0z18m6w2q8a6rivd61sh3f00pdhyvxiwycs2j5088gvgdxb5bfqq"))))
+    (arguments `(#:skip-build? #t))))
 
 (define-public rust-wide-0.7
   (package
@@ -72052,8 +77224,31 @@ terms of allowing LLVM's auto-vectorizer to do its job.")
        (("rust-bytemuck" ,rust-bytemuck-1))))
     (license (list license:zlib))))
 
+(define-public rust-widestring-1
+  (package
+    (name "rust-widestring")
+    (version "1.0.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "widestring" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1a11qxmqf8jhh0vbyb6cc614d9qdqsh01r5bqnivn5pc74gi8gv5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs (("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/starkat99/widestring-rs")
+    (synopsis "Wide string Rust FFI library")
+    (description
+     "A wide string Rust FFI library for converting to and from wide strings,
+such as those often used in Windows API or other FFI libraries.  Both UTF-16 and
+UTF-32 types are provided, including support for malformed encoding.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-widestring-0.5
   (package
+    (inherit rust-widestring-1)
     (name "rust-widestring")
     (version "0.5.1")
     (source
@@ -72064,18 +77259,9 @@ terms of allowing LLVM's auto-vectorizer to do its job.")
         (sha256
          (base32
           "10qrilijh1qzw362mvd4nsz3vv32dxx530vk41hkcx8hah22z20p"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-development-inputs
-       (("rust-winapi" ,rust-winapi-0.3))))
-    (home-page "https://github.com/starkat99/widestring-rs")
-    (synopsis "Wide string Rust FFI library")
-    (description
-     "A wide string Rust FFI library for converting to and from wide strings,
-such as those often used in Windows API or other FFI libraries.  Both UTF-16 and
-UTF-32 types are provided, including support for malformed encoding.")
-    (license (list license:asl2.0
-                   license:expat))))
+       (("rust-winapi" ,rust-winapi-0.3))))))
 
 (define-public rust-widestring-0.4
   (package
@@ -72097,18 +77283,18 @@ UTF-32 types are provided, including support for malformed encoding.")
 (define-public rust-wild-2
   (package
     (name "rust-wild")
-    (version "2.0.4")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "wild" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0800hfmb099abwh7gqqbxhlvl7l3g5x681qsy0rm0x2lp2mr6mq3"))))
+        (base32 "0x0a65qrifm3q1gp7cy74qw69nr6zz5k8cqhb8pwbq3bb9l1dc85"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-glob" ,rust-glob-0.3))))
+     `(#:cargo-inputs (("rust-glob" ,rust-glob-0.3))
+       #:cargo-development-inputs (("rust-glob" ,rust-glob-0.3))))
     (home-page "https://lib.rs/crates/wild")
     (synopsis "Glob (wildcard) expanded command-line arguments")
     (description
@@ -72116,6 +77302,33 @@ UTF-32 types are provided, including support for malformed encoding.")
 command-line, uniformly on all platforms")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-win-crypto-ng-0.5
+  (package
+    (name "rust-win-crypto-ng")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "win-crypto-ng" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0faf5bd4d5kaf642yw91lh0n2bfwnz0l70bm85ysmj3dsj4hg9mf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Windows library
+       #:cargo-inputs
+       (("rust-cipher" ,rust-cipher-0.4)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-rand-core" ,rust-rand-core-0.5)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+    (home-page "https://github.com/emgre/win-crypto-ng")
+    (synopsis "Safe bindings to Windows Cryptography API: Next Generation")
+    (description "Safe bindings to Windows Cryptography API: Next Generation")
+    (license license:bsd-3)))
+
 (define-public rust-winapi-0.3
   (package
     (name "rust-winapi")
@@ -72380,19 +77593,19 @@ if they were just another Rust module.")
         ("rust-windows-gen" ,rust-windows-gen-0.9)
         ("rust-windows-macros" ,rust-windows-macros-0.9))))))
 
-(define-public rust-windows-aarch64-gnullvm-0.42
+(define-public rust-windows-aarch64-gnullvm-0.48
   (package
     (name "rust-windows-aarch64-gnullvm")
-    (version "0.42.2")
+    (version "0.48.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "windows-aarch64-gnullvm" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1y4q0qmvl0lvp7syxvfykafvmwal5hrjb4fmv04bqs0bawc52yjr"))
+                "1g71yxi61c410pwzq05ld7si4p9hyx6lf5fkw21sinvr3cp5gbli"))
               (snippet
-               '(delete-file "lib/libwindows.a"))))
+               '(delete-file "lib/libwindows.0.48.0.a"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t))
@@ -72402,19 +77615,36 @@ if they were just another Rust module.")
      "This package provides code gen support for the windows crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-windows-aarch64-msvc-0.42
+(define-public rust-windows-aarch64-gnullvm-0.42
   (package
-    (name "rust-windows-aarch64-msvc")
+    (inherit rust-windows-aarch64-gnullvm-0.48)
+    (name "rust-windows-aarch64-gnullvm")
     (version "0.42.2")
     (source (origin
               (method url-fetch)
+              (uri (crate-uri "windows-aarch64-gnullvm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y4q0qmvl0lvp7syxvfykafvmwal5hrjb4fmv04bqs0bawc52yjr"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (arguments
+     (list #:skip-build? #t))))
+
+(define-public rust-windows-aarch64-msvc-0.48
+  (package
+    (name "rust-windows-aarch64-msvc")
+    (version "0.48.0")
+    (source (origin
+              (method url-fetch)
               (uri (crate-uri "windows-aarch64-msvc" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0hsdikjl5sa1fva5qskpwlxzpc5q9l909fpl1w6yy1hglrj8i3p0"))
+                "1wvwipchhywcjaw73h998vzachf668fpqccbhrxzrz5xszh2gvxj"))
               (snippet
-               '(delete-file "lib/windows.lib"))))
+               '(delete-file "lib/windows.0.48.0.lib"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t))
@@ -72424,6 +77654,23 @@ if they were just another Rust module.")
 crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-aarch64-msvc-0.42
+  (package
+    (inherit rust-windows-aarch64-msvc-0.48)
+    (name "rust-windows-aarch64-msvc")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-aarch64-msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0hsdikjl5sa1fva5qskpwlxzpc5q9l909fpl1w6yy1hglrj8i3p0"))
+              (snippet
+               '(delete-file "lib/windows.lib"))))
+    (arguments
+     (list #:skip-build? #t))))
+
 (define-public rust-windows-aarch64-msvc-0.36
   (package
     (inherit rust-windows-aarch64-msvc-0.42)
@@ -72466,19 +77713,19 @@ crate.")
                (base32
                 "1hpk0n2z0jzzvwlvs98b75sa4q920953nqfc119rv19nwm0mlsaj"))))))
 
-(define-public rust-windows-i686-gnu-0.42
+(define-public rust-windows-i686-gnu-0.48
   (package
     (name "rust-windows-i686-gnu")
-    (version "0.42.2")
+    (version "0.48.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "windows_i686_gnu" version))
+              (uri (crate-uri "windows-i686-gnu" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0kx866dfrby88lqs9v1vgmrkk1z6af9lhaghh5maj7d4imyr47f6"))
+                "0hd2v9kp8fss0rzl83wzhw0s5z8q1b4875m6s1phv0yvlxi1jak2"))
               (snippet
-               '(delete-file "lib/libwindows.a"))))
+               '(delete-file "lib/libwindows.0.48.0.a"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t))
@@ -72488,6 +77735,23 @@ crate.")
      "This package provides code gen support for the windows crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-i686-gnu-0.42
+  (package
+    (inherit rust-windows-i686-gnu-0.48)
+    (name "rust-windows-i686-gnu")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0kx866dfrby88lqs9v1vgmrkk1z6af9lhaghh5maj7d4imyr47f6"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (arguments
+     (list #:skip-build? #t))))
+
 (define-public rust-windows-i686-gnu-0.36
   (package
     (inherit rust-windows-i686-gnu-0.42)
@@ -72530,19 +77794,19 @@ crate.")
                (base32
                 "12hx7qpsjg9p7jggfcplqa3mf1mzr7k7s5ybzqwg1zmg4fn2aizm"))))))
 
-(define-public rust-windows-i686-msvc-0.42
+(define-public rust-windows-i686-msvc-0.48
   (package
     (name "rust-windows-i686-msvc")
-    (version "0.42.2")
+    (version "0.48.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "windows_i686_msvc" version))
+              (uri (crate-uri "windows-i686-msvc" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0q0h9m2aq1pygc199pa5jgc952qhcnf0zn688454i7v4xjv41n24"))
+                "004fkyqv3if178xx9ksqc4qqv8sz8n72mpczsr2vy8ffckiwchj5"))
               (snippet
-               '(delete-file "lib/windows.lib"))))
+               '(delete-file "lib/windows.0.48.0.lib"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t))
@@ -72552,6 +77816,23 @@ crate.")
      "This package provides code gen support for the windows crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-i686-msvc-0.42
+  (package
+    (inherit rust-windows-i686-msvc-0.48)
+    (name "rust-windows-i686-msvc")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_i686_msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0q0h9m2aq1pygc199pa5jgc952qhcnf0zn688454i7v4xjv41n24"))
+              (snippet
+               '(delete-file "lib/windows.lib"))))
+    (arguments
+     (list #:skip-build? #t))))
+
 (define-public rust-windows-i686-msvc-0.36
   (package
     (inherit rust-windows-i686-msvc-0.42)
@@ -72665,21 +77946,21 @@ crate.")
 crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-windows-sys-0.45
+(define-public rust-windows-sys-0.48
   (package
     (name "rust-windows-sys")
-    (version "0.45.0")
+    (version "0.48.0")
     (source (origin
               (method url-fetch)
               (uri (crate-uri "windows-sys" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
-               (base32 "1l36bcqm4g89pknfp8r9rl1w4bn017q6a8qlx8viv0xjxzjkna3m"))))
+               (base32
+                "1aan23v5gs7gya1lc46hqn9mdh8yph3fhxmhxlw36pn6pqc28zb7"))))
     (build-system cargo-build-system)
     (arguments
-     (list #:skip-build? #t
-           #:cargo-inputs
-           `(("rust-windows-targets" ,rust-windows-targets-0.42))))
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-windows-targets" ,rust-windows-targets-0.48))))
     (home-page "https://github.com/microsoft/windows-rs")
     (synopsis "Rust for Windows")
     (description "The windows crate lets you call any Windows API past,
@@ -72688,6 +77969,22 @@ describing the API and right into your Rust package where you can call them as
 if they were just another Rust module.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-sys-0.45
+  (package
+    (inherit rust-windows-sys-0.48)
+    (name "rust-windows-sys")
+    (version "0.45.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32 "1l36bcqm4g89pknfp8r9rl1w4bn017q6a8qlx8viv0xjxzjkna3m"))))
+    (arguments
+     (list #:skip-build? #t
+           #:cargo-inputs
+           `(("rust-windows-targets" ,rust-windows-targets-0.42))))))
+
 (define-public rust-windows-sys-0.42
   (package
     (inherit rust-windows-sys-0.45)
@@ -72792,8 +78089,36 @@ if they were just another Rust module.")
     (description "Macros for the windows crate")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-targets-0.48
+  (package
+    (name "rust-windows-targets")
+    (version "0.48.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-targets" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1mfzg94w0c8h4ya9sva7rra77f3iy1712af9b6bwg03wrpqbc7kv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.48)
+        ("rust-windows-aarch64-msvc" ,rust-windows-aarch64-msvc-0.48)
+        ("rust-windows-i686-gnu" ,rust-windows-i686-gnu-0.48)
+        ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.48)
+        ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.48)
+        ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.48)
+        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.48))))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-windows-targets-0.42
   (package
+    (inherit rust-windows-targets-0.48)
     (name "rust-windows-targets")
     (version "0.42.2")
     (source (origin
@@ -72803,7 +78128,6 @@ if they were just another Rust module.")
               (sha256
                (base32
                 "0wfhnib2fisxlx8c507dbmh97kgij4r6kcxdi0f9nk6l1k080lcf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-windows-aarch64-gnullvm" ,rust-windows-aarch64-gnullvm-0.42)
@@ -72812,12 +78136,7 @@ if they were just another Rust module.")
         ("rust-windows-i686-msvc" ,rust-windows-i686-msvc-0.42)
         ("rust-windows-x86-64-gnu" ,rust-windows-x86-64-gnu-0.42)
         ("rust-windows-x86-64-gnullvm" ,rust-windows-x86-64-gnullvm-0.42)
-        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-windows-x86-64-msvc" ,rust-windows-x86-64-msvc-0.42))))))
 
 (define-public rust-windows-tokens-0.32
   (package
@@ -72839,19 +78158,19 @@ if they were just another Rust module.")
 windows crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-windows-x86-64-gnu-0.42
+(define-public rust-windows-x86-64-gnu-0.48
   (package
     (name "rust-windows-x86-64-gnu")
-    (version "0.42.2")
+    (version "0.48.0")
     (source (origin
               (method url-fetch)
-              (uri (crate-uri "windows_x86_64_gnu" version))
+              (uri (crate-uri "windows-x86_64-gnu" version))
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "0dnbf2xnp3xrvy8v9mgs3var4zq9v9yh9kv79035rdgyp2w15scd"))
+                "1cblz5m6a8q6ha09bz4lz233dnq5sw2hpra06k9cna3n3xk8laya"))
               (snippet
-               '(delete-file "lib/libwindows.a"))))
+               '(delete-file "lib/libwindows.0.48.0.a"))))
     (build-system cargo-build-system)
     (arguments
      (list #:skip-build? #t))
@@ -72861,6 +78180,23 @@ windows crate.")
      "This package provides code gen support for the windows crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-windows-x86-64-gnu-0.42
+  (package
+    (inherit rust-windows-x86-64-gnu-0.48)
+    (name "rust-windows-x86-64-gnu")
+    (version "0.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows_x86_64_gnu" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0dnbf2xnp3xrvy8v9mgs3var4zq9v9yh9kv79035rdgyp2w15scd"))
+              (snippet
+               '(delete-file "lib/libwindows.a"))))
+    (arguments
+     (list #:skip-build? #t))))
+
 (define-public rust-windows-x86-64-gnu-0.36
   (package
     (inherit rust-windows-x86-64-gnu-0.42)
@@ -72903,8 +78239,30 @@ windows crate.")
                (base32
                 "0m79bhdr54g4h4wh2q8wkjlkypb5wvl7xzhc2csiaqb5yl4z8cdw"))))))
 
+(define-public rust-windows-x86-64-gnullvm-0.48
+  (package
+    (name "rust-windows-x86-64-gnullvm")
+    (version "0.48.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-x86_64-gnullvm" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0lxryz3ysx0145bf3i38jkr7f9nxiym8p3syklp8f20yyk0xp5kq"))
+              (snippet
+               '(delete-file "lib/libwindows.0.48.0.a"))))
+    (build-system cargo-build-system)
+    (arguments (list #:skip-build? #t))
+    (home-page "https://github.com/microsoft/windows-rs")
+    (synopsis "Code gen support for the windows crate")
+    (description
+     "This package provides code gen support for the windows crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-windows-x86-64-gnullvm-0.42
   (package
+    (inherit rust-windows-x86-64-gnullvm-0.48)
     (name "rust-windows-x86-64-gnullvm")
     (version "0.42.2")
     (source (origin
@@ -72916,6 +78274,21 @@ windows crate.")
                 "18wl9r8qbsl475j39zvawlidp1bsbinliwfymr43fibdld31pm16"))
               (snippet
                '(delete-file "lib/libwindows.a"))))
+    (arguments (list #:skip-build? #t))))
+
+(define-public rust-windows-x86-64-msvc-0.48
+  (package
+    (name "rust-windows-x86-64-msvc")
+    (version "0.48.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "windows-x86_64-msvc" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "12ipr1knzj2rwjygyllfi5mkd0ihnbi3r61gag5n2jgyk5bmyl8s"))
+              (snippet
+               '(delete-file "lib/windows.0.48.0.lib"))))
     (build-system cargo-build-system)
     (arguments (list #:skip-build? #t))
     (home-page "https://github.com/microsoft/windows-rs")
@@ -72926,6 +78299,7 @@ windows crate.")
 
 (define-public rust-windows-x86-64-msvc-0.42
   (package
+    (inherit rust-windows-x86-64-msvc-0.48)
     (name "rust-windows-x86-64-msvc")
     (version "0.42.2")
     (source (origin
@@ -72937,13 +78311,7 @@ windows crate.")
                 "1w5r0q0yzx827d10dpjza2ww0j8iajqhmb54s735hhaj66imvv4s"))
               (snippet
                '(delete-file "lib/windows.lib"))))
-    (build-system cargo-build-system)
-    (arguments (list #:skip-build? #t))
-    (home-page "https://github.com/microsoft/windows-rs")
-    (synopsis "Code gen support for the windows crate")
-    (description
-     "This package provides code gen support for the windows crate.")
-    (license (list license:expat license:asl2.0))))
+    (arguments (list #:skip-build? #t))))
 
 (define-public rust-windows-x86-64-msvc-0.36
   (package
@@ -73245,6 +78613,30 @@ serialization.")
      "Contains function definitions for the Windows API library ws2_32.")
     (license license:expat)))
 
+(define-public rust-wycheproof-0.5
+  (package
+    (name "rust-wycheproof")
+    (version "0.5.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "wycheproof" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "072rq77c9jp4ida3ag55hd4fn30q8zvi1k5adzvgf6cwyqcggbnc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/randombit/wycheproof-rs")
+    (synopsis "Wycheproof test vectors")
+    (description "Wycheproof test vectors")
+    (license license:asl2.0)))
+
 (define-public rust-wyhash-0.5
   (package
     (name "rust-wyhash")
@@ -73368,8 +78760,67 @@ Diffie-Hellman key exchange, with curve operations provided by
 @code{curve25519-dalek}.")
     (license license:bsd-3)))
 
+(define-public rust-x25519-dalek-ng-1
+  (package
+    (name "rust-x25519-dalek-ng")
+    (version "1.1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x25519-dalek-ng" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "09n35vgrryjy0m6ascfaykc8s0i517rzgj64qdq2jrlri7g78w5z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-curve25519-dalek-ng" ,rust-curve25519-dalek-ng-4)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-core" ,rust-rand-core-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-zeroize" ,rust-zeroize-1))
+       #:cargo-development-inputs
+       (("rust-bincode" ,rust-bincode-1)
+        ("rust-criterion" ,rust-criterion-0.3))))
+    (home-page "https://dalek.rs/")
+    (synopsis "Fork of x25519-dalek")
+    (description "This package provides a fork x25519-dalek, with an updated
+rand_core.")
+    (license license:bsd-3)))
+
+(define-public rust-x509-parser-0.15
+  (package
+    (name "rust-x509-parser")
+    (version "0.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x509-parser" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d7nshccpnybbh8mypirplf4bqxiy36bgh4rrd7jzng19bsw5c5s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-asn1-rs" ,rust-asn1-rs-0.5)
+        ("rust-data-encoding" ,rust-data-encoding-2)
+        ("rust-der-parser" ,rust-der-parser-8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-oid-registry" ,rust-oid-registry-0.6)
+        ("rust-ring" ,rust-ring-0.16)
+        ("rust-rusticata-macros" ,rust-rusticata-macros-4)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-time" ,rust-time-0.3))))
+    (home-page "https://github.com/rusticata/x509-parser")
+    (synopsis "X.509 parser written in pure Rust")
+    (description "This crate provides a parser for the X.509 v3 format (RFC
+5280 certificates).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-x509-parser-0.12
   (package
+    (inherit rust-x509-parser-0.15)
     (name "rust-x509-parser")
     (version "0.12.0")
     (source
@@ -73381,7 +78832,6 @@ Diffie-Hellman key exchange, with curve operations provided by
        (sha256
         (base32
          "1vanwazknxwd1kmlp443bpph9qyas021ayqk6iljxdscm0v0ijgz"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -73394,15 +78844,42 @@ Diffie-Hellman key exchange, with curve operations provided by
         ("rust-oid-registry" ,rust-oid-registry-0.2)
         ("rust-ring" ,rust-ring-0.16)
         ("rust-rusticata-macros" ,rust-rusticata-macros-4)
-        ("rust-thiserror" ,rust-thiserror-1))))
-    (home-page "https://github.com/rusticata/x509-parser")
-    (synopsis "X.509 parser written in pure Rust")
-    (description "This crate provides a parser for the X.509 v3 format (RFC
-5280 certificates).")
-    (license (list license:expat license:asl2.0))))
+        ("rust-thiserror" ,rust-thiserror-1))))))
+
+(define-public rust-x86-0.52
+  (package
+    (name "rust-x86")
+    (version "0.52.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "x86" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "11d3jip94x3dvcv0i0d5cxsgi1p2xyjrdhs550mas5vjg2bxp097"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Remove some dependencies
+       #:cargo-inputs
+       (("rust-bit-field" ,rust-bit-field-0.10)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-phf" ,rust-phf-0.9)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.9)
+        ("rust-raw-cpuid" ,rust-raw-cpuid-10)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/gz/rust-x86")
+    (synopsis "Library to program x86 (amd64) hardware")
+    (description
+     "This is a Library to program x86 (amd64) hardware.  It contains x86
+specific data structure descriptions, data-tables, as well as convenience
+function to call assembly instructions typically not exposed in higher level
+languages.")
+    (license license:expat)))
 
 (define-public rust-x86-0.33
   (package
+    (inherit rust-x86-0.52)
     (name "rust-x86")
     (version "0.33.0")
     (source
@@ -73417,7 +78894,6 @@ Diffie-Hellman key exchange, with curve operations provided by
         '(begin
            (substitute* "Cargo.toml"
              (("8\\.0") "8"))))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -73427,15 +78903,7 @@ Diffie-Hellman key exchange, with curve operations provided by
         ("rust-phf" ,rust-phf-0.7)
         ("rust-phf-codegen" ,rust-phf-codegen-0.7)
         ("rust-raw-cpuid" ,rust-raw-cpuid-8)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/gz/rust-x86")
-    (synopsis "Library to program x86 (amd64) hardware")
-    (description
-     "This is a Library to program x86 (amd64) hardware.  It contains x86
-specific data structure descriptions, data-tables, as well as convenience
-function to call assembly instructions typically not exposed in higher level
-languages.")
-    (license license:expat)))
+        ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-xattr-0.2
   (package
@@ -73550,16 +79018,24 @@ extended attributes.")
 (define-public rust-xdg-2
   (package
     (name "rust-xdg")
-    (version "2.4.1")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "xdg" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xl81zfx5fsc5n06h77s0fvrslzhh2piabfz0c1lqk5xbkdq6i8c"))))
+        (base32 "1vkzfsy3n85qnn1076h9111jg3h7k9r99jqi8nnrq3kmbbdrg1b8"))))
     (build-system cargo-build-system)
-    (arguments `(#:cargo-inputs (("rust-dirs" ,rust-dirs-4))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-home" ,rust-home-0.5)
+        ("rust-serde" ,rust-serde-1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             (setenv "HOME" (getcwd)))))))
     (home-page "https://github.com/whitequark/rust-xdg")
     (synopsis "Store and retrieve files according to XDG specification")
     (description
@@ -73694,8 +79170,36 @@ including a line breaking iterator.")
     (description "An XML library in pure Rust.")
     (license license:expat)))
 
+(define-public rust-xml5ever-0.17
+  (package
+    (name "rust-xml5ever")
+    (version "0.17.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "xml5ever" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0l76v0c228c92sskiflpsy19c0bgc8q7flhlfanm32zrbb8f2d20"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-log" ,rust-log-0.4)
+        ("rust-mac" ,rust-mac-0.1)
+        ("rust-markup5ever" ,rust-markup5ever-0.11))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-rustc-test" ,rust-rustc-test-0.3))))
+    (home-page
+     "https://github.com/servo/html5ever/blob/master/xml5ever/README.md")
+    (synopsis "Push based streaming parser for xml")
+    (description
+     "Push based streaming parser for xml.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xml5ever-0.16
   (package
+    (inherit rust-xml5ever-0.17)
     (name "rust-xml5ever")
     (version "0.16.2")
     (source
@@ -73707,7 +79211,6 @@ including a line breaking iterator.")
         (sha256
          (base32
           "0rfqys8yyigkzrqcrn5c6r10v42pwxahccyyzhc293px30w1cd4j"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-log" ,rust-log-0.4)
@@ -73716,13 +79219,7 @@ including a line breaking iterator.")
         ("rust-time" ,rust-time-0.1))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-rustc-test" ,rust-rustc-test-0.3))))
-    (home-page
-     "https://github.com/servo/html5ever/blob/master/xml5ever/README.md")
-    (synopsis "Push based streaming parser for xml")
-    (description
-     "Push based streaming parser for xml.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-rustc-test" ,rust-rustc-test-0.3))))))
 
 (define-public rust-xmlparser-0.13
   (package
@@ -73852,6 +79349,29 @@ file into an in-memory tree structure.")
 algorithm in Rust.")
     (license license:boost1.0)))
 
+(define-public rust-xz-0.1
+  (package
+    (name "rust-xz")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "xz" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d6sq57g1969hjl5k7gzzdbyr60za9hk8qs9iqz26biazy87d21w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-xz2" ,rust-xz2-0.1))))
+    (native-inputs
+     (list pkg-config xz))
+    (home-page "https://github.com/alexcrichton/xz2-rs")
+    (synopsis "Alias of `xz2` crate")
+    (description
+     "Rust bindings to @code{liblzma} providing Read/Write streams as well as
+low-level in-memory encoding/decoding.  Alias of @code{xz2} crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xz2-0.1
   (package
     (name "rust-xz2")
@@ -73943,8 +79463,32 @@ Read/Write streams as well as low-level in-memory encoding and decoding.")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-yasna-0.5
+  (package
+    (name "rust-yasna")
+    (version "0.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "yasna" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1ka4ixrplnrfqyl1kymdj8cwpdp2k0kdr73b57hilcn1kiab6yz1"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bit-vec" ,rust-bit-vec-0.6)
+        ("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-time" ,rust-time-0.3))
+       #:cargo-development-inputs (("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/qnighy/yasna.rs")
+    (synopsis "ASN.1 library for Rust")
+    (description "ASN.1 library for Rust")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-yasna-0.4
   (package
+    (inherit rust-yasna-0.5)
     (name "rust-yasna")
     (version "0.4.0")
     (source (origin
@@ -73953,18 +79497,13 @@ library.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32 "0xgsvxqnycdakh6j3hg4dk3mylrpnba50w0d36vg5k311sfs4qp2"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bit-vec" ,rust-bit-vec-0.6)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-num-bigint" ,rust-num-bigint-0.4))
        #:cargo-development-inputs
-       (("rust-num-traits" ,rust-num-traits-0.2))))
-    (home-page "https://github.com/qnighy/yasna.rs")
-    (synopsis "ASN.1 library for Rust")
-    (description "ASN.1 library for Rust")
-    (license (list license:expat license:asl2.0))))
+       (("rust-num-traits" ,rust-num-traits-0.2))))))
 
 (define-public rust-yeslogic-fontconfig-sys-3
   (package
@@ -74035,6 +79574,125 @@ for locating fonts.")
     (description "This package provides an implementation of zbase32.")
     (license license:lgpl3+)))
 
+(define-public rust-zbus-3
+  (package
+    (name "rust-zbus")
+    (version "3.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0pl5ri4lihzzxzxgvw1m0lpq90pnack0hi6gg48jsqyb1iy5i79p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Not all files included.
+       #:cargo-inputs
+       (("rust-async-broadcast" ,rust-async-broadcast-0.5)
+        ("rust-async-executor" ,rust-async-executor-1)
+        ("rust-async-io" ,rust-async-io-1)
+        ("rust-async-lock" ,rust-async-lock-2)
+        ("rust-async-recursion" ,rust-async-recursion-1)
+        ("rust-async-task" ,rust-async-task-4)
+        ("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-derivative" ,rust-derivative-2)
+        ("rust-dirs" ,rust-dirs-4)
+        ("rust-enumflags2" ,rust-enumflags2-0.7)
+        ("rust-event-listener" ,rust-event-listener-2)
+        ("rust-futures-core" ,rust-futures-core-0.3)
+        ("rust-futures-sink" ,rust-futures-sink-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-hex" ,rust-hex-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-nix" ,rust-nix-0.25)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-ordered-stream" ,rust-ordered-stream-0.1)
+        ("rust-quick-xml" ,rust-quick-xml-0.27)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-xml-rs" ,rust-serde-xml-rs-0.4)
+        ("rust-serde-repr" ,rust-serde-repr-0.1)
+        ("rust-sha1" ,rust-sha1-0.10)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-vsock" ,rust-tokio-vsock-0.3)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-uds-windows" ,rust-uds-windows-1)
+        ("rust-vsock" ,rust-vsock-0.3)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-zbus-macros" ,rust-zbus-macros-3)
+        ("rust-zbus-names" ,rust-zbus-names-2)
+        ("rust-zvariant" ,rust-zvariant-3))
+       #:cargo-development-inputs
+       (("rust-async-std" ,rust-async-std-1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-ntest" ,rust-ntest-0.9)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-test-log" ,rust-test-log-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3))))
+    (home-page "https://github.com/dbus2/zbus/")
+    (synopsis "API for D-Bus communication")
+    (description "This package provides an API for D-Bus communication.")
+    (license license:expat)))
+
+(define-public rust-zbus-macros-3
+  (package
+    (name "rust-zbus-macros")
+    (version "3.7.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus-macros" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y4cw7x8hrpz9xd43spd0vzvfbm1991bik1yb2873py0j0p2ljb6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Tests need a running dbus instance.
+       #:cargo-inputs
+       (("rust-proc-macro-crate" ,rust-proc-macro-crate-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-async-io" ,rust-async-io-1)
+        ("rust-doc-comment" ,rust-doc-comment-0.3)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://github.com/dbus2/zbus/")
+    (synopsis "proc-macros for zbus")
+    (description "This package provides proc-macros for zbus.")
+    (license license:expat)))
+
+(define-public rust-zbus-names-2
+  (package
+    (name "rust-zbus-names")
+    (version "2.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zbus-names" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1adl0acl39flk4jnrv7axg29kpwm7cy15w2wf0yy59mxdmvvp07v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-zvariant" ,rust-zvariant-3))))
+    (home-page "https://github.com/dbus2/zbus/")
+    (synopsis "Collection of D-Bus bus names types")
+    (description "This package provides a collection of D-Bus bus names types.")
+    (license license:expat)))
+
 (define-public rust-zerocopy-0.6
   (package
     (name "rust-zerocopy")
@@ -74287,9 +79945,14 @@ implementation that works everywhere, even WASM!")
         (base32 "1r7xlmgnifhxbfyid8vkcnd5ip16gx9hf89d1l0lzrpc4q1rdk10"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; Not all files included.
        #:cargo-inputs
-       (("rust-zstd-safe" ,rust-zstd-safe-5))))
+       (("rust-zstd-safe" ,rust-zstd-safe-5))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-humansize" ,rust-humansize-1)
+        ("rust-partial-io" ,rust-partial-io-0.5)
+        ("rust-walkdir" ,rust-walkdir-2))))
     (home-page "https://github.com/gyscos/zstd-rs")
     (synopsis "Binding to the zstd compression library")
     (description
@@ -74300,7 +79963,7 @@ implementation that works everywhere, even WASM!")
   (package
     (inherit rust-zstd-0.11)
     (name "rust-zstd")
-    (version "0.9.0+zstd.1.5.0")
+    (version "0.9.3+zstd.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -74309,30 +79972,21 @@ implementation that works everywhere, even WASM!")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1k9caa048d8x9asksjaf62xkpv0m1wsmw94h29k3csybq9frlx07"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-zstd-safe" ,rust-zstd-safe-4))))))
-
-(define-public rust-zstd-0.8
-  (package
-    (inherit rust-zstd-0.9)
-    (name "rust-zstd")
-    (version "0.8.3+zstd.1.5.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "zstd" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "1gy2rc3hmqpzfkh9f5d395lhwjk8qwpll3gb73bznn2agd60k9sy"))))
+         "15dsisk3g9ncbxzb6miwav35p2v98az6clh5qdab5jxn05l9qzrp"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (substitute* "Cargo.toml"
+                  (("\"=([[:digit:]]+(\\.[[:digit:]]+)*)" _ version)
+                   (string-append "\"^" version)))))))
     (arguments
-     `(#:skip-build? #t
+     `(#:tests? #f      ; Not all files included.
        #:cargo-inputs
-       (("rust-futures" ,rust-futures-0.1)
-        ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-zstd-safe" ,rust-zstd-safe-4))))))
+       (("rust-zstd-safe" ,rust-zstd-safe-4))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-humansize" ,rust-humansize-1)
+        ("rust-partial-io" ,rust-partial-io-0.5)
+        ("rust-walkdir" ,rust-walkdir-2))))))
 
 (define-public rust-zstd-safe-5
   (package
@@ -74348,8 +80002,7 @@ implementation that works everywhere, even WASM!")
         (base32 "1nzl4q3xl68pq58g9xlym299bvjdii8cl7ix595ym7jgw22maahx"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-zstd-sys" ,rust-zstd-sys-2))))
     (home-page "https://github.com/gyscos/zstd-rs")
@@ -74363,7 +80016,7 @@ library.")
   (package
     (inherit rust-zstd-safe-5)
     (name "rust-zstd-safe")
-    (version "4.1.1+zstd.1.5.0")
+    (version "4.1.6+zstd.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -74371,36 +80024,19 @@ library.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0yghr94blhnfigzsynm2km3g93886z49612y7rh07c4kqpr90769"))))
+        (base32 "1fz97qn7galkwl31n28cil44nxfj81ryd33v2vb041r7pd8irdll"))))
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-libc" ,rust-libc-0.2)
-        ("rust-zstd-sys" ,rust-zstd-sys-1))))))
-
-(define-public rust-zstd-safe-3
-  (package
-    (inherit rust-zstd-safe-4)
-    (name "rust-zstd-safe")
-    (version "3.0.1+zstd.1.4.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "zstd-safe" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "133gassn5zy4vf0hhgsff3gxv1q3nc0bzi3qrqq7n4iqv6ycm1qk"))))
-    (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
         ("rust-zstd-sys" ,rust-zstd-sys-1))))))
 
 ;; TODO: Unbundle zstd.
+;; The 'legacy' feature, enabled by default, needs headers which aren't
+;; installed by default in zstd.
 (define-public rust-zstd-sys-2
   (package
     (name "rust-zstd-sys")
-    (version "2.0.7+zstd.1.5.4")
+    (version "2.0.8+zstd.1.5.5")
     (source
      (origin
        (method url-fetch)
@@ -74408,11 +80044,12 @@ library.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1xf7ng97h6h89bvisllj05vapkqcacn88y9bfm6jjmgyl8xrql4l"))))
+        (base32 "137c0wkxb04l0ig5df8a1ni94dl0g2ibz2q9dicg4bfk4ppfcmjm"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.63)
+     `(#:install-source? #f     ; invalid inclusion of reserved file name
+       #:cargo-inputs
+       (("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))))
@@ -74427,7 +80064,7 @@ compression library.")
   (package
     (inherit rust-zstd-sys-2)
     (name "rust-zstd-sys")
-    (version "1.6.1+zstd.1.5.0")
+    (version "1.6.3+zstd.1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -74435,10 +80072,11 @@ compression library.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0cra76lginz5k659rch7axg5nyms67yffygr3k7ic7a3lb3j0lb1"))))
+        (base32 "1a1f839k3mxh3qhjga1vd2sfxrsi41cqrnpyc5byfd6nr2jsyjgw"))))
     (arguments
-     `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.58)
+     `(#:install-source? #f     ; invalid inclusion of reserved file name
+       #:cargo-inputs
+       (("rust-bindgen" ,rust-bindgen-0.59)
         ("rust-cc" ,rust-cc-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))))
@@ -74469,6 +80107,99 @@ compression library.")
 in Pure Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-zvariant-3
+  (package
+    (name "rust-zvariant")
+    (version "3.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zvariant" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "131kaczf10psc8clzlndcc52dym5vi4g22kqf0qwaq6rw2z93cj4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-enumflags2" ,rust-enumflags2-0.7)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
+        ("rust-static-assertions" ,rust-static-assertions-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-1)
+        ("rust-zvariant-derive" ,rust-zvariant-derive-3))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-glib" ,rust-glib-0.17)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-repr" ,rust-serde-repr-0.1))))
+    (native-inputs
+     (list pkg-config))
+    (inputs
+     (list glib))
+    (home-page "https://github.com/dbus2/zbus/")
+    (synopsis "D-Bus & GVariant encoding & decoding")
+    (description "D-Bus & GVariant encoding & decoding")
+    (license license:expat)))
+
+(define-public rust-zvariant-derive-3
+  (package
+    (name "rust-zvariant-derive")
+    (version "3.15.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zvariant-derive" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1kcfgpqshggr5v7dwldjggix79zcyj7fizw7dkh6w39iziyplkck"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f      ; Needs unstable features.
+       #:cargo-inputs
+       (("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)
+        ("rust-zvariant-utils" ,rust-zvariant-utils-1))
+       #:cargo-development-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-enumflags2" ,rust-enumflags2-0.7)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-repr" ,rust-serde-repr-0.1))))
+    (home-page "https://github.com/dbus2/zbus/")
+    (synopsis "D-Bus & GVariant encoding & decoding")
+    (description "D-Bus & GVariant encoding & decoding")
+    (license license:expat)))
+
+(define-public rust-zvariant-utils-1
+  (package
+    (name "rust-zvariant-utils")
+    (version "1.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "zvariant-utils" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "00625h3240rixvfhq6yhws1d4bwf3vrf74v8s69b97aq27cg0d3j"))))
+    (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/dbus2/zbus/")
+    (synopsis "Utilities used internally by the zvariant crate")
+    (description "Various utilities used internally by the zvariant crate.")
+    (license license:expat)))
+
 ;;;
 ;;; 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/databases.scm b/gnu/packages/databases.scm
index 762d8bd402..3d41649f4d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1190,14 +1190,14 @@ and high-availability (HA).")
 (define-public postgresql-15
   (package
     (name "postgresql")
-    (version "15.3")
+    (version "15.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "0cnrk5jrwfqkcx8mlg761s60ninqrsxpzasf7xfbzzq03y4x9izz"))
+                "1yf8cfg9j2pfxh5lxfaq1ifbvrcvv2g5vjxnadk36ds4vi5mmv5s"))
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -1265,27 +1265,27 @@ pictures, sounds, or video.")
 (define-public postgresql-13
   (package
     (inherit postgresql-14)
-    (version "13.11")
+    (version "13.12")
     (source (origin
               (inherit (package-source postgresql-14))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1yqbwnzgdgaim476smwkdj2jd6j92x9xqm2f1mknnmh3f9jgz4j9"))))))
+                "12r1kwjaclq2qn4qg3k6j0asrs4r0k0g1fkdpb3pnjsiwg7fv88d"))))))
 
 (define-public postgresql-11
   (package
     (inherit postgresql-13)
     (name "postgresql")
-    (version "11.20")
+    (version "11.21")
     (source (origin
               (inherit (package-source postgresql-13))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1kmcnnc2nwjxv042b8bxbdxdgfksxvgmfhh4999rhzjays18hz1x"))))
+                "0l7qrwzwyiy5dwg6j7nnd9mq245sycc4gcv6a6r7gpfmf5s87c07"))))
     (native-inputs
      (modify-inputs (package-native-inputs postgresql-13)
        (replace "docbook-xml" docbook-xml-4.2)))))
@@ -1850,8 +1850,8 @@ which uses SQL to describe changes.")
 
 (define-public sqlcrush
   ;; Unfortunately, there is no proper upstream release and may never be.
-  (let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a")
-        (revision "1"))
+  (let ((commit "502a583e97a84efdeb48e59f1bfe403daa9681ee")
+        (revision "2"))
     (package
       (name "sqlcrush")
       (version (git-version "0.1.5" revision commit))
@@ -1863,7 +1863,7 @@ which uses SQL to describe changes.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0x3wy40r93p0jv3nbwj9a77wa4ff697d13r0wffmm7q9h3mzsww8"))))
+                  "0x2q4m9ryw68kifalnm3x4bv9v2xrc2ffsiap8m9wnw6lf1h05la"))))
       (build-system python-build-system)
       (inputs
        (list python-cryptography python-psycopg2 python-pymysql
diff --git a/gnu/packages/dezyne.scm b/gnu/packages/dezyne.scm
index ef2130a940..23b51274a5 100644
--- a/gnu/packages/dezyne.scm
+++ b/gnu/packages/dezyne.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2022, 2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2022, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,14 +32,14 @@
 (define-public dezyne
   (package
     (name "dezyne")
-    (version "2.17.3")
+    (version "2.17.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://dezyne.org/download/dezyne/"
                            name "-" version ".tar.gz"))
        (sha256
-        (base32 "0x2aqfvbxhiwxj6vm17g7dkxwj8skcs9pg3a3l1x9pxy7v22wxd7"))))
+        (base32 "15jhi17f0aqnlznvpf6lkz2y837xkzf8chi9rhhb55920vqf6cgg"))))
     (inputs (list bash-minimal
                   guile-3.0-latest
                   guile-json-4
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index fab35850f5..afa11d3852 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -1131,7 +1131,7 @@ LVM D-Bus API).")
 (define-public rmlint
   (package
     (name "rmlint")
-    (version "2.10.1")
+    (version "2.10.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1140,48 +1140,44 @@ LVM D-Bus API).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "15xfkcw1bkfyf3z8kl23k3rlv702m0h7ghqxvhniynvlwbgh6j2x"))))
+                "0sk4v1chnk2hvzi92svyf8qgamfs4fvial90qwx4a7dayxhkbsm4"))))
     (build-system scons-build-system)
     (arguments
-     `(#:scons ,scons-python2
-       #:scons-flags (list (string-append "--prefix=" %output)
-                           (string-append "--actual-prefix=" %output))
-       #:tests? #f                      ; No tests?
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'scons-propagate-environment
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; TODO: `rmlint --gui` fails with
-             ;; "Failed to load shredder: No module named 'shredder'".
-             ;; The GUI might also need extra dependencies, such as
-             ;; python-gobject, python-cairo, dconf, librsvg, gtksourceview3.
-             (substitute* "lib/cmdline.c"
-               (("const char \\*commands\\[\\] = \\{\"python3\", \"python\", NULL\\};")
-                (string-append
-                 "const char *commands[] = {\""
-                 (assoc-ref inputs "python") "/bin/python"
-                 "\", \"python\", NULL};")))
-             ;; By design, SCons does not, by default, propagate
-             ;; environment variables to subprocesses.  See:
-             ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
-             ;; Here, we modify the SConstruct file to arrange for
-             ;; environment variables to be propagated.
-             (substitute* "SConstruct"
-               (("^env = Environment\\(.*\\)" all)
-                (string-append
-                 all
-                 "\nenv['ENV']=os.environ"))))))))
+     (list
+      #:scons scons-python2
+      #:scons-flags
+      #~(list (string-append "--prefix=" #$output)
+              (string-append "--actual-prefix=" #$output))
+      #:tests? #f                       ; no tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'scons-propagate-environment
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; TODO: `rmlint --gui` fails with
+              ;; "Failed to load shredder: No module named 'shredder'".
+              ;; The GUI might also need extra dependencies, such as
+              ;; python-gobject, python-cairo, dconf, librsvg, gtksourceview3.
+              (substitute* "lib/cmdline.c"
+                (("const char \\*commands\\[\\] = \\{\"python3\", \"python\", NULL\\};")
+                 (string-append "const char *commands[] = {\""
+                                (search-input-file inputs "/bin/python")
+                                "\", \"python\", NULL};")))
+              ;; By design, SCons does not, by default, propagate
+              ;; environment variables to subprocesses.  See:
+              ;; <http://comments.gmane.org/gmane.linux.distributions.nixos/4969>
+              ;; Here, we modify the SConstruct file to arrange for
+              ;; environment variables to be propagated.
+              (substitute* "SConstruct"
+                (("^env = Environment\\(.*\\)" all)
+                 (string-append all "\nenv['ENV']=os.environ"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin")
-       ("python-sphinx" ,python-sphinx)))
+     (list `(,glib "bin") pkg-config python-sphinx))
     (inputs
-     `(("python" ,python-wrapper)
-       ("glib" ,glib)
-       ("libelf" ,libelf)
-       ("elfutils" ,elfutils)
-       ("json-glib" ,json-glib)
-       ("libblkid" ,util-linux "lib")))
+     (list elfutils
+           glib
+           json-glib
+           python-wrapper
+           `(,util-linux "lib")))
     (home-page "https://rmlint.rtfd.org")
     (synopsis "Remove duplicates and other lint from the file system")
     (description "@command{rmlint} finds space waste and other broken things
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index f6c9283a29..327a29aa9e 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
-;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -421,7 +421,7 @@ display manager which supports different greeters.")
            bash-minimal                 ;for wrap-program
            gtk+
            guile-3.0
-           librsvg
+           (librsvg-for-system)
            libxklavier
            lightdm
            shared-mime-info))
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index fdd10a6611..d6bea61ca7 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
-;;; Copyright © 2018, 2022 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -91,8 +91,7 @@
   #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system meson)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system meson))
 
 (define-public cloudflare-cli
   (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
@@ -1067,72 +1066,6 @@ LuaJIT, both a resolver library and a daemon.")
                    license:cc0
                    license:lgpl2.0))))
 
-(define-public ddclient
-  (package
-    (name "ddclient")
-    (version "3.10.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ddclient/ddclient")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0l87d72apwrg6ipc9gix5gv64d4hr1ykxmss8x4r8d8mgj6j8rf1"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; XXX: erroneous version value, this is fixed in master
-        #~(begin
-            (substitute* "configure.ac"
-              (("3.10.0_2") #$version))))
-       (patches (search-patches "ddclient-skip-test.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake libtool
-           perl-test-warnings perl-test-mockmodule))
-    (inputs
-     (list inetutils ; logger
-           net-tools
-           bash-minimal                           ;for 'wrap-program'
-           perl
-           perl-digest-sha1
-           perl-io-socket-ssl
-           perl-io-socket-inet6  ;; XXX: this is likely to be removed in a future ddclient release
-                                 ;; https://github.com/ddclient/ddclient/issues/461
-           perl-json))
-    (arguments
-     (list
-      #:configure-flags #~(list "--localstatedir=/var")
-      #:phases
-      #~(modify-phases %standard-phases
-          (replace 'install
-            (lambda _
-              ;; XXX: Do not create /var
-              (invoke "make" "localstatedir=/tmp/discard" "install")))
-          (add-after 'wrap 'wrap-ddclient
-            (lambda* (#:key inputs #:allow-other-keys)
-              (wrap-program (string-append #$output "/bin/ddclient")
-                `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:))
-                `("PATH" prefix ,(map (lambda (x)
-                                        (string-append (assoc-ref inputs x) "/bin"))
-                                      '("inetutils" "net-tools")))))))))
-    (native-search-paths
-     (list $SSL_CERT_DIR $SSL_CERT_FILE))
-    (home-page "https://ddclient.net/")
-    (synopsis "Address updating utility for dynamic DNS services")
-    (description "This package provides a client to update dynamic IP
-addresses with several dynamic DNS service providers, such as
-@uref{https://www.dyndns.com/account/login.html,DynDNS.com}.
-
-This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to
-access a machine with a dynamic IP address.
-
-The client supports both dynamic and (near) static services, as well as MX
-record and alternative name management.  It caches the address, and only
-attempts the update when it has changed.")
-    (license license:gpl2+)))
-
 (define-public hnsd
    (package
      (name "hnsd")
diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm
index 0855e45084..4a8ff59ec9 100644
--- a/gnu/packages/dunst.scm
+++ b/gnu/packages/dunst.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015, 2017, 2018 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
@@ -69,7 +69,7 @@
            which))
     (inputs
      (list dbus
-           librsvg ; for svg support
+           (librsvg-for-system) ; for svg support
            glib
            cairo
            pango
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 6962547c75..16d4fcd6e3 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -454,7 +454,8 @@ designed to be used in a generic text renderer.")
               (sha256
                (base32
                 "0c0s4silpax74kwfz3dfmzn4lkv6jsyb800vfak166vii0hvbv3d"))
-              (patches (search-patches "fbreader-curl-7.62.patch"))))
+              (patches (search-patches "fbreader-curl-7.62.patch"
+                                       "fbreader-fix-icon.patch"))))
     (build-system gnu-build-system)
     (inputs
      `(("curl" ,curl)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 54380e7ebb..bb307cf7ab 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -116,7 +116,7 @@
                       ":" (or (getenv "CPATH") ""))))))))
     (inputs
      `(("gtk+" ,gtk+-2)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libxml2" ,libxml2)
        ("sdl-mixer" ,sdl-mixer)
        ("sqlite" ,sqlite)
@@ -876,7 +876,7 @@ endless.  For example:
     (inputs
      `(("font-andika" ,font-sil-andika)
        ("libpng" ,libpng)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libxml2" ,libxml2)
        ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-net sdl-pango)))))
     (home-page "https://github.com/tux4kids/t4kcommon")
@@ -932,7 +932,7 @@ TuxMath and TuxType.")
     (native-inputs
      (list pkg-config))
     (inputs
-     `(("librsvg" ,librsvg)
+     `(("librsvg" ,(librsvg-for-system))
        ("libxml2" ,libxml2)
        ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-net sdl-pango)))
        ("t4k-common" ,t4k-common)))
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 11c1a6be67..0f0751e39a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -9052,6 +9052,30 @@ completion candidate when using the Company text completion framework.")
 @code{company-math}.")
     (license license:gpl3+)))
 
+(define-public emacs-math-preview
+  (package
+    (name "emacs-math-preview")
+    (version "5.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.com/matsievskiysv/math-preview")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ni08900p0pbajw143iw0b7a62qiqcm9b6jy7pqgpn437vydjx1z"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-dash emacs-s))
+    (home-page "https://gitlab.com/matsievskiysv/math-preview")
+    (synopsis "Preview TeX math equations inline using MathJax")
+    (description
+     "Emacs math-preview uses MathJax for displaying TeX, MathML and AsciiMath
+  math inline in Emacs buffers.")
+    (license license:gpl3+)))
+
 (define-public emacs-company-coq
   (package
     (name "emacs-company-coq")
@@ -23891,7 +23915,7 @@ within Emacs.")
 (define-public emacs-ibrowse
   (package
     (name "emacs-ibrowse")
-    (version "0.1.8")
+    (version "0.2.2")
     (source
      (origin
        (method git-fetch)
@@ -23900,9 +23924,9 @@ within Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0q3imid9byaay0lqvv5n2klwk680w8x3qzdb279rdr08bb36w5ya"))))
+        (base32 "1dm46k67smg2m33c6n68blpw2mw7fx1ymq81kv54jjlpmv3xrdsf"))))
     (build-system emacs-build-system)
-    (inputs (list sqlite))
+    (inputs (list emacs-websocket sqlite))
     (home-page "https://git.sr.ht/~ngraves/ibrowse.el")
     (synopsis "Interact with your browser from emacs")
     (description "This package provides some commands to act on the browser
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e0f7199d2e..9c14e9c602 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -3223,7 +3223,7 @@ data structures and to operate on them.")
           gerbv
           glibmm
           gtkmm-2
-          librsvg))
+          (librsvg-for-system)))
    (native-inputs
     (list autoconf automake libtool pkg-config))
    (home-page "https://github.com/pcb2gcode/pcb2gcode")
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 90e00d7592..82b52fe2e9 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1725,7 +1725,12 @@ Dropbox API v2.")
         (sha256
          (base32
           "1vzfhw3z2r0rb6s0qdzirh3pl7rv1z8xmxa0z5h7h1wqhpl05ai7"))
-        (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))))
+        (patches (search-patches "dbxfs-remove-sentry-sdk.patch"))
+        (snippet
+         #~(begin (use-modules (guix build utils))
+                  ;; Don't check for package updates.
+                  (substitute* "dbxfs/main.py"
+                    (("if version") "if false"))))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f)) ; tests requires safefs
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index d7b2e80026..e881ab11cd 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1858,7 +1858,7 @@ programming.  Iosevka is completely generated from its source code.")
 (define-public font-sarasa-gothic
   (package
     (name "font-sarasa-gothic")
-    (version "0.41.4")
+    (version "0.41.6")
     (source
      (origin
        (method url-fetch)
@@ -1866,7 +1866,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/sarasa-gothic-ttc-" version ".7z"))
        (sha256
-        (base32 "0rqw6wrr55alsld8a9vk5g6n7zyivfh2zpw4my72qz3nfp448fs2"))))
+        (base32 "1l238rx9nw6acxy5k5b7bjd8br8cnivdlyly7r20w1b36gscl878"))))
     (build-system font-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 88dbcb581d..0a1c9bffb3 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015-2017, 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2017, 2018, 2019, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
-;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
@@ -339,7 +339,7 @@ tests.")
 (define-public malcontent
   (package
     (name "malcontent")
-    (version "0.8.0")
+    (version "0.11.1")
     (source
      (origin
        (method git-fetch)
@@ -348,7 +348,7 @@ tests.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3"))))
+        (base32 "0g622ig5ffrzk9184xff3lardk7rnmkvj8y5g6h6s41bfh51b71m"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -359,25 +359,26 @@ tests.")
            (lambda _
              (substitute* "libmalcontent/tests/app-filter.c"
                (("g_test_add_func \\(\"/app-filter/appinfo\", test_app_filter_appinfo\\);")
-                 ""))
-             #t)))))
+                 "")))))))
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("itstool" ,itstool)
-       ("libglib-testing" ,libglib-testing)
-       ("libxml2" ,libxml2)
-       ("pkg-config" ,pkg-config)))
+     (list desktop-file-utils
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           `(,gtk "bin")
+           itstool
+           libglib-testing
+           libxml2
+           pkg-config))
     (inputs
      (list accountsservice
+           appstream
            appstream-glib
            dbus
            flatpak
            glib
-           gtk+
+           gtk
+           libadwaita
            libostree
            linux-pam
            polkit))
@@ -644,7 +645,7 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "246.10")
+    (version "252.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -653,25 +654,30 @@ the freedesktop.org XDG Base Directory specification.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "16045bhpwjq2nqgswln67ipg1zrz2djxlgkfngqng3jqpwagmnzq"))
-              (patches (search-patches
-                        "elogind-revert-polkit-detection.patch"))))
+                "049cfv97975x700s7lx4p9i22nv6v7j046iwkspxba7kr5qq7akw"))
+              (patches (search-patches "elogind-fix-rpath.patch"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
        ,#~(let* ((out #$output)
                  (sysconf (string-append out "/etc"))
                  (libexec (string-append out "/libexec/elogind"))
-                 (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
+                 (dbus-data (string-append out "/share/dbus-1"))
+                 (dbuspolicy (string-append dbus-data "/system.d"))
+                 (dbussessionservice (string-append dbus-data "/services"))
+                 (dbussystemservice (string-append dbus-data
+                                                   "/system-services"))
+                 (dbusinterfaces (string-append dbus-data "/interfaces"))
+
                  #$@(if (not (target-riscv64?))
-                      #~((kexec-tools #$(this-package-input "kexec-tools")))
-                      #~())
+                        #~((kexec-tools #$(this-package-input "kexec-tools")))
+                        #~())
                  (shadow #$(this-package-input "shadow"))
                  (shepherd #$(this-package-input "shepherd"))
                  (halt-path (string-append shepherd "/sbin/halt"))
                  #$@(if (not (target-riscv64?))
-                      #~((kexec-path (string-append kexec-tools "/sbin/kexec")))
-                      #~())
+                        #~((kexec-path (string-append kexec-tools "/sbin/kexec")))
+                        #~())
                  (nologin-path (string-append shadow "/sbin/nologin"))
                  (poweroff-path (string-append shepherd "/sbin/shutdown"))
                  (reboot-path (string-append shepherd "/sbin/reboot")))
@@ -680,12 +686,15 @@ the freedesktop.org XDG Base Directory specification.")
              (string-append "-Dsysconfdir=" sysconf)
              (string-append "-Drootlibexecdir=" libexec)
              (string-append "-Ddbuspolicydir=" dbuspolicy)
+             (string-append "-Ddbussessionservicedir=" dbussessionservice)
+             (string-append "-Ddbussystemservicedir=" dbussystemservice)
+             (string-append "-Ddbus-interfaces-dir=" dbusinterfaces)
              (string-append "-Dc_link_args=-Wl,-rpath=" libexec)
              (string-append "-Dcpp_link_args=-Wl,-rpath=" libexec)
              (string-append "-Dhalt-path=" halt-path)
              #$@(if (not (target-riscv64?))
-                  #~((string-append "-Dkexec-path=" kexec-path))
-                  #~())
+                    #~((string-append "-Dkexec-path=" kexec-path))
+                    #~())
              (string-append "-Dpoweroff-path=" poweroff-path)
              (string-append "-Dreboot-path=" reboot-path)
              (string-append "-Dnologin-path=" nologin-path)
@@ -704,21 +713,28 @@ the freedesktop.org XDG Base Directory specification.")
            ;; XXX There is no run-time setting to set this per-process, only a
            ;; build-time, hard-coded list of global directories.
            (lambda _
-             (substitute* (list "src/login/elogind-dbus.c"
-                                "src/sleep/sleep.c")
+             (substitute* (list "src/login/logind-core.c"
+                                "src/login/logind-dbus.c"
+                                "src/sleep/sleep.c"
+                                "src/shared/sleep-config.c")
                (("PKGSYSCONFDIR") "\"/etc/elogind\""))))
          (add-after 'unpack 'adjust-tests
            (lambda _
-             ;; Skip the following test, which depends on users such as 'root'
-             ;; existing in the build environment.
-             (invoke "sed" "/src\\/test\\/test-user-util.c/,+2s/^/#/g"
-                     "-i" "src/test/meson.build")
+             ;; Skip the user-util tests, which depends on users such as
+             ;; 'root' existing in the build environment.
+             (substitute* "src/test/meson.build"
+               ((".*'test-user-util.c'.*") "")
+               ((".*'test-cgroup.c'.*") ""))
              ;; This test tries to copy some bytes from /usr/lib/os-release,
              ;; which does not exist in the build container.  Choose something
              ;; more likely to be available.
              (substitute* "src/test/test-copy.c"
                (("/usr/lib/os-release")
-                "/etc/passwd"))
+                "/etc/passwd")
+               ;; Skip the copy_holes test, which fails for unknown reasons
+               ;; (see: https://github.com/elogind/elogind/issues/261).
+               (("TEST_RET\\(copy_holes).*" all)
+                (string-append all "        return 77;\n")))
              ;; Use a shebang that works in the build container.
              (substitute* "src/test/test-exec-util.c"
                (("#!/bin/sh")
@@ -743,41 +759,37 @@ the freedesktop.org XDG Base Directory specification.")
              ;; loopback device, but that fails because /sys is unavailable.
              (substitute* "src/libelogind/sd-device/test-sd-device-thread.c"
                ((".*sd_device_new_from_syspath.*/sys/class/net/lo.*")
-                "return 77;"))
-             ;; Most of these tests require cgroups or an actual live
-             ;; logind system so that it can flicker the monitor, etc.
-             ;; Just skip it until a more narrow selection can be made.
-             (substitute* "src/libelogind/sd-login/test-login.c"
-               (("test_login\\(\\);")
                 "return 77;"))))
          (add-after 'unpack 'change-pid-file-path
            (lambda _
              (substitute* "src/login/elogind.c"
                (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\"")))))))
     (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.5)
-       ("docbook-xml-4.2" ,docbook-xml-4.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("gettext" ,gettext-minimal)
-       ("gperf" ,gperf)
-       ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
-       ("m4" ,m4)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("xsltproc" ,libxslt)))
+     (list docbook-xml-4.5
+           docbook-xml-4.2
+           docbook-xsl
+           gettext-minimal
+           gperf
+           libxml2                      ;for XML_CATALOG_FILES
+           m4
+           pkg-config
+           python
+           python-jinja2
+           libxslt))
     (inputs
      (append
-       (if (not (target-riscv64?))
-         (list kexec-tools)
-         '())
-       (list linux-pam
-             libcap
-             shadow         ; for 'nologin'
-             shepherd       ; for 'halt' and 'reboot', invoked
-                            ; when pressing the power button
-             dbus
-             eudev
-             acl)))         ; to add individual users to ACLs on /dev nodes
+      (if (not (target-riscv64?))
+          (list kexec-tools)
+          '())
+      (list linux-pam
+            libcap
+            `(,util-linux "lib")        ;for 'libmount'
+            shadow                      ;for 'nologin'
+            shepherd                    ;for 'halt' and 'reboot', invoked
+                                        ;when pressing the power button
+            dbus
+            eudev
+            acl)))             ; to add individual users to ACLs on /dev nodes
     (home-page "https://github.com/elogind/elogind")
     (synopsis "User, seat, and session management service")
     (description "Elogind is the systemd project's \"logind\" service,
diff --git a/gnu/packages/fvwm.scm b/gnu/packages/fvwm.scm
index 872810c658..f7866ea870 100644
--- a/gnu/packages/fvwm.scm
+++ b/gnu/packages/fvwm.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
@@ -67,7 +67,7 @@
     (inputs
      (list fribidi
            libpng
-           librsvg
+           (librsvg-for-system)
            libxcursor
            libxext
            libxft
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index bf5c680042..a5fa19fc20 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1160,7 +1160,7 @@ allows users to brew while offline.")
 (define-public corsix-th
   (package
     (name "corsix-th")
-    (version "0.66")
+    (version "0.67")
     (source
      (origin
        (method git-fetch)
@@ -1169,29 +1169,28 @@ allows users to brew while offline.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sgsvhqgiq6v1v5am7ghja8blhlrj0y1arvq6xq1j5fwa7c59ihs"))))
+        (base32 "14996kbrwdrd0gpz19il2i4p650qdhjw8v8ka3aigk6pl4kda3sq"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'wrap-binary
-           (lambda _
-             ;; Set Lua module paths and default MIDI soundfont on startup.
-             (let* ((out (assoc-ref %outputs "out"))
-                    (fluid (assoc-ref %build-inputs "fluid-3"))
-                    (lua-version ,(version-major+minor (package-version lua)))
-                    (lua-cpath
-                     (map (lambda (lib)
-                            (string-append
-                             (assoc-ref %build-inputs (string-append "lua-" lib))
-                             "/lib/lua/" lua-version "/?.so"))
-                          '("filesystem" "lpeg"))))
-               (wrap-program (string-append out "/bin/corsix-th")
-                 `("LUA_CPATH" ";" = ,lua-cpath)
-                 `("SDL_SOUNDFONTS" ":" suffix
-                   (,(string-append fluid "/share/soundfonts/FluidR3Mono_GM.sf3")))))
-             #t)))
-       #:tests? #f)) ; TODO need busted package to run tests
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'wrap-binary
+            (lambda _
+              ;; Set Lua module paths and default MIDI soundfont on startup.
+              (let* ((fluid #$(this-package-input "fluid-3"))
+                     (lua-version #$(version-major+minor (package-version lua)))
+                     (lua-cpath
+                      (map (lambda (lib)
+                             (string-append
+                              (assoc-ref %build-inputs (string-append "lua-" lib))
+                              "/lib/lua/" lua-version "/?.so"))
+                           '("filesystem" "lpeg"))))
+                (wrap-program (string-append #$output "/bin/corsix-th")
+                  `("LUA_CPATH" ";" = ,lua-cpath)
+                  `("SDL_SOUNDFONTS" ":" suffix
+                    (,(string-append fluid "/share/soundfonts/FluidR3Mono_GM.sf3"))))))))
+      #:tests? #f)) ; TODO need busted package to run tests
     ;; Omit Lua-Socket dependency to disable automatic updates.
     (inputs
      (list ffmpeg
@@ -3740,7 +3739,7 @@ object-oriented programming.")
                                (assoc-ref inputs "chess")
                                "/bin/gnuchessx"))))))))
     (inputs
-     (list alsa-utils chess gtk+-2 librsvg))
+     (list alsa-utils chess gtk+-2 (librsvg-for-system)))
     (native-inputs
      (list texinfo pkg-config))
     (home-page "https://www.gnu.org/software/xboard/")
@@ -5166,7 +5165,7 @@ are only two levels to play with, but they are very addictive.")
                (("\"beep\"")
                 (string-append "\"" (assoc-ref inputs "beep") "/bin/beep\"")))
              #t)))))
-    (inputs (list avahi beep gtk+ librsvg))
+    (inputs (list avahi beep gtk+ (librsvg-for-system)))
     (native-inputs (list intltool itstool libxml2 pkg-config))
     (synopsis "Board game inspired by The Settlers of Catan")
     (description "Pioneers is an emulation of the board game The Settlers of
@@ -5815,7 +5814,7 @@ safety of the Chromium vessel.")
        ("fribidi" ,fribidi)
        ("gettext" ,gettext-minimal)
        ("libpng" ,libpng)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libpaper" ,libpaper)
        ("netpbm" ,netpbm)
        ("sdl" ,(sdl-union (list sdl sdl-mixer sdl-ttf sdl-image)))))
@@ -7755,7 +7754,7 @@ Github or Gitlab.")
             (base32
              "1s86cd36rwkff329mb1ay1wi5qqyi35564ppgr3f4qqz9wj9vs2m"))))
        ("gettext" ,gettext-minimal)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("po4a" ,po4a)
        ("python" ,python-wrapper)))
     (inputs
diff --git a/gnu/packages/genealogy.scm b/gnu/packages/genealogy.scm
index b8bd4339b9..c1cd26a9c4 100644
--- a/gnu/packages/genealogy.scm
+++ b/gnu/packages/genealogy.scm
@@ -63,7 +63,7 @@
            gtk+
            gtkspell3
            graphviz
-           librsvg
+           (librsvg-for-system)
            osm-gps-map
            pango
            python-bsddb3
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index cce4f2518d..f5f59d1d99 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -685,15 +685,16 @@ coverages using a SpatiaLite DBMS.")
 (define-public libspatialite
   (package
     (name "libspatialite")
-    (version "5.0.1")
+    (version "5.1.0")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://www.gaia-gis.it/gaia-sins/libspatialite-"
+       (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
+                           "libspatialite-sources/libspatialite-"
                            version ".tar.gz"))
        (sha256
         (base32
-         "164y82rw2lrp5glfc0rkn7n6xvx5dvlgmh7bb7815067251wkjzf"))))
+         "102hc18fvwr1kw8aap53zqi8r0l52b8wa00lvlbf1zys979jvgj3"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
@@ -2275,14 +2276,15 @@ associated attribute file (@file{.dbf}).")
 (define-public spatialite-tools
   (package
     (name "spatialite-tools")
-    (version "5.0.1")
+    (version "5.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
+                           "spatialite-tools-sources/"
                            "spatialite-tools-" version ".tar.gz"))
        (sha256
-        (base32 "070p6pg541wvwb28wkn7k0z1qdyirik2qc2jpj4pf0vzx02w414n"))))
+        (base32 "1dc3hnqa9ns0ycsac6wyl96pi052y7rrf233lq7sk708ghv30c6z"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index f2e01e6a3f..1408cc4cb4 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -240,11 +240,13 @@ from Markdown files.")
     (version "0.69")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/mquinson/po4a/releases/download/v"
+              (uri (string-append "https://github.com/mquinson/po4a"
+                                  "/releases/download/v"
                                   version "/po4a-" version ".tar.gz"))
               (sha256
                (base32
-                "15llrfdp4ilbrxy65hmmxka86xj0mrbqfiyzv715wrk16vqszm3w"))))
+                "15llrfdp4ilbrxy65hmmxka86xj0mrbqfiyzv715wrk16vqszm3w"))
+              (patches (search-patches "po4a-partial-texinfo-menu-fix.patch"))))
     (build-system perl-build-system)
     (arguments
      (list
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c887da7003..69e870adf8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -384,7 +384,6 @@ services.")
 (define-public libcloudproviders
   (package/inherit libcloudproviders-minimal
     (name "libcloudproviders")
-    (version "0.3.1")
     (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
     (arguments
      (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
@@ -567,7 +566,7 @@ in JavaScript.")
            vala))
     (inputs
      (list avahi
-           librsvg
+           (librsvg-for-system)
            libgee
            gst-plugins-base
            gtk+))
@@ -871,7 +870,7 @@ tomorrow, the rest of the week and for special occasions.")
            libjpeg-turbo
            libportal
            libpng
-           librsvg
+           (librsvg-for-system)
            python-pygobject
            rest
            tracker
@@ -4381,7 +4380,7 @@ engineering.")
            python))
     (inputs
      (list bash-minimal
-           librsvg
+           (librsvg-for-system)
            gsettings-desktop-schemas
            gtk+
            pango
@@ -6734,7 +6733,7 @@ which can read a large number of file formats.")
 (define-public rhythmbox
   (package
     (name "rhythmbox")
-    (version "3.4.6")
+    (version "3.4.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/rhythmbox/"
@@ -6742,7 +6741,7 @@ which can read a large number of file formats.")
                                   "rhythmbox-" version ".tar.xz"))
               (sha256
                (base32
-                "0d5hbsdk2p8w567mfzy4kk8xn4d227hrbyy857li3r2mrq884mpr"))))
+                "0zps1k72n7yycw6djgilgdacwdi993xqh1sh9x9lr9n17z0mcv9g"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -6802,7 +6801,7 @@ which can read a large number of file formats.")
            libpeas
            libsecret
            libmtp
-           libsoup-minimal-2
+           libsoup-minimal
            libxml2
            lirc
            pango
@@ -9109,7 +9108,7 @@ devices using the GNOME desktop.")
            libgtop
            libnma
            libpwquality
-           librsvg                      ;for loading SVG files
+           (librsvg-for-system)             ;for loading SVG files
            libsecret
            libxml2
            libwacom
@@ -10987,7 +10986,7 @@ Bluefish supports many programming and markup languages.")
            gtk+
            gtkmm-3
            libhandy
-           librsvg
+           (librsvg-for-system)
            libxml2
            libwnck))
     (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
@@ -11772,7 +11771,7 @@ functionality.")
        ("libheif" ,libheif)
        ("libjpeg" ,libjpeg-turbo)
        ("libraw" ,libraw)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libtiff" ,libtiff)
        ("libwebp" ,libwebp)))
     (home-page "https://wiki.gnome.org/Apps/Gthumb")
@@ -12468,7 +12467,7 @@ to.")
        ("itstool" ,itstool)
        ("pkg-config" ,pkg-config)))
     (inputs
-     (list gtk+ librsvg libxml2))
+     (list gtk+ (librsvg-for-system) libxml2))
     (arguments
      `(#:configure-flags '("CFLAGS=-fcommon")))
     (home-page "https://glabels.org/")
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index ea6aadbe80..5a53838435 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3261,6 +3261,23 @@ Signing and Encryption set of standards.  This includes support for JSON Web
 Encryption, JSON Web Signature, and JSON Web Token standards.")
     (license license:asl2.0)))
 
+(define-public go-github-com-go-jose-go-jose-v3
+  (package
+    (inherit go-gopkg-in-square-go-jose-v2)
+    (name "go-github-com-go-jose-go-jose-v3")
+    (version "3.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/go-jose/go-jose")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1fnw0p49wc9gmd2xcji2x9jf97dgg9igagd5m6bmq3nw9jjfqdc5"))))
+    (arguments
+     (list #:import-path "github.com/go-jose/go-jose/v3"))))
+
 (define-public go-gopkg.in-tomb.v2
   (let ((commit "d5d1b5820637886def9eef33e03a27a9f166942c")
         (revision "0"))
@@ -9572,6 +9589,28 @@ use one of our glamorous default themes.")
 @code{go-golang-org-x-oauth2} package.")
     (license license:asl2.0)))
 
+(define-public go-github-com-coreos-go-oidc-v3
+  (package
+    (inherit go-github-com-coreos-go-oidc)
+    (name "go-github-com-coreos-go-oidc-v3")
+    (version "3.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/coreos/go-oidc")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1sbm6n3lp48lymn0g921afhq2j6inb38w3wy5rhyx9h8gpzhnxx9"))))
+    (arguments
+     (list ;; no Go files in [...]/src/github.com/coreos/go-oidc/v3.
+           #:import-path "github.com/coreos/go-oidc/v3/oidc"
+           #:unpack-path "github.com/coreos/go-oidc/v3"))
+    (propagated-inputs
+     (list go-github-com-go-jose-go-jose-v3
+           go-golang-org-x-oauth2))))
+
 (define-public go-github-com-coreos-go-semver
   (package
     (name "go-github-com-coreos-go-semver")
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 474065836e..f9102d3a44 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -50,7 +50,7 @@
 (define-public gpodder
   (package
     (name "gpodder")
-    (version "3.11.0")
+    (version "3.11.1")
     (source
      (origin
        (method git-fetch)
@@ -58,7 +58,7 @@
              (url "https://github.com/gpodder/gpodder")
              (commit version)))
        (sha256
-        (base32 "1387n0kgpan869c09smq5jnc3316vz8majl9bw01bw7cxg4vss3p"))
+        (base32 "121cb8qz4rp6602lpbi6m2vqx3ar1cw2s4z4r7nr5qaxb0q3gk9n"))
        (file-name (git-file-name name version))
        (patches (search-patches "gpodder-disable-updater.patch"))))
     (build-system python-build-system)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index da49f23f1f..2a94bd51cc 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1397,7 +1397,7 @@ visual effects work for film.")
      `(("giflib" ,giflib)
        ("libjpeg" ,libjpeg-turbo)       ; required for the JPEG texture plugin.
        ("jasper" ,jasper)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libxrandr" ,libxrandr)
        ("ffmpeg" ,ffmpeg-4)
        ("mesa" ,mesa)))
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index a350b6700e..4e7c80ac8d 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3046,7 +3046,7 @@ format is also supported.")
       (propagated-inputs
        (list guile-cairo guile-rsvg))
       (native-inputs
-       (list autoconf automake librsvg pkg-config texinfo))
+       (list autoconf automake (librsvg-for-system) pkg-config texinfo))
       (home-page "https://git.elephly.net/software/guile-picture-language.git")
       (synopsis "Picture language for Guile")
       (description
@@ -3844,7 +3844,7 @@ debugging code.")
 (define-public guile-png
   (package
     (name "guile-png")
-    (version "0.6.0")
+    (version "0.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3853,7 +3853,7 @@ debugging code.")
               (file-name (string-append name "-" version "-checkout"))
               (sha256
                (base32
-                "0i0q2h4kfp1mj5m3wnz2hk6z895001j38s5vkbhkdxf05cjvwkky"))))
+                "0nkim662lb48y8n5hik8rrj76600v2inwaxwnfpdny7h2j0yq1wm"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
@@ -5345,7 +5345,7 @@ GitLab instance.")
 (define-public guile-smc
   (package
     (name "guile-smc")
-    (version "0.6.0")
+    (version "0.6.2")
     (source
      (origin
        (method git-fetch)
@@ -5355,7 +5355,7 @@ GitLab instance.")
        (file-name (string-append name "-" version))
        (sha256
         (base32
-         "15b8m30kjl46p44xjd65vv1bv60hy130zfskkcsrj10fzahyk9zd"))))
+         "11083lj048ab5zsdgwpkshxi8v5nfdr7kvmmslszbi7lq2pwfqig"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("GUILE_AUTO_COMPILE=0")     ;to prevent guild warnings
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 965eca82b7..afeda4bc20 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -754,7 +754,7 @@ the OpenCV-Python library.")
            libgsf
            libjpeg-turbo
            libpng
-           librsvg
+           (librsvg-for-system)
            libtiff
            libxml2
            libwebp
@@ -906,7 +906,7 @@ including 2D color images.")
            libxml2
            libexif
            libjpeg-turbo ;required by vips.pc
-           librsvg
+           (librsvg-for-system)
            fftw
            libgsf
            imagemagick
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3336e38852..75f9e3c691 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1432,6 +1432,7 @@ language bindings to VIGRA.")
   (package
     (name "libwebp")
     (version "1.2.4")
+    (replacement libwebp/fixed)
     (source
      (origin
        ;; No tarballs are provided for >0.6.1.
@@ -1470,6 +1471,22 @@ to PNG when lossy compression is acceptable for the red/green/blue color
 channels.")
     (license license:bsd-3)))
 
+(define libwebp/fixed
+  (package
+    (inherit libwebp)
+    (name "libwebp")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://chromium.googlesource.com/webm/libwebp")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1aas6gwy7kfcq34cil781kcsl286khh9grwcx7k4d2n1g7zcpl3m"))))))
+
 (define-public libmng
   (package
     (name "libmng")
@@ -2571,7 +2588,7 @@ GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
        ("gettext" ,gettext-minimal)))
     (inputs
      (list gtk+
-           librsvg
+           (librsvg-for-system)
            hicolor-icon-theme
            libmypaint
            mypaint-brushes
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 6f6fa63c64..b407af3588 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -213,7 +213,7 @@ script.")
 (define-public graphicsmagick
   (package
     (name "graphicsmagick")
-    (version "1.3.38")
+    (version "1.3.40")
     (source
      (origin
        (method url-fetch)
@@ -226,7 +226,7 @@ script.")
                         "/GraphicsMagick-" version ".tar.xz")))
        (sha256
         (base32
-         "0x96wcspcqmkcy7jagfifgq2iamcf0ql9swvn6f2n79mb7dxj36n"))))
+         "0ikpza74p00hrs4z2cgykf7vhlqnzzkhaidjlcjppiw99sfimp4p"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 1dbec6bd12..436688526b 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1579,7 +1579,6 @@ blacklisted.certs.pem"
     (synopsis "JetBrains Java Runtime")
     (description "This package provides a Java runtime environment for
 and Java development kit.  It supports enhanced class redefinition (DCEVM),
-features optional JCEF, a framework for embedding Chromium-based browsers,
 includes a number of improvements in font rendering, keyboards support,
 windowing/focus subsystems, HiDPI, accessibility, and performance,
 provides better desktop integration and bugfixes not yet present in
@@ -1614,7 +1613,6 @@ OpenJDK.")
     (synopsis "JetBrains Java Runtime")
     (description "This package provides a Java runtime environment for
 and Java development kit.  It supports enhanced class redefinition (DCEVM),
-features optional JCEF, a framework for embedding Chromium-based browsers,
 includes a number of improvements in font rendering, keyboards support,
 windowing/focus subsystems, HiDPI, accessibility, and performance,
 provides better desktop integration and bugfixes not yet present in
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 175cdc8d5e..faf3114b84 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -181,7 +181,7 @@
            m17n-lib
            qtbase-5
            librime
-           librsvg
+           (librsvg-for-system)
            wayland
            wayland-protocols
            libx11
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a88fb575a9..93def72048 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -487,7 +487,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
 
-(define-public linux-libre-6.4-version "6.4.9")
+(define-public linux-libre-6.4-version "6.4.10")
 (define-public linux-libre-6.4-gnu-revision "gnu")
 (define deblob-scripts-6.4
   (linux-libre-deblob-scripts
@@ -497,7 +497,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1rwm09anyn4py1g877f9vh6ya86y2hfvlqx51bpa53dci5k0b0ds")))
 (define-public linux-libre-6.4-pristine-source
   (let ((version linux-libre-6.4-version)
-        (hash (base32 "17ycanx738bgxg5wn536kbad4zzvj5ngygp9qhvz76draaca5f5q")))
+        (hash (base32 "0fgjym6y0zj7wz1byqhxmv3pc3wq412vm1dxbj4gv23pm6r3y2wq")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.4)))
@@ -505,7 +505,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.1-version "6.1.44")
+(define-public linux-libre-6.1-version "6.1.45")
 (define-public linux-libre-6.1-gnu-revision "gnu")
 (define deblob-scripts-6.1
   (linux-libre-deblob-scripts
@@ -515,12 +515,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1c73516nbhnz0cxjz38b5794dxygb8sznv9idiibw7ablmjbhd11")))
 (define-public linux-libre-6.1-pristine-source
   (let ((version linux-libre-6.1-version)
-        (hash (base32 "19d1fdvdp8lc5mvlcawd8hcpzjh7pdr5gq6fczhjl20xw4gx8l9f")))
+        (hash (base32 "14piy4cwv18a0yqp4gkrvr51z4zccyhab29n9ybxinkxdqwl68xx")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.1)))
 
-(define-public linux-libre-5.15-version "5.15.125")
+(define-public linux-libre-5.15-version "5.15.126")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
@@ -530,12 +530,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1c3lm0j401lv2lk39dmr4mlf5ic173snm7cc0cckl6czyvxr5ysy")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1izyv1ibiy4dapwb8745dshfbb9b6xqyz77l6mhkmlkcnx33h3qm")))
+        (hash (base32 "0vzdncrvwqxzjkpgf3gjxvl8iwz92szfyzc33cayx28ghjwsmx5d")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.189")
+(define-public linux-libre-5.10-version "5.10.190")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -545,12 +545,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0nnp46mn32yk436swd2qh34igmzinfgkwvbzp3lqyy45f06hbc2j")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "1jcqj0yh8k81a02y8wq1psy109w9s0r5j5zgm8gmf5ylw5m520sc")))
+        (hash (base32 "15zmz9pg91gph2dhigjf1z3w6gkv1kwslki5dpzhgzs03pq3swi9")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.252")
+(define-public linux-libre-5.4-version "5.4.253")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -560,12 +560,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "0rw2b1rr3rb5498rv1zmj0ml3p67awrvd2ch66kp80wl4dsmhy1s")))
+        (hash (base32 "1rr6mnkbw6gwdm9bqjhf4z2xqr458fn2qdv5b4mgm65a15gvmchz")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.290")
+(define-public linux-libre-4.19-version "4.19.291")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -575,12 +575,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1kqflbf78aamnbdc2v973qk9ymignl1cy6q0rpw865brgm5y59cz")))
+        (hash (base32 "0cxmq8mrkw179jb8sqvad3dskllwn579g2lxcjn21jyqsf85nwz6")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.321")
+(define-public linux-libre-4.14-version "4.14.322")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
@@ -590,7 +590,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "058p6ba24gx0q1fxyf5gnbnl49r82iaz97z01h7c4z2lgba2pqyh")))
+        (hash (base32 "1r71g5p0cnbi0nixv91nyhv24dqmvh49rqb2lnbhsdq81fqm8ssm")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
@@ -5022,7 +5022,9 @@ in a digital read-out.")
            python-2                            ;'perf' links against libpython
            elfutils
            libiberty                 ;used alongside BDF for symbol demangling
+           libtraceevent
            libunwind                 ;better stack walking
+           libtraceevent
            numactl                   ;for 'perf bench numa mem'
            ;; Documentation.
            libxml2                                ;for $XML_CATALOG_FILES
@@ -9265,7 +9267,7 @@ types and interfaces and translates so that the X server can use them.")
 (define-public pipewire
   (package
     (name "pipewire")
-    (version "0.3.70")
+    (version "0.3.77")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -9274,7 +9276,7 @@ types and interfaces and translates so that the X server can use them.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n74rrbwymm89ri4daa4v092f4b81wrak4vg685xfz2wl89p64n6"))))
+                "11jdd9ljm6967cdp97qqf5fa02ad69kdgk3212ap5gfndky2h43m"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -9299,6 +9301,7 @@ types and interfaces and translates so that the X server can use them.")
                   gstreamer
                   jack-2
                   ldacbt
+                  libcamera
                   libfdk
                   libfreeaptx
                   libsndfile
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 63a4bd5455..405f8511cb 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -1190,7 +1190,7 @@ enabled.")
 (define-public fennel
   (package
     (name "fennel")
-    (version "1.3.0")
+    (version "1.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1199,7 +1199,7 @@ enabled.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1g22y0bpw1ads6bmsr946fw1m5xxvlvb1hdym3f3k3fziislwwhd"))))
+                "12zm3rd0vvkqazv1cv5bhwk6igsj18im2qakqw7cf4a20rc9wpmx"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags #~(list (string-append "PREFIX="
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index d7b806e7e0..f0ae01614e 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015, 2022 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Meiyo Peng <meiyo@riseup.net>
@@ -909,7 +909,7 @@ image viewer.")
     (inputs
      (list imlib2
            libsm
-           librsvg
+           (librsvg-for-system)
            libxft
            libxml2
            openbox
@@ -1078,7 +1078,7 @@ like @command{tar} and @command{zip}.")
     (license license:gpl2+)))
 
 (define-public lxqt-connman-applet
-  ;; since the main developers didn't release any version yet,  their 
+  ;; since the main developers didn't release any version yet,  their
   ;; latest commit on `master` branch at the moment used for this version.
   (let ((commit "db1618d58fd3439142c4e44b24cba0dbb68b7141")
         (revision "0"))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 3923573d57..c32180615b 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -408,7 +408,7 @@ Performance is achieved by using the LLVM JIT compiler.")
   (deprecated-package "guile-aiscm-next" guile-aiscm))
 
 (define-public llama-cpp
-  (let ((commit "3cd8dde0d1357b7f11bdd25c45d5bf5e97e284a0")
+  (let ((commit "f31b5397143009d682db90fd2a6cde83f1ef00eb")
         (revision "0"))
     (package
       (name "llama-cpp")
@@ -421,7 +421,7 @@ Performance is achieved by using the LLVM JIT compiler.")
                (commit (string-append "master-" (string-take commit 7)))))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0i7c92cxqs31xklrn688978kk29agivgxjgvsb45wzm65gc6hm5c"))))
+          (base32 "0ys6n53n032zq1ll9f3vgxk8sw0qq7x3fi7awsyy13adzp3hn08p"))))
       (build-system cmake-build-system)
       (arguments
        (list
@@ -449,18 +449,13 @@ Performance is achieved by using the LLVM JIT compiler.")
                       (chmod (string-append bin script) #o555)))
                   (mkdir-p bin)
                   (make-script "convert-pth-to-ggml")
-                  (make-script "convert-gptq-to-ggml")
-                  (make-script "quantize.py")
-                  (substitute* (string-append bin "quantize.py")
-                    (("os\\.getcwd\\(\\), quantize_script_binary")
-                     (string-append "\"" bin "\", quantize_script_binary"))))))
+                  (make-script "convert-lora-to-ggml")
+                  (make-script "convert"))))
             (add-after 'install-python-scripts 'wrap-python-scripts
               (assoc-ref python:%standard-phases 'wrap))
             (replace 'install
               (lambda _
-                (let ((bin (string-append #$output "/bin/")))
-                  (install-file "bin/quantize" bin)
-                  (copy-file "bin/main" (string-append bin "llama"))))))))
+                (copy-file "bin/main" (string-append #$output "/bin/llama")))))))
       (inputs (list python))
       (propagated-inputs
        (list python-numpy python-pytorch python-sentencepiece))
@@ -4422,7 +4417,7 @@ and Numpy.")
 (define-public python-pyro-ppl
   (package
     (name "python-pyro-ppl")
-    (version "1.8.1")
+    (version "1.8.6")
     ;; The sources on pypi don't include tests.
     (source
      (origin
@@ -4432,7 +4427,7 @@ and Numpy.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ns20mr8qgjshzbplrfzaz1xhb9ldbgvrj2rzlsxvns2bi1ddyl5"))))
+        (base32 "0n1vsih99pvswcaygdxkc6kq6r48ny130z6ca8pp3281396r2ykw"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index a6f571e723..72d971eb77 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -69,9 +69,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages mail)
-  #:use-module (guix gexp)
-  #:use-module (guix utils)
-  #:use-module (gnu packages)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aspell)
   #:use-module (gnu packages autotools)
@@ -97,6 +95,7 @@
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages file)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gawk)
@@ -104,15 +103,14 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages glib)
-  #:use-module (gnu packages golang)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu packages flex)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages kerberos)
@@ -133,8 +131,8 @@
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ninja)
-  #:use-module (gnu packages openldap)
   #:use-module (gnu packages onc-rpc)
+  #:use-module (gnu packages openldap)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -149,15 +147,15 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ragel)
-  #:use-module (gnu packages regex)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages regex)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages rust-apps)
-  #:use-module (gnu packages search)
-  #:use-module (gnu packages serialization)
   #:use-module (gnu packages samba)
   #:use-module (gnu packages screen)
+  #:use-module (gnu packages search)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
@@ -169,29 +167,30 @@
   #:use-module (gnu packages web)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
-  #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix packages)
-  #:use-module (guix deprecation)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix svn-download)
-  #:use-module (guix utils)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system emacs)
   #:use-module (guix build-system glib-or-gtk)
-  #:use-module (guix build-system go)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
   #:use-module (guix build-system guile)
-  #:use-module (guix build-system emacs)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system perl)
-  #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
+  #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
-  #:use-module (srfi srfi-1)
-  #:use-module (ice-9 match))
+  #:use-module (guix deprecation)
+  #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix svn-download)
+  #:use-module (guix utils)
+  #:use-module (guix utils)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1))
 
 (define-public abook
   (package
@@ -4548,7 +4547,7 @@ on RFC 3501 and original @code{imaplib} module.")
 (define-public rspamd
   (package
     (name "rspamd")
-    (version "3.5")
+    (version "3.6")
     (source
      (origin
        (method git-fetch)
@@ -4556,24 +4555,24 @@ on RFC 3501 and original @code{imaplib} module.")
              (url "https://github.com/rspamd/rspamd")
              (commit version)))
        (sha256
-        (base32 "1d45vhs66r6ig5mvmx52i7c2b638y2zc7wgv3lx0pq7dqgjxxsyz"))
+        (base32 "1ra18c3wczbdqrg9p69k04smjskjkdpxcfff9ff4yi7pmqjaxr8s"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags '("-DENABLE_LUAJIT=ON"
                            "-DLOCAL_CONFDIR=/etc/rspamd")))
     (inputs
-     (list openssl
+     (list file
            glib
-           ragel
-           luajit
-           sqlite
-           file
            icu4c
+           libsodium
+           luajit
+           openssl
            pcre2
-           zlib
            perl
-           libsodium))
+           ragel
+           sqlite
+           zlib))
     (native-inputs
      (list pkg-config))
     (synopsis "Spam filtering system")
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index 0aa88d3518..c1237b2a55 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -87,7 +87,7 @@ Features include:
 (define-public tuba
   (package
     (name "tuba")
-    (version "0.3.2")
+    (version "0.4.1")
     (source
      (origin
        (method git-fetch)
@@ -96,7 +96,7 @@ Features include:
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1xhyz6wi17g4m76lr6qc75q4xnnw7c3dh3d04dg8m5gzk6j0y89x"))))
+        (base32 "0v2ihp1dkp13jklp3kysv4blflhx3w0hwcyink4mb7hwsaqy0xnm"))))
     (build-system meson-build-system)
     (arguments
       (list
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 420f1894f3..8b765e886b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -6555,17 +6555,15 @@ reduction.")
 (define-public mcrl2
   (package
     (name "mcrl2")
-    (version "202206.0")
+    (version "202206.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://www.mcrl2.org/download/release/mcrl2-"
                     version ".tar.gz"))
-              (patches (search-patches "mcrl2-fix-1687.patch"
-                                       "mcrl2-fix-counterexample.patch"))
               (sha256
                (base32
-                "0alpck09pbvwk4axqmrvcjmsabsn20yayq5b3apq284n0hcbf01q"))))
+                "1rbfyw47bi31qla1sa4fd1npryb5kbdr0vijmdc2gg1zhpqfv0ia"))))
     (inputs
      (list boost glu mesa qtbase-5))
     (build-system cmake-build-system)
diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm
index 141295ed90..994f89f524 100644
--- a/gnu/packages/mc.scm
+++ b/gnu/packages/mc.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021, 2023 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +21,7 @@
 
 (define-module (gnu packages mc)
   #:use-module (gnu packages aspell)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages glib)
@@ -32,69 +33,82 @@
   #:use-module (gnu packages)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix licenses)
   #:use-module (guix packages))
 
 (define-public mc
   (package
     (name "mc")
-    (version "4.8.29")
+    (version "4.8.30")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "https://ftp.osuosl.org/pub/midnightcommander/mc-"
                           version ".tar.xz"))
       (sha256
-       (base32 "1m0aai4paxpcf3lw1dd94zyxc7wd0ysmfwpibg50q62q9yws7n01"))))
+       (base32 "1py7jm620lsas7rcv5j69608gdshmp25d9gx958hr5sb2jr3rg2y"))))
     (build-system gnu-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list "--with-screen=ncurses"
+              "--enable-aspell"
+              "--disable-configure-args" ; don't keep superfluous references
+              (string-append "PERL_FOR_BUILD=" ; to build .hlp files
+                             #$(this-package-native-input "perl") "/bin/perl")
+              (string-append "PERL="    ; for run-time helpers, mainly VFS
+                             #$(this-package-input "perl") "/bin/perl"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'patch-source-shebangs 'patch-file-names
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; The following commands are all invoked at run time.
+              (substitute*
+                  (list "lib/utilunix.c"
+                        "src/filemanager/ext.c"
+                        "src/usermenu.c"
+                        "src/vfs/fish/fish.c"
+                        ;; This file hard-codes other shells, but they're never
+                        ;; tried after mc's first choice (bash) is found.
+                        "lib/shell.c")
+                (("/bin/(ba|)sh" file)
+                 (search-input-file inputs file)))
+              (substitute* "src/filemanager/ext.c"
+                ;; Look up in $PATH at run time, rather than hard-coding now.
+                (("/bin/(rm)" command)
+                 command))
+              (substitute* "misc/mcedit.menu.in"
+                ;; These are script templates.  Don't embed store file names.
+                (("#! /bin/([[:alnum:]]*)" _ file)
+                 (string-append "#!/usr/bin/env " file)))
+
+              ;; The following commands are all invoked at build time.
+              (substitute* "tests/src/vfs/extfs/helpers-list/Makefile.in"
+                (("/bin/sh")
+                 (which "sh")))))
+          (add-before 'check 'fix-tests
+            (lambda _
+              ;; Don't expect a UID or GID of ‘0’ in the build environment.
+              (with-directory-excursion "tests/src/vfs/extfs/helpers-list/data"
+                (substitute* (list "rpm.custom.output"
+                                   "rpm.glib.output")
+                  (("      0        0") "<<uid>>  <<gid>>")))
+              ;; XXX ERROR:mc_realpath.c:99:realpath_test: assertion failed
+              ;; (resolved_path == data->expected_string): ("" == "/usr/bin")
+              (substitute* "tests/lib/mc_realpath.c"
+                (("/usr/bin") "/")
+                (("usr/bin") "/")))))))
     (native-inputs (list perl pkg-config))
     (inputs (list aspell
+                  bash-minimal
                   check
                   glib
                   gpm
                   libssh2
                   ncurses
+                  perl
                   unzip))
-    (arguments
-     `(#:configure-flags
-       '("--with-screen=ncurses" "--enable-aspell")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'patch-source-shebangs 'patch-FHS-file-names
-           (lambda _
-             ;; Patch files to refer to executables in the store or $PATH.
-             (substitute* "misc/mcedit.menu.in"
-               (("#! /bin/sh") (string-append "#!" (which "sh")))
-               (("/bin/bash") (which "bash")))
-             (substitute* "misc/ext.d/misc.sh.in"
-               (("/bin/cat") "cat"))
-             (substitute* (list "lib/utilunix.c"
-                                "src/usermenu.c"
-                                "src/vfs/fish/fish.c"
-                                "tests/src/vfs/extfs/helpers-list/Makefile.in")
-               (("/bin/sh") (which "sh")))
-             (substitute* "src/filemanager/ext.c"
-               (("/bin/rm") "rm")
-               (("/bin/sh") (which "sh")))
-
-             ;; There are other /bin/<shell>s hard-coded in this file, but they
-             ;; are never tried after bash (mc's first choice) is found.
-             (substitute* "lib/shell.c"
-               (("/bin/bash") (which "bash")))
-             #t))
-         (add-before 'check 'fix-tests
-           (lambda _
-             ;; Don't expect a UID or GID of ‘0’ in the build environment.
-             (with-directory-excursion "tests/src/vfs/extfs/helpers-list/data"
-               (substitute* (list "rpm.custom.output"
-                                  "rpm.glib.output")
-                 (("      0        0") "<<uid>>  <<gid>>")))
-             ;; XXX ERROR:mc_realpath.c:99:realpath_test: assertion failed
-             ;; (resolved_path == data->expected_string): ("" == "/usr/bin")
-             (substitute* "tests/lib/mc_realpath.c"
-               (("/usr/bin") "/")
-               (("usr/bin") "/"))
-             #t)))))
     (home-page "https://www.midnight-commander.org")
     (properties
       `((release-monitoring-url . "https://ftp.osuosl.org/pub/midnightcommander/")))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 00d8d29017..0b23ca8012 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1372,7 +1372,7 @@ Encryption to Gajim.")
            at-spi2-core
            bash-minimal
            cairo
-           librsvg
+           (librsvg-for-system)
            glib
            glib-networking
            gpgme
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 0112c91fdf..a399c1eab1 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -615,7 +615,7 @@ mpdevil loads all tags and covers on demand.")
 (define-public mympd
   (package
     (name "mympd")
-    (version "10.3.3")
+    (version "11.0.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -624,13 +624,21 @@ mpdevil loads all tags and covers on demand.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n8z3rscrw7k097q5z1d59mrryy7b8m0zdfhi767a1qpa121m8if"))))
+                "0n6dyy6znzicm5v9mkcghm3lwi6zwysnpr0drvacqprr0r5l596a"))))
     (build-system cmake-build-system)
     (arguments
      (list
       #:configure-flags
-      #~(list "-DMYMPD_STRIP_BINARY=OFF")  ; handled by 'strip phase
-      #:tests? #f)) ; no test target
+      #~(list "-DMYMPD_BUILD_TESTING=ON"
+              ;; Handled by 'strip' phase.
+              "-DMYMPD_STRIP_BINARY=OFF")
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; The following test requires network connectivity.
+                (invoke "ctest" "--exclude-regex" "test_http_client")))))))
     (native-inputs (list jq perl pkg-config))
     (inputs (list flac libid3tag lua openssl pcre2))
     (home-page "https://jcorporation.github.io/")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 23baa29160..8681bb1c10 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
-;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2021-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2018, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
@@ -752,7 +752,7 @@ many input formats and provides a customisable Vi-style user interface.")
            gtk+
            gtksourceview-3
            guile-2.0
-           librsvg
+           (librsvg-for-system)
            libsndfile
            libxml2
            lilypond
@@ -3780,7 +3780,7 @@ event-based scripts for scrobbling, notifications, etc.")
 (define-public picard
   (package
     (name "picard")
-    (version "2.8.5")
+    (version "2.9")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3788,7 +3788,7 @@ event-based scripts for scrobbling, notifications, etc.")
                     "picard/picard-" version ".tar.gz"))
               (sha256
                (base32
-                "1kjl7iqgvvrv7mygsb7491cz872gm334489nyj0v8b79bxnzghdi"))))
+                "0afiziaq49sq1dx5r3qis4ymhhkrqlrkfnb6f7gcksj0kwljvsw9"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -3805,7 +3805,13 @@ event-based scripts for scrobbling, notifications, etc.")
                 (("pyfpcalc")
                  (string-append
                   "pyfpcalc', '"
-                  (assoc-ref inputs "chromaprint") "/bin/fpcalc"))))))))
+                  (assoc-ref inputs "chromaprint") "/bin/fpcalc")))))
+          (add-before 'check 'delete-failing-test
+            (lambda _
+              ;; FIXME: This test fails in build environment.
+              ;; util/pipe.read_from_pipe:244: pipe reader exception:
+              ;; ERROR: Pipe doesn't exist
+              (delete-file "test/test_util_pipe.py"))))))
     (native-inputs
      (list gettext-minimal python-dateutil))
     (inputs
@@ -7217,7 +7223,7 @@ streaming audio server.")
            gtksourceview-4 ; undo, redo, multiline text fields
            hicolor-icon-theme
            keybinder-3.0 ; keybindings outside of GNOME
-           librsvg
+           (librsvg-for-system)
            libsoup-minimal-2
            python
            python-cheetah
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 542e93891c..04461fec2d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2017, 2020, 2021 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2017-2022 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017-2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -350,47 +350,45 @@ them in order to efficiently transfer a minimal amount of data.")
 (define-public libcamera
   (package
     (name "libcamera")
-    (version "0.0.0-1")
+    (version "0.1.0")
     (source
      (origin
        (method git-fetch)
        (uri
         (git-reference
-         (url "git://linuxtv.org/libcamera.git")
-         (commit "10be87fa7c3bfb097b21ca3d469c67e40c333f7e")))
+         (url "https://git.libcamera.org/libcamera/libcamera.git")
+         (commit (string-append "v" version))))
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "0qgirhlalmk9f9v6piwz50dr2asb64rvbb9zb1vix7y9zh7m11by"))))
+        (base32 "06dj3dpfbayj61015n5kffin2g3hyys11ra0px2g4hmrznvdkhc9"))))
     (build-system meson-build-system)
-    (outputs '("out" "doc"))
+    (outputs '("out" "doc" "gst" "tools"))
     (arguments
-     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-       #:configure-flags
-       (list
-        "-Dv4l2=true"
-        ;; XXX: Requires bundled pybind11.
-        "-Dpycamera=disabled")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'disable-failing-tests
-           (lambda _
-             (substitute* "test/meson.build"
-               (("\\['list-cameras',                    'list-cameras.cpp'\\],")
-                "")
-               ;; TODO: Why do the gstreamer tests fail.
-               (("^subdir\\('gstreamer'\\)")
-                ""))))
-         (add-after 'install 'move-doc
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/doc")
-                (string-append doc "/share/doc"))))))))
+     (list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+           #:configure-flags
+           #~(list (string-append "-Dbindir="
+                                  (assoc-ref %outputs "tools") "/bin")
+                   "-Dtest=true" "-Dv4l2=true"
+                   ;; XXX: Requires bundled pybind11.
+                   "-Dpycamera=disabled")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'move-doc-and-gst
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (doc (assoc-ref outputs "doc"))
+                          (gst (assoc-ref outputs "gst")))
+                     (mkdir-p (string-append doc "/share"))
+                     (rename-file (string-append out "/share/doc")
+                                  (string-append doc "/share/doc"))
+                     (mkdir-p (string-append gst "/lib"))
+                     (rename-file
+                      (string-append out "/lib/gstreamer-1.0")
+                      (string-append gst "/lib/gstreamer-1.0"))))))))
     (native-inputs
-     (list graphviz                     ;for 'dot'
+     (list googletest
+           graphviz                     ;for 'dot'
            doxygen
            pkg-config
            python-wrapper
@@ -961,7 +959,7 @@ systems with no further dependencies.")
     (inputs
      (list bluez
            dbus
-           librsvg
+           (librsvg-for-system)
            glib
            gtk+
            iproute
@@ -4617,6 +4615,42 @@ that vnStat won't actually be sniffing any traffic and also ensures light use
 of system resources regardless of network traffic rate.")
    (license license:gpl2+)))
 
+(define-public dnstracer
+  (package
+    (name "dnstracer")
+    (version "1.10")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.mavetju.org/download/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "089bmrjnmsga2n0r4xgw4bwbf41xdqsnmabjxhw8lngg2pns1kb4"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ;no test suite
+           #:make-flags #~(list (string-append "PREFIX=" #$output)
+                                (string-append "CC=" #$(cc-for-target)))
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch-makefile
+                          (lambda _
+                            (substitute* "Makefile"
+                              (("\\$\\{PREFIX}/man")
+                               "${PREFIX}/share/man")
+                              (("^install:.*" all)
+                               (string-append
+                                all
+                                "\tinstall -d ${BINPREFIX}\n"
+                                "\tinstall -d ${MANPREFIX}\n")))))
+                        (delete 'configure))))
+    (native-inputs (list perl))         ;for pod2man
+    (home-page "http://www.mavetju.org/unix/dnstracer.php")
+    (synopsis "Trace a chain of DNS servers to the source")
+    (description "@command{dnstracer} determines where a given Domain Name
+Server (DNS) gets its information from, and follows the chain of DNS servers
+back to the servers which know the data.")
+    (license license:bsd-2)))
+
 (define-public dropwatch
   (package
     (name "dropwatch")
diff --git a/gnu/packages/noweb.scm b/gnu/packages/noweb.scm
index d218d8cc68..762db02fc2 100644
--- a/gnu/packages/noweb.scm
+++ b/gnu/packages/noweb.scm
@@ -18,6 +18,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages noweb)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
@@ -27,7 +28,7 @@
 (define-public noweb
   (package
     (name "noweb")
-    (version "2.12")
+    (version "2.13")
     (source
      (origin
        (method git-fetch)
@@ -37,63 +38,62 @@
                                                      "_")))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1160i2ghgzqvnb44kgwd6s3p4jnk9668rmc15jlcwl7pdf3xqm95"))))
+        (base32 "0fwngh7zl9mrjz966pskhi4zvk26j6vsm85x99df9194nv51drq8"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'bind-early
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (substitute* (list "src/lib/nwmtime"
-                                  "src/shell/htmltoc")
-                 (("exec perl ")
-                  (format #f "exec ~a " (which "perl"))))
-               (substitute* "src/shell/noweb"
-                 ((" cpif ")
-                  (format #f " ~a/cpif " bin)))
-               #t)))
-         (add-before 'install 'pre-install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir-p (string-append out "/share/texmf/tex/latex"))
-               #t)))
-         (add-after 'install 'post-install
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (cu  (assoc-ref inputs "coreutils"))
-                   (du  (assoc-ref inputs "diffutils")))
-               (with-directory-excursion out
-                 (for-each (lambda (prog)
-                             (substitute* prog
-                               (("nawk") (which "awk"))))
-                           (append (map (lambda (x)
-                                          (string-append "bin/" x))
-                                        '("noweb" "nountangle"
-                                          "noroots" "noroff"
-                                          "noindex"))
-                                   (map (lambda (x)
-                                          (string-append "lib/" x))
-                                        '("btdefn" "emptydefn" "noidx"
-                                          "pipedocs" "toascii" "tohtml"
-                                          "toroff" "totex" "unmarkup"))))
-                 (substitute* "bin/cpif"
-                   (("^PATH=.*$")
-                    (string-append "PATH=" cu "/bin:" du "/bin\n"))))
-               #t)))
-         (replace 'configure
-           (lambda _
-             ;; Jump in the source.
-             (chdir "src")
-             #t)))
-       #:make-flags (let ((out (assoc-ref %outputs "out")))
-                      (list (string-append "BIN=" out "/bin")
-                            (string-append "LIB=" out "/lib")
-                            (string-append "MAN=" out "/share/man")
-                            (string-append "TEXINPUTS=" out
-                                           "/share/texmf/tex/latex")))
-       #:tests? #f))                              ; no tests
+     (list
+      #:make-flags
+      #~(list (string-append "BIN=" #$output "/bin")
+              (string-append "LIB=" #$output "/lib")
+              (string-append "MAN=" #$output "/share/man")
+              (string-append "TEXINPUTS=" #$output
+                             "/share/texmf/tex/latex"))
+      #:modules
+      '((guix build gnu-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'enter-source-directory
+            (lambda _
+              (chdir "src")))
+          (add-after 'enter-source-directory 'bind-early
+            (lambda _
+              (substitute* (list "lib/nwmtime"
+                                 "shell/htmltoc")
+                (("exec perl ")
+                 (string-append "exec " (which "perl") " ")))
+              (substitute* "shell/noweb"
+                ((" cpif ")
+                 (string-append " " #$output "/bin/cpif ")))))
+          (delete 'configure)           ; no configure script
+          (add-before 'install 'create-latex-directory
+            (lambda _
+              (mkdir-p (string-append #$output "/share/texmf/tex/latex"))))
+          (add-after 'install 'refer-to-inputs
+            (lambda* (#:key inputs #:allow-other-keys)
+              (with-directory-excursion #$output
+                (for-each (lambda (program)
+                            (substitute* program
+                              (("nawk")
+                               (search-input-file inputs "bin/awk"))))
+                          (append (map (cut string-append "bin/" <>)
+                                       '("noweb" "nountangle"
+                                         "noroots" "noroff"
+                                         "noindex"))
+                                  (map (cut string-append "lib/" <>)
+                                       '("btdefn" "emptydefn" "noidx"
+                                         "pipedocs" "toascii" "tohtml"
+                                         "toroff" "totex" "unmarkup"))))
+                (substitute* "bin/cpif"
+                  (("^PATH=.*$")
+                   (string-append "PATH="
+                                  (dirname (search-input-file
+                                            inputs"bin/basename")) ":"
+                                  (dirname (search-input-file
+                                            inputs "bin/cmp"))
+                                  "\n")))))))
+      #:tests? #f))                              ; no tests
     (inputs
      (list perl))
     (home-page "https://www.cs.tufts.edu/~nr/noweb/")
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 1a72efbc79..3b56580842 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -47,38 +47,41 @@
 (define-public chrony
   (package
     (name "chrony")
-    (version "4.3")
+    (version "4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.tuxfamily.org/chrony/"
                            "chrony-" version ".tar.gz"))
        (sha256
-        (base32 "0148bgzymdigkjs66fihrqw98g1yf6vgy40nlajqkw35m24sh3cx"))))
+        (base32 "123h2a9rpc6wbvnysvhl5pmckvynzrnqay7l00i18azrvbk0gyza"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:modules ((srfi srfi-26)
-                  (guix build utils)
-                  (guix build gnu-build-system))
-       #:configure-flags
-       (list "--enable-scfilter"
-             "--with-sendmail=sendmail"
-             "--with-user=chrony")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'stay-inside-out
-           ;; Simply setting CHRONYVARDIR to something nonsensical at install
-           ;; time would result in nonsense file names in man pages.
-           (lambda _
-             (substitute* "Makefile.in"
-               (("mkdir -p \\$\\(DESTDIR\\)\\$\\(CHRONYVARDIR\\)") ":"))))
-         (add-after 'install 'install-more-documentation
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
-               (for-each (cut install-file <> doc)
-                         (list "README" "FAQ"))
-               (copy-recursively "examples" (string-append doc "/examples"))))))))
+     (list
+      #:modules
+      '((srfi srfi-26)
+        (guix build utils)
+        (guix build gnu-build-system))
+      #:configure-flags
+      #~(list "--enable-scfilter"
+              "--with-sendmail=sendmail"
+              "--with-user=chrony")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'stay-inside-out
+            ;; Simply setting CHRONYVARDIR to something nonsensical at install
+            ;; time would result in nonsense file names in man pages.
+            (lambda _
+              (substitute* "Makefile.in"
+                (("mkdir -p \\$\\(DESTDIR\\)\\$\\(CHRONYVARDIR\\)") ":"))))
+          (add-after 'install 'install-more-documentation
+            (lambda _
+              (let* ((doc (string-append #$output "/share/doc/"
+                                         #$name "-" #$version)))
+                (for-each (cut install-file <> doc)
+                          (list "README" "FAQ"))
+                (copy-recursively "examples"
+                                  (string-append doc "/examples"))))))))
     (native-inputs
      (list pkg-config))
     (inputs
@@ -139,8 +142,7 @@ time-stamping or reference clock, sub-microsecond accuracy is possible.")
            libevent
            ;; Build with POSIX capabilities support on GNU/Linux.  This allows
            ;; 'ntpd' to run as non-root (when invoked with '-u'.)
-           (if (string-suffix? "-linux"
-                               (or (%current-target-system) (%current-system)))
+           (if (target-linux?)
                (list libcap)
                '())))
    (arguments
diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm
index 2dac9ec644..38afb9d9a0 100644
--- a/gnu/packages/openbox.scm
+++ b/gnu/packages/openbox.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -102,7 +102,7 @@ implementations.")
        ("openbox" ,openbox)
        ("startup-notification" ,startup-notification)
        ("libsm" ,libsm)
-       ("librsvg" ,librsvg)
+       ("librsvg" ,(librsvg-for-system))
        ("libxft" ,libxft)))
     (native-inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index dacd4433d2..17eba3da20 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -22,6 +22,7 @@
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
 ;;; Copyright © 2022, 2023 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2023 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1141,6 +1142,7 @@ extracting, creating, and converting between formats.")
            python-boto3
            python-conda-package-handling
            python-cytoolz
+           python-mock
            python-pluggy
            python-pycosat
            python-pytest
diff --git a/gnu/packages/patches/ddclient-skip-test.patch b/gnu/packages/patches/ddclient-skip-test.patch
deleted file mode 100644
index 28d748997b..0000000000
--- a/gnu/packages/patches/ddclient-skip-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e5657802025f238b39581534f3b4d408565c8943 Mon Sep 17 00:00:00 2001
-From: Bruno Victal <mirai@makinata.eu>
-Date: Sun, 5 Feb 2023 21:05:00 +0000
-Subject: [PATCH] Disable sandbox incompatible tests.
-
-See: https://github.com/ddclient/ddclient/issues/465
----
- t/get_ip_from_if.pl | 21 ---------------------
- 1 file changed, 21 deletions(-)
-
-diff --git a/t/get_ip_from_if.pl b/t/get_ip_from_if.pl
-index 6f08e5d..d78c3d0 100644
---- a/t/get_ip_from_if.pl
-+++ b/t/get_ip_from_if.pl
-@@ -39,25 +39,4 @@ subtest "get_ip_from_interface tests" => sub {
-     }
- };
- 
--subtest "Get default interface and IP for test system" => sub {
--    my $interface = ddclient::get_default_interface(4);
--    if ($interface) {
--        isnt($interface, "lo", "Check for loopback 'lo'");
--        isnt($interface, "lo0", "Check for loopback 'lo0'");
--        my $ip1 = ddclient::get_ip_from_interface("default", 4);
--        my $ip2 = ddclient::get_ip_from_interface($interface, 4);
--        is($ip1, $ip2, "Check IPv4 from default interface");
--        ok(ddclient::is_ipv4($ip1), "Valid IPv4 from get_ip_from_interface($interface)");
--    }
--    $interface = ddclient::get_default_interface(6);
--    if ($interface) {
--        isnt($interface, "lo", "Check for loopback 'lo'");
--        isnt($interface, "lo0", "Check for loopback 'lo0'");
--        my $ip1 = ddclient::get_ip_from_interface("default", 6);
--        my $ip2 = ddclient::get_ip_from_interface($interface, 6);
--        is($ip1, $ip2, "Check IPv6 from default interface");
--        ok(ddclient::is_ipv6($ip1), "Valid IPv6 from get_ip_from_interface($interface)");
--    }
--};
--
- done_testing();
--- 
-2.38.1
-
diff --git a/gnu/packages/patches/elogind-fix-rpath.patch b/gnu/packages/patches/elogind-fix-rpath.patch
new file mode 100644
index 0000000000..2a76cc467f
--- /dev/null
+++ b/gnu/packages/patches/elogind-fix-rpath.patch
@@ -0,0 +1,60 @@
+Retrieved from https://github.com/elogind/elogind/issues/258
+
+From: Mark Hindley <mark@hindley.org.uk>
+Date: Wed, 24 May 2023 10:39:41 +0100
+Subject: Fixup_executable_rpath
+
+./meson.build sets
+
+ install_rpath : rootlibexecdir
+
+however src/shared/meson.build sets
+
+libshared = shared_library(
+          [snip]
+        install_dir : rootpkglibdir
+        )
+---
+ meson.build | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 694a2fd..a575f69 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2903,7 +2903,7 @@ executable('elogind',
+                 dependencies : [threads,
+                                 libacl,
+                                 libudev],
+-                install_rpath : rootlibexecdir,
++                install_rpath : rootpkglibdir,
+                 install : true,
+                 install_dir : rootlibexecdir)
+ 
+@@ -2913,7 +2913,7 @@ exe = executable('loginctl',
+                         link_with : [libshared],
+                         dependencies : [threads,
+                                         libudev],
+-                        install_rpath : rootlibexecdir,
++                        install_rpath : rootpkglibdir,
+                         install : true,
+                         install_dir : rootbindir)
+ public_programs += [exe]
+@@ -2923,7 +2923,7 @@ exe = executable('elogind-inhibit',
+                         include_directories : includes,
+                         link_with : [libshared],
+                         dependencies : [threads],
+-                        install_rpath : rootlibexecdir,
++                        install_rpath : rootpkglibdir,
+                         install : true,
+                         install_dir : rootbindir)
+ public_programs += [exe]
+@@ -4283,7 +4283,7 @@ executable('elogind-uaccess-command',
+                         libshared],
+            dependencies: [libacl,
+                           libudev],
+-           install_rpath : rootlibexecdir,
++           install_rpath : rootpkglibdir,
+            install : true,
+            install_dir : rootlibexecdir)
+ #endif // 0
diff --git a/gnu/packages/patches/elogind-revert-polkit-detection.patch b/gnu/packages/patches/elogind-revert-polkit-detection.patch
deleted file mode 100644
index 43dd1684b6..0000000000
--- a/gnu/packages/patches/elogind-revert-polkit-detection.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 715ce0a6459e418f92e74c7ce52df3244c18f383 Mon Sep 17 00:00:00 2001
-From: Sven Eden <sven.eden@prydeworx.com>
-Date: Mon, 8 Mar 2021 08:40:08 +0100
-Subject: [PATCH] Revert "Disable polkit support if libpolkit is not installed"
-
-This reverts commit 1194dec4f8f2d1b8bd14e1625f34418ecfce817e.
-
-Removing polkit support with -Dpolkit=auto when libpolkit is not
-installed, removes the whole interface. This makes it impossible to
-add polkit support as a runtime dependency.
-
-Bug: #167
-Closes: #206
-Signed-off-by: Sven Eden <sven.eden@prydeworx.com>
----
- meson.build | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 2dd05db3c..f38551f55 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1157,15 +1157,6 @@ if want_polkit != 'false' and not skip_deps
-                 message('Old polkit detected, will install pkla files')
-                 install_polkit_pkla = true
-         endif
--#if 1 /// Disable polkit completely if libpolkit is not there. See elogind issue #167
--        if not libpolkit.found()
--                if want_polkit != 'auto'
--                        error('Polkit requested but libpolkit was not found.')
--                endif
--                install_polkit = false
--                want_polkit    = false
--        endif
--#endif // 1
- endif
- conf.set10('ENABLE_POLKIT', install_polkit)
- 
--- 
-2.33.1
-
diff --git a/gnu/packages/patches/fbreader-fix-icon.patch b/gnu/packages/patches/fbreader-fix-icon.patch
new file mode 100644
index 0000000000..635abf6a43
--- /dev/null
+++ b/gnu/packages/patches/fbreader-fix-icon.patch
@@ -0,0 +1,29 @@
+Author: Danny Milosavljevic <dannym+a@scratchpost.org>
+Date: 2023-08-15
+
+--- orig/jswba9mn9nh43l7g4w2qslmr7i3q64vy-fbreader-0.99.6-checkout/fbreader/desktop/desktop	2023-08-14 23:56:03.092567740 +0200
++++ jswba9mn9nh43l7g4w2qslmr7i3q64vy-fbreader-0.99.6-checkout/fbreader/desktop/desktop	2023-08-14 23:56:59.936213278 +0200
+@@ -25,5 +25,5 @@
+ StartupNotify=true
+ Terminal=false
+ Type=Application
+-Icon=FBReader.png
++Icon=FBReader
+ Categories=Office;Viewer;Literature;
+--- orig/jswba9mn9nh43l7g4w2qslmr7i3q64vy-fbreader-0.99.6-checkout/fbreader/desktop/Makefile	2023-08-14 23:56:03.092567740 +0200
++++ jswba9mn9nh43l7g4w2qslmr7i3q64vy-fbreader-0.99.6-checkout/fbreader/desktop/Makefile	2023-08-15 00:23:19.046691430 +0200
+@@ -10,6 +10,14 @@
+ 	@install -m 0644 desktop $(DESTDIR)/usr/share/applications/$(TARGET).desktop
+ 	@install -d $(DESTDIR)$(IMAGEDIR)
+ 	@install -m 0644 ../data/icons/application/$(TARGET_ARCH).png $(DESTDIR)$(IMAGEDIR)/FBReader.png
++	@install -d $(DESTDIR)$(SHAREDIR)/icons/hicolor/16x16/apps
++	@install -m 0644 ../data/icons/application/16x16.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/16x16/apps/FBReader.png
++	@install -d $(DESTDIR)$(SHAREDIR)/icons/hicolor/32x32/apps
++	@install -m 0644 ../data/icons/application/32x32.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/32x32/apps/FBReader.png
++	@install -d $(DESTDIR)$(SHAREDIR)/icons/hicolor/48x48/apps
++	@install -m 0644 ../data/icons/application/48x48.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/48x48/apps/FBReader.png
++	@install -d $(DESTDIR)$(SHAREDIR)/icons/hicolor/64x64/apps
++	@install -m 0644 ../data/icons/application/64x64.png $(DESTDIR)$(SHAREDIR)/icons/hicolor/64x64/apps/FBReader.png
+ 	@install -m 0644 ../data/default/config.desktop.xml $(SHARE_FBREADER)/default/config.xml
+ 	@install -m 0644 ../data/default/keymap.desktop.xml $(SHARE_FBREADER)/default/keymap.xml
+ 	@install -m 0644 ../data/default/styles.desktop.xml $(SHARE_FBREADER)/default/styles.xml
diff --git a/gnu/packages/patches/highlight-gui-data-dir.patch b/gnu/packages/patches/highlight-gui-data-dir.patch
new file mode 100644
index 0000000000..33f40d309c
--- /dev/null
+++ b/gnu/packages/patches/highlight-gui-data-dir.patch
@@ -0,0 +1,51 @@
+This patch distinguishes between the data directory path for GUI and the one
+for non-GUI by allowing to set the former path.
+
+highlight package has two outputs: out and gui.  Both outputs have files which
+will be in the same directory /share/highlight/ without this patch (see also
+install and install-gui tasks in makefile).  In the gui's data directory,
+there are GUI specific files in /share/highlight/gui-files/{l10n,ext}/.
+
+diff --git a/src/gui-qt/main.cpp b/src/gui-qt/main.cpp
+index 4700dc1..3567745 100644
+--- a/src/gui-qt/main.cpp
++++ b/src/gui-qt/main.cpp
+@@ -47,8 +47,8 @@ int main(int argc, char *argv[])
+ {
+     QApplication app(argc, argv);
+     QTranslator translator;
+-#ifdef DATA_DIR
+-    translator.load(QString("%1/gui_files/l10n/highlight_%2").arg(DATA_DIR).arg(QLocale::system().name()));
++#ifdef GUI_DATA_DIR
++    translator.load(QString("%1/gui_files/l10n/highlight_%2").arg(GUI_DATA_DIR).arg(QLocale::system().name()));
+ #else
+     translator.load(QString("%1/gui_files/l10n/highlight_%2").arg(QDir::currentPath()).arg(QLocale::system().name()));
+ #endif
+diff --git a/src/gui-qt/mainwindow.cpp b/src/gui-qt/mainwindow.cpp
+index 3a21ad2..f060431 100644
+--- a/src/gui-qt/mainwindow.cpp
++++ b/src/gui-qt/mainwindow.cpp
+@@ -2131,8 +2131,8 @@ QString MainWindow::getDistFileFilterPath(){
+ #ifdef Q_OS_OSX
+     return QCoreApplication::applicationDirPath()+"/../Resources/gui_files/ext/fileopenfilter.conf";
+ #else
+-    #ifdef DATA_DIR
+-    return QString(DATA_DIR) + "/gui_files/ext/fileopenfilter.conf";
++    #ifdef GUI_DATA_DIR
++    return QString(GUI_DATA_DIR) + "/gui_files/ext/fileopenfilter.conf";
+     #else
+     return QDir::currentPath()+"/gui_files/ext/fileopenfilter.conf";
+     #endif
+diff --git a/src/makefile b/src/makefile
+index b1d7988..2963105 100644
+--- a/src/makefile
++++ b/src/makefile
+@@ -118,7 +118,7 @@ gui-qt: highlight-gui
+ 
+ highlight-gui: libhighlight.a ${GUI_OBJECTS}
+ 	cd gui-qt && \
+-	${QMAKE} 'DEFINES+=DATA_DIR=\\\"${HL_DATA_DIR}\\\" CONFIG_DIR=\\\"${HL_CONFIG_DIR}\\\" DOC_DIR=\\\"${HL_DOC_DIR}\\\" ' && \
++	${QMAKE} 'DEFINES+=DATA_DIR=\\\"${HL_DATA_DIR}\\\" CONFIG_DIR=\\\"${HL_CONFIG_DIR}\\\" DOC_DIR=\\\"${HL_DOC_DIR}\\\" GUI_DATA_DIR=\\\"${GUI_DATA_DIR}\\\" ' && \
+ 	$(MAKE)
+ 
+ $(OBJECTFILES) : makefile
diff --git a/gnu/packages/patches/maturin-no-cross-compile.patch b/gnu/packages/patches/maturin-no-cross-compile.patch
new file mode 100644
index 0000000000..7394d0854e
--- /dev/null
+++ b/gnu/packages/patches/maturin-no-cross-compile.patch
@@ -0,0 +1,55 @@
+Remove dependencies on xwin and zig.  We're not offering cross-compilation
+options using these crates.
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 6cbdca3..22ea5ef 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -76,16 +76,6 @@ version = "0.1.4"
+ [dependencies.cargo-options]
+ version = "0.6.0"
+ 
+-[dependencies.cargo-xwin]
+-version = "0.14.3"
+-optional = true
+-default-features = false
+-
+-[dependencies.cargo-zigbuild]
+-version = "0.16.10"
+-optional = true
+-default-features = false
+-
+ [dependencies.cargo_metadata]
+ version = "0.15.3"
+ 
+@@ -310,8 +300,6 @@ version = "4.3.0"
+ [features]
+ cli-completion = ["dep:clap_complete_command"]
+ cross-compile = [
+-    "zig",
+-    "xwin",
+ ]
+ default = [
+     "full",
+@@ -330,7 +318,6 @@ log = ["tracing-subscriber"]
+ native-tls = [
+     "dep:native-tls",
+     "ureq?/native-tls",
+-    "cargo-xwin?/native-tls",
+     "dep:rustls-pemfile",
+ ]
+ password-storage = [
+@@ -340,7 +327,6 @@ password-storage = [
+ rustls = [
+     "dep:rustls",
+     "ureq?/tls",
+-    "cargo-xwin?/rustls-tls",
+     "dep:rustls-pemfile",
+ ]
+ scaffolding = [
+@@ -358,5 +344,3 @@ upload = [
+     "wild",
+     "dep:dirs",
+ ]
+-xwin = ["cargo-xwin"]
+-zig = ["cargo-zigbuild"]
diff --git a/gnu/packages/patches/mcrl2-fix-1687.patch b/gnu/packages/patches/mcrl2-fix-1687.patch
deleted file mode 100644
index 449ecbf638..0000000000
--- a/gnu/packages/patches/mcrl2-fix-1687.patch
+++ /dev/null
@@ -1,337 +0,0 @@
-Taken from upstream:
-    https://github.com/mCRL2org/mCRL2/commit/f38998be5198236bc5bf5a957b0e132d6d6d8bee
-
-Fixes bug in ltsconvert:
-    https://listserver.tue.nl/pipermail/mcrl2-users/2022-June/000395.html
-
-From f38998be5198236bc5bf5a957b0e132d6d6d8bee Mon Sep 17 00:00:00 2001
-From: Jan Friso Groote <J.F.Groote@tue.nl>
-Date: Tue, 28 Jun 2022 12:27:47 +0200
-Subject: [PATCH] Solved bug report #1687
-
-Hidden actions were not properly recognized in ltsconvert. Multiactions
-that were partly hidden compared with the default action label, and had
-to be compared with a tau-action. This caused multiple tau-actions to be
-listed in the list of actions of an lts, and this caused other tools to
-go astray.
-
-The code to rename actions has completely be rewritten.
-
-This should solve #1687.
-
-A test have been added.
----
- libraries/lts/include/mcrl2/lts/lts.h   | 95 ++++++++++++++++++++++---
- libraries/lts/test/lts_test.cpp         | 61 ++++++++--------
- tools/release/ltsconvert/ltsconvert.cpp |  3 +-
- 3 files changed, 116 insertions(+), 43 deletions(-)
-
-diff --git a/libraries/lts/include/mcrl2/lts/lts.h b/libraries/lts/include/mcrl2/lts/lts.h
-index 095031e7c..8562eb900 100644
---- a/libraries/lts/include/mcrl2/lts/lts.h
-+++ b/libraries/lts/include/mcrl2/lts/lts.h
-@@ -25,6 +25,7 @@
- #include <algorithm>
- #include <cassert>
- #include <set>
-+#include <map>
- #include "mcrl2/lts/transition.h"
- #include "mcrl2/lts/lts_type.h"
- 
-@@ -482,40 +483,112 @@ class lts: public LTS_BASE
-         return;
-       }
- 
-+      std::map<labels_size_type, labels_size_type> action_rename_map;
-       for (labels_size_type i=0; i< num_action_labels(); ++i)
-       {
-         ACTION_LABEL_T a=action_label(i);
-         a.hide_actions(tau_actions);
--        if (a==ACTION_LABEL_T())  
-+        if (a==ACTION_LABEL_T::tau_action())  
-         {
--          m_hidden_label_set.insert(i);
-+          if (i!=const_tau_label_index)
-+          {
-+            m_hidden_label_set.insert(i);
-+          }
-         }
-         else if (a!=action_label(i))
-         {
--          set_action_label(i,a);  
-+          /* In this the action_label i is changed by the tau_actions but not renamed to tau.
-+             We check whether a maps onto another action label index. If yes, it is added to 
-+             the rename map, and we explicitly rename transition labels with this label afterwards.
-+             If no, we rename the action label.
-+          */
-+          bool found=false;
-+          for (labels_size_type j=0; !found && j< num_action_labels(); ++j)
-+          {
-+            if (a==action_label(j))
-+            { 
-+              if (i!=j)
-+              {
-+                action_rename_map[i]=j;
-+              }
-+              found=true;
-+            }
-+          }
-+          if (!found) // a!=action_label(j) for any j, then rename action_label(i) to a. 
-+          { 
-+            set_action_label(i,a);
-+          }
-+        }
-+      }
-+
-+      if (action_rename_map.size()>0)    // Check whether there are action labels that must be renamed, and
-+      {
-+        for(transition& t: m_transitions)
-+        {
-+          auto i = action_rename_map.find(t.label());
-+          if (i!=action_rename_map.end())
-+          { 
-+            t=transition(t.from(),i->second,t.to());
-+          }
-         }
-       }
-     }
- 
--    /** \brief Apply the recorded actions that are renamed to internal actions to the lts. 
--     *  \details After hiding actions, it checks whether action labels are
--     *           equal and merges actions with the same labels in the lts.
-+    /** \brief Rename the hidden actions in the lts. 
-+     *  \details Multiactions can be partially renamed. I.e. a|b becomes a if b is hidden.
-+     *           In such a case the new action a is mapped onto an existing action a; if such
-+     *           a label a does not exist, the action a|b is renamed to a. 
-      *  \param[in] tau_actions Vector with strings indicating which actions must be
-      *       transformed to tau's */
--    void apply_hidden_actions(void)
-+    void apply_hidden_actions(const std::vector<std::string>& tau_actions)
-     {
--      if (m_hidden_label_set.size()>0)    // Check whether there is something to rename.
-+      if (tau_actions.size()==0)
-+      { 
-+        return;
-+      }
-+      
-+      std::map<labels_size_type, labels_size_type> action_rename_map;
-+      for (labels_size_type i=0; i< num_action_labels(); ++i)
-+      {
-+        ACTION_LABEL_T a=action_label(i);
-+        a.hide_actions(tau_actions);
-+#ifndef NDEBUG
-+        ACTION_LABEL_T b=a;
-+        b.hide_actions(tau_actions);
-+        assert(a==b); // hide_actions applied twice yields the same result as applying it once.
-+#endif
-+        bool found=false;
-+        for (labels_size_type j=0; !found && j< num_action_labels(); ++j)
-+        {
-+          if (a==action_label(j))
-+          { 
-+            if (i!=j)
-+            {
-+              action_rename_map[i]=j;
-+            }
-+            found=true;
-+          }
-+        }
-+        if (!found) // a!=action_label(j) for any j, then rename action_label(i) to a. 
-+        { 
-+          set_action_label(i,a);
-+        }
-+      }
-+    
-+
-+      if (action_rename_map.size()>0)    // Check whether there is something to rename.
-       {
-         for(transition& t: m_transitions)
-         {
--          if (m_hidden_label_set.count(t.label()))
-+          auto i = action_rename_map.find(t.label());
-+          if (i!=action_rename_map.end())
-           { 
--            t=transition(t.from(),tau_label_index(),t.to());
-+            t=transition(t.from(),i->second,t.to());
-           }
-         }
--        m_hidden_label_set.clear();       // Empty the hidden label set. 
-       }
-     }
-+
-     /** \brief Checks whether this LTS has state values associated with its states.
-      * \retval true if the LTS has state information;
-      * \retval false otherwise.
-diff --git a/libraries/lts/test/lts_test.cpp b/libraries/lts/test/lts_test.cpp
-index 5840393d9..ad69f6275 100644
---- a/libraries/lts/test/lts_test.cpp
-+++ b/libraries/lts/test/lts_test.cpp
-@@ -149,7 +149,7 @@ static void reduce_lts_in_various_ways(const std::string& test_description,
-   BOOST_CHECK(is_deterministic(l));
- }
- 
--static void reduce_simple_loop()
-+BOOST_AUTO_TEST_CASE(reduce_simple_loop)
- {
-   std::string SIMPLE_AUT =
-     "des (0,2,2)\n"
-@@ -173,7 +173,7 @@ static void reduce_simple_loop()
-   reduce_lts_in_various_ways("Simple loop", SIMPLE_AUT, expected);
- }
- 
--static void reduce_simple_loop_with_tau()
-+BOOST_AUTO_TEST_CASE(reduce_simple_loop_with_tau)
- {
-   std::string SIMPLE_AUT =
-     "des (0,2,2)\n"
-@@ -200,7 +200,7 @@ static void reduce_simple_loop_with_tau()
- /* The example below was encountered by David Jansen. The problem is that
-  * for branching bisimulations the tau may supersede the b, not leading to the
-  * necessary splitting into two equivalence classes. */
--static void tricky_example_for_branching_bisimulation()
-+BOOST_AUTO_TEST_CASE(tricky_example_for_branching_bisimulation)
- {
-   std::string TRICKY_BB =
-     "des (0,3,2)\n"
-@@ -226,7 +226,7 @@ static void tricky_example_for_branching_bisimulation()
- }
- 
- 
--static void reduce_abp()
-+BOOST_AUTO_TEST_CASE(reduce_abp)
- {
-   std::string ABP_AUT =
-     "des (0,92,74)\n"
-@@ -342,7 +342,7 @@ static void reduce_abp()
- 
- // Peterson's protocol has the interesting property that the number of states modulo branching bisimulation
- // differs from the number of states modulo weak bisimulation, as observed by Rob van Glabbeek.
--static void reduce_peterson()
-+BOOST_AUTO_TEST_CASE(reduce_peterson)
- {
-   std::string PETERSON_AUT =
-     "des (0,59,35)\n"
-@@ -423,7 +423,7 @@ static void reduce_peterson()
-   reduce_lts_in_various_ways("Peterson protocol", PETERSON_AUT, expected);
- }
- 
--static void test_reachability()
-+BOOST_AUTO_TEST_CASE(test_reachability)
- {
-   std::string REACH =
-     "des (0,4,5)       \n"
-@@ -449,7 +449,7 @@ static void test_reachability()
- 
- // The example below caused failures in the GW mlogn branching bisimulation
- // algorithm when cleaning the code up.
--static void failing_test_groote_wijs_algorithm()
-+BOOST_AUTO_TEST_CASE(failing_test_groote_wijs_algorithm)
- {
-   std::string GWLTS =
-     "des(0,29,10)\n"
-@@ -511,7 +511,7 @@ static void failing_test_groote_wijs_algorithm()
- // It has not been implemented fully. The problem is that it is difficult to
- // prescribe the order in which refinements have to be done.
- 
--static void counterexample_jk_1(std::size_t k)
-+void counterexample_jk_1(std::size_t k)
- {
-     // numbering scheme of states:
-     // states 0..k-1 are the blue squares
-@@ -571,7 +571,7 @@ static void counterexample_jk_1(std::size_t k)
- 
- // In the meantime, the bug is corrected:  this is why the first part of the
- // algorithm now follows a much simpler line than previously.
--static void counterexample_postprocessing()
-+BOOST_AUTO_TEST_CASE(counterexample_postprocessing)
- {
-   std::string POSTPROCESS_AUT =
-     "des(0,33,13)\n"
-@@ -634,7 +634,7 @@ static void counterexample_postprocessing()
-   test_lts("postprocessing problem (branching bisimulation signature [Blom/Orzan 2003])",l,expected_label_count, expected_state_count, expected_transition_count);
- }
- 
--static void regression_delete_old_bb_slice()
-+BOOST_AUTO_TEST_CASE(regression_delete_old_bb_slice)
- {
-   std::string POSTPROCESS_AUT =
-     "des(0,163,100)\n"
-@@ -824,7 +824,7 @@ static void regression_delete_old_bb_slice()
-   test_lts("regression test for GJKW bug (branching bisimulation signature [Blom/Orzan 2003])",l,expected_label_count, expected_state_count, expected_transition_count);
- }
- 
--void is_deterministic_test1()
-+BOOST_AUTO_TEST_CASE(is_deterministic_test1)
- {
-   std::string automaton =
-     "des(0,2,2)\n"
-@@ -837,7 +837,7 @@ void is_deterministic_test1()
-   BOOST_CHECK(is_deterministic(l_det));
- }
- 
--void is_deterministic_test2()
-+BOOST_AUTO_TEST_CASE(is_deterministic_test2)
- {
-   std::string automaton =
-     "des(0,2,2)\n"
-@@ -850,24 +850,25 @@ void is_deterministic_test2()
-   BOOST_CHECK(!is_deterministic(l_det));
- }
- 
--void test_is_deterministic()
-+BOOST_AUTO_TEST_CASE(hide_actions1)
- {
--  is_deterministic_test1();
--  is_deterministic_test2();
--}
-+  std::string automaton =
-+     "des (0,4,3)\n"
-+     "(0,\"<state>\",1)\n"
-+     "(1,\"return|hello\",2)\n"
-+     "(1,\"return\",2)\n"
-+     "(2,\"world\",1)\n";
-+
-+  std::istringstream is(automaton);
-+  lts::lts_aut_t l;
-+  l.load(is);
-+  std::vector<std::string>hidden_actions(1,"hello");
-+  l.apply_hidden_actions(hidden_actions);
-+  reduce(l,lts::lts_eq_bisim);
-+  std::size_t expected_label_count = 5;
-+  std::size_t expected_state_count = 3;
-+  std::size_t expected_transition_count = 3;
-+  test_lts("regression test for GJKW bug (branching bisimulation [Jansen/Groote/Keiren/Wijs 2019])",l,expected_label_count, expected_state_count, expected_transition_count);
-+
- 
--BOOST_AUTO_TEST_CASE(test_main)
--{
--  reduce_simple_loop();
--  reduce_simple_loop_with_tau();
--  tricky_example_for_branching_bisimulation();
--  reduce_abp();
--  reduce_peterson();
--  test_reachability();
--  test_is_deterministic();
--  failing_test_groote_wijs_algorithm();
--  counterexample_jk_1(3);
--  counterexample_postprocessing();
--  regression_delete_old_bb_slice();
--  // TODO: Add groote wijs branching bisimulation and add weak bisimulation tests. For the last Peterson is a good candidate.
- }
-diff --git a/tools/release/ltsconvert/ltsconvert.cpp b/tools/release/ltsconvert/ltsconvert.cpp
-index 231deabe2..5645d31d1 100644
---- a/tools/release/ltsconvert/ltsconvert.cpp
-+++ b/tools/release/ltsconvert/ltsconvert.cpp
-@@ -123,8 +123,7 @@ class ltsconvert_tool : public input_output_tool
- 
-       LTS_TYPE l;
-       l.load(tool_options.infilename);
--      l.record_hidden_actions(tool_options.tau_actions);
--      l.apply_hidden_actions();
-+      l.apply_hidden_actions(tool_options.tau_actions);
- 
-       if (tool_options.check_reach)
-       {
--- 
-2.35.1
-
diff --git a/gnu/packages/patches/mcrl2-fix-counterexample.patch b/gnu/packages/patches/mcrl2-fix-counterexample.patch
deleted file mode 100644
index abf541f50c..0000000000
--- a/gnu/packages/patches/mcrl2-fix-counterexample.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Taken from upstream:
-    https://github.com/mCRL2org/mCRL2/commit/435421429dde9dcc5956e8a978597111a3947ec1
-
-Fixes bug in ltscompare:
-    https://listserver.tue.nl/pipermail/mcrl2-users/2022-June/000396.html
-
-From 435421429dde9dcc5956e8a978597111a3947ec1 Mon Sep 17 00:00:00 2001
-From: Maurice Laveaux <m.laveaux@tue.nl>
-Date: Wed, 29 Jun 2022 10:27:58 +0200
-Subject: [PATCH] Write counterexample's structured output trace on single
- line.
-
----
- libraries/lts/include/mcrl2/lts/detail/counter_example.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libraries/lts/include/mcrl2/lts/detail/counter_example.h b/libraries/lts/include/mcrl2/lts/detail/counter_example.h
-index c339cfde4..ca3967768 100644
---- a/libraries/lts/include/mcrl2/lts/detail/counter_example.h
-+++ b/libraries/lts/include/mcrl2/lts/detail/counter_example.h
-@@ -139,7 +139,7 @@ class counter_example_constructor
-       if (m_structured_output)
-       {
-         std::cout << m_name << ": ";
--        result.save("", mcrl2::lts::trace::tfPlain);   // Write to stdout. 
-+        result.save("", mcrl2::lts::trace::tfLine);   // Write to stdout.
-       }
-       else
-       {
--- 
-2.35.1
-
diff --git a/gnu/packages/patches/openssh-hurd.patch b/gnu/packages/patches/openssh-hurd.patch
deleted file mode 100644
index 1ad09a7ee6..0000000000
--- a/gnu/packages/patches/openssh-hurd.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Author: Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
-Not upstreamed.
-
-From 1ddae040d67e9a4ebcc3e1b95af1bff12c0f086b Mon Sep 17 00:00:00 2001
-From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
-Date: Tue, 7 Apr 2020 17:41:05 +0200
-Subject: [PATCH] Build fix for the Hurd.
-
-* gss-serv.c (ssh_gssapi_acquire_cred): Use HOST_NAME_MAX instead of
-MAXHOSTNAMELEN.
----
- gss-serv.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gss-serv.c b/gss-serv.c
-index 1d47870e7..22081c6f1 100644
---- a/gss-serv.c
-+++ b/gss-serv.c
-@@ -107,7 +107,7 @@ ssh_gssapi_acquire_cred(Gssctxt *ctx)
- 		gss_create_empty_oid_set(&status, &oidset);
- 		gss_add_oid_set_member(&status, ctx->oid, &oidset);
- 
--		if (gethostname(lname, MAXHOSTNAMELEN)) {
-+		if (gethostname(lname, HOST_NAME_MAX)) {
- 			gss_release_oid_set(&status, &oidset);
- 			return (-1);
- 		}
--- 
-2.26.0
-
diff --git a/gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch b/gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch
new file mode 100644
index 0000000000..8a075fa74c
--- /dev/null
+++ b/gnu/packages/patches/po4a-partial-texinfo-menu-fix.patch
@@ -0,0 +1,242 @@
+Submitted upstream: https://github.com/mquinson/po4a/pull/437
+
+From 43db5c0b14ec2a8ba44d338bce024df87256457b Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Thu, 27 Jul 2023 17:44:49 -0400
+Subject: [PATCH] lib: Texinfo: Translate partial menu node names.
+
+Fixes <https://issues.guix.gnu.org/64881>.
+
+* lib/Locale/Po4a/Texinfo.pm (translate_buffer_menuentry): Refine
+regexp, so that it matches menu entries lacking a description.
+Only call 'translate_buffer' on the description if it was provided.
+* t/fmt/texinfo/partialmenus.trans: New file.
+* t/fmt/texinfo/partialmenus.texi: Likewise.
+* t/fmt/texinfo/partialmenus.pot: Likewise.
+* t/fmt/texinfo/partialmenus.po: Likewise.
+* t/fmt/texinfo/partialmenus.norm: Likewise.
+* t/fmt-texinfo.t: Register the new 'partialmenus' test.
+---
+ lib/Locale/Po4a/Texinfo.pm       |  7 +++---
+ t/fmt-texinfo.t                  |  2 +-
+ t/fmt/texinfo/partialmenus.norm  | 21 +++++++++++++++++
+ t/fmt/texinfo/partialmenus.po    | 40 ++++++++++++++++++++++++++++++++
+ t/fmt/texinfo/partialmenus.pot   | 40 ++++++++++++++++++++++++++++++++
+ t/fmt/texinfo/partialmenus.texi  | 14 +++++++++++
+ t/fmt/texinfo/partialmenus.trans | 21 +++++++++++++++++
+ 7 files changed, 141 insertions(+), 4 deletions(-)
+ create mode 100644 t/fmt/texinfo/partialmenus.norm
+ create mode 100644 t/fmt/texinfo/partialmenus.po
+ create mode 100644 t/fmt/texinfo/partialmenus.pot
+ create mode 100644 t/fmt/texinfo/partialmenus.texi
+ create mode 100644 t/fmt/texinfo/partialmenus.trans
+
+diff --git a/lib/Locale/Po4a/Texinfo.pm b/lib/Locale/Po4a/Texinfo.pm
+index b4750699..1c3a4bae 100644
+--- a/lib/Locale/Po4a/Texinfo.pm
++++ b/lib/Locale/Po4a/Texinfo.pm
+@@ -336,7 +336,7 @@ sub translate_buffer_menuentry {
+ 
+     my $translated_buffer = "";
+ 
+-    if (   $buffer =~ m/^(.*?)(::)\s+(.*)$/s
++    if (   $buffer =~ m/^(.*?)(::)(?:\s+(.*))?$/s
+         or $buffer =~ m/^(.*?: .*?)(\.)\s+(.*)$/s )
+     {
+         my ( $name, $sep, $description ) = ( $1, $2, $3 );
+@@ -347,8 +347,9 @@ sub translate_buffer_menuentry {
+             $translated_buffer .= ' ' x ( $menu_sep_width - 1 - $l );
+             $l = $menu_sep_width - 1;
+         }
+-        ( $t, @e ) = $self->translate_buffer( $description, $no_wrap, @env );
+-
++        if ($description) {
++            ( $t, @e ) = $self->translate_buffer( $description, $no_wrap, @env );
++        }
+         # Replace newlines with space for proper wrapping
+         # See https://github.com/mquinson/po4a/issues/122
+         $t =~ s/\n/ /sg;
+diff --git a/t/fmt-texinfo.t b/t/fmt-texinfo.t
+index 4b067e43..d9ed5df3 100644
+--- a/t/fmt-texinfo.t
++++ b/t/fmt-texinfo.t
+@@ -10,7 +10,7 @@ use Testhelper;
+ 
+ my @tests;
+ 
+-for my $test (qw(longmenu comments tindex)) {
++for my $test (qw(longmenu partialmenus comments tindex)) {
+     push @tests,
+       {
+         'format' => 'texinfo',
+diff --git a/t/fmt/texinfo/partialmenus.norm b/t/fmt/texinfo/partialmenus.norm
+new file mode 100644
+index 00000000..99240682
+--- /dev/null
++++ b/t/fmt/texinfo/partialmenus.norm
+@@ -0,0 +1,21 @@
++\input texinfo
++@c ===========================================================================
++@c
++@c This file was generated with po4a. Translate the source file.
++@c
++@c ===========================================================================
++
++
++@c These menus do not contain a description, which used to cause a
++@c Texinfo menu entry to not be translated.
++@menu
++* A menu entry without any description::  A menu entry without any 
++                                            description
++* Optional menu name: The menu node::  Optional menu name: The menu node
++@end menu
++
++@node A menu entry without any description
++@chapter A menu entry without any description
++
++@node The menu node
++@chapter Optional menu name
+diff --git a/t/fmt/texinfo/partialmenus.po b/t/fmt/texinfo/partialmenus.po
+new file mode 100644
+index 00000000..31a14443
+--- /dev/null
++++ b/t/fmt/texinfo/partialmenus.po
+@@ -0,0 +1,40 @@
++# SOME DESCRIPTIVE TITLE
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"POT-Creation-Date: 2023-07-27 17:29-0400\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. type: chapter
++#: partialmenus.texi:8 partialmenus.texi:10 partialmenus.texi:11
++#, no-wrap
++msgid "A menu entry without any description"
++msgstr "A MENU ENTRY WITHOUT ANY DESCRIPTION"
++
++#. type: menuentry
++#: partialmenus.texi:8
++msgid "Optional menu name: The menu node"
++msgstr "OPTIONAL MENU NAME: THE MENU NODE"
++
++#. type: node
++#: partialmenus.texi:13
++#, no-wrap
++msgid "The menu node"
++msgstr "THE MENU NODE"
++
++#. type: chapter
++#: partialmenus.texi:14
++#, no-wrap
++msgid "Optional menu name"
++msgstr "OPTIONAL MENU NAME"
+diff --git a/t/fmt/texinfo/partialmenus.pot b/t/fmt/texinfo/partialmenus.pot
+new file mode 100644
+index 00000000..0379f805
+--- /dev/null
++++ b/t/fmt/texinfo/partialmenus.pot
+@@ -0,0 +1,40 @@
++# SOME DESCRIPTIVE TITLE
++# Copyright (C) YEAR Free Software Foundation, Inc.
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"POT-Creation-Date: 2023-08-16 09:47-0400\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. type: chapter
++#: partialmenus.texi:8 partialmenus.texi:10 partialmenus.texi:11
++#, no-wrap
++msgid "A menu entry without any description"
++msgstr ""
++
++#. type: menuentry
++#: partialmenus.texi:8
++msgid "Optional menu name: The menu node"
++msgstr ""
++
++#. type: node
++#: partialmenus.texi:13
++#, no-wrap
++msgid "The menu node"
++msgstr ""
++
++#. type: chapter
++#: partialmenus.texi:14
++#, no-wrap
++msgid "Optional menu name"
++msgstr ""
+diff --git a/t/fmt/texinfo/partialmenus.texi b/t/fmt/texinfo/partialmenus.texi
+new file mode 100644
+index 00000000..f8663a2b
+--- /dev/null
++++ b/t/fmt/texinfo/partialmenus.texi
+@@ -0,0 +1,14 @@
++\input texinfo
++
++@c These menus do not contain a description, which used to cause a
++@c Texinfo menu entry to not be translated.
++@menu
++* A menu entry without any description::
++* Optional menu name: The menu node::
++@end menu
++
++@node A menu entry without any description
++@chapter A menu entry without any description
++
++@node The menu node
++@chapter Optional menu name
+diff --git a/t/fmt/texinfo/partialmenus.trans b/t/fmt/texinfo/partialmenus.trans
+new file mode 100644
+index 00000000..0ef742a1
+--- /dev/null
++++ b/t/fmt/texinfo/partialmenus.trans
+@@ -0,0 +1,21 @@
++\input texinfo
++@c ===========================================================================
++@c
++@c This file was generated with po4a. Translate the source file.
++@c
++@c ===========================================================================
++
++
++@c These menus do not contain a description, which used to cause a
++@c Texinfo menu entry to not be translated.
++@menu
++* A MENU ENTRY WITHOUT ANY DESCRIPTION::  A MENU ENTRY WITHOUT ANY 
++                                            DESCRIPTION
++* OPTIONAL MENU NAME: THE MENU NODE::  OPTIONAL MENU NAME: THE MENU NODE
++@end menu
++
++@node A MENU ENTRY WITHOUT ANY DESCRIPTION
++@chapter A MENU ENTRY WITHOUT ANY DESCRIPTION
++
++@node THE MENU NODE
++@chapter OPTIONAL MENU NAME
+
+base-commit: 5b1cd768afdf4e9445812c5d43428495a0fde3c6
+-- 
+2.41.0
+
diff --git a/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch b/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch
deleted file mode 100644
index ae5ef5ebe0..0000000000
--- a/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Subject: nettle-sys: clear out "vendored" feature cruft from build.rs
-From: Daniel Kahn Gillmor's avatarDaniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-https://salsa.debian.org/rust-team/debcargo-conf/-/commit/0c71150ad26bb66a8396dcdab055181af232ddc5
-https://sources.debian.org/src/rust-nettle-sys/2.0.4-3/debian/patches/disable-vendor.diff/
---- a/Cargo.toml	2019-10-23 13:08:07.000000000 -0400
-+++ b/Cargo.toml	2019-10-23 14:08:46.644064014 -0400
-@@ -29,12 +29,9 @@
- version = "0.51.1"
- default-features = false
- 
--[build-dependencies.nettle-src]
--version = "3.5.1-0"
--optional = true
--
- [build-dependencies.pkg-config]
- version = "0.3"
- 
- [features]
- vendored = ["nettle-src"]
-+nettle-src = []
-diff --git a/build.rs b/build.rs
-index 44f7af3..ede4b2f 100644
---- a/build.rs
-+++ b/build.rs
-@@ -1,7 +1,5 @@
- extern crate bindgen;
- extern crate pkg_config;
--#[cfg(feature = "vendored")]
--extern crate nettle_src;
- 
- use std::env;
- use std::fs;
-@@ -36,14 +34,6 @@ fn main() {
-     println!("cargo:rerun-if-env-changed=NETTLE_STATIC");
-     println!("cargo:rerun-if-env-changed={}", NETTLE_PREGENERATED_BINDINGS);
- 
--    #[cfg(feature = "vendored")]
--    {
--        let artifacts = nettle_src::Build::new().build();
--        println!("cargo:vendored=1");
--        env::set_var("PKG_CONFIG_PATH",
--                     artifacts.lib_dir().join("pkgconfig"));
--    }
--
-     let nettle = pkg_config::probe_library("nettle hogweed").unwrap();
- 
-     let mode = match env::var_os("NETTLE_STATIC") {
diff --git a/gnu/packages/patches/rust-ring-0.16-missing-files.patch b/gnu/packages/patches/rust-ring-0.16-missing-files.patch
new file mode 100644
index 0000000000..fa2f94a801
--- /dev/null
+++ b/gnu/packages/patches/rust-ring-0.16-missing-files.patch
@@ -0,0 +1,2293 @@
+These 4 files exist in the git repository for rust-ring, and are from
+the same commit where 0.16.20 is taken from. They were not added to the
+include list in Cargo.toml, so they were not added to the tarball.
+
+---
+ crypto/curve25519/make_curve25519_tables.py   | 222 +++++
+ crypto/fipsmodule/aes/asm/vpaes-armv7.pl      | 896 ++++++++++++++++++
+ crypto/fipsmodule/aes/asm/vpaes-armv8.pl      | 837 ++++++++++++++++
+ .../fipsmodule/modes/asm/ghash-neon-armv8.pl  | 294 ++++++
+ 4 files changed, 2249 insertions(+)
+ create mode 100755 crypto/curve25519/make_curve25519_tables.py
+ create mode 100644 crypto/fipsmodule/aes/asm/vpaes-armv7.pl
+ create mode 100755 crypto/fipsmodule/aes/asm/vpaes-armv8.pl
+ create mode 100644 crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
+
+diff --git a/crypto/curve25519/make_curve25519_tables.py b/crypto/curve25519/make_curve25519_tables.py
+new file mode 100755
+index 0000000..50dee2a
+--- /dev/null
++++ b/crypto/curve25519/make_curve25519_tables.py
+@@ -0,0 +1,222 @@
++#!/usr/bin/env python
++# coding=utf-8
++# Copyright (c) 2020, Google Inc.
++#
++# Permission to use, copy, modify, and/or distribute this software for any
++# purpose with or without fee is hereby granted, provided that the above
++# copyright notice and this permission notice appear in all copies.
++#
++# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
++# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
++# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
++# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++
++import StringIO
++import subprocess
++
++# Base field Z_p
++p = 2**255 - 19
++
++def modp_inv(x):
++    return pow(x, p-2, p)
++
++# Square root of -1
++modp_sqrt_m1 = pow(2, (p-1) // 4, p)
++
++# Compute corresponding x-coordinate, with low bit corresponding to
++# sign, or return None on failure
++def recover_x(y, sign):
++    if y >= p:
++        return None
++    x2 = (y*y-1) * modp_inv(d*y*y+1)
++    if x2 == 0:
++        if sign:
++            return None
++        else:
++            return 0
++
++    # Compute square root of x2
++    x = pow(x2, (p+3) // 8, p)
++    if (x*x - x2) % p != 0:
++        x = x * modp_sqrt_m1 % p
++    if (x*x - x2) % p != 0:
++        return None
++
++    if (x & 1) != sign:
++        x = p - x
++    return x
++
++# Curve constant
++d = -121665 * modp_inv(121666) % p
++
++# Base point
++g_y = 4 * modp_inv(5) % p
++g_x = recover_x(g_y, 0)
++
++# Points are represented as affine tuples (x, y).
++
++def point_add(P, Q):
++    x1, y1 = P
++    x2, y2 = Q
++    x3 = ((x1*y2 + y1*x2) * modp_inv(1 + d*x1*x2*y1*y2)) % p
++    y3 = ((y1*y2 + x1*x2) * modp_inv(1 - d*x1*x2*y1*y2)) % p
++    return (x3, y3)
++
++# Computes Q = s * P
++def point_mul(s, P):
++    Q = (0, 1)  # Neutral element
++    while s > 0:
++        if s & 1:
++            Q = point_add(Q, P)
++        P = point_add(P, P)
++        s >>= 1
++    return Q
++
++def to_bytes(x):
++    ret = bytearray(32)
++    for i in range(len(ret)):
++        ret[i] = x % 256
++        x >>= 8
++    assert x == 0
++    return ret
++
++def to_ge_precomp(P):
++    # typedef struct {
++    #   fe_loose yplusx;
++    #   fe_loose yminusx;
++    #   fe_loose xy2d;
++    # } ge_precomp;
++    x, y = P
++    return ((y + x) % p, (y - x) % p, (x * y * 2 * d) % p)
++
++def to_base_25_5(x):
++    limbs = (26, 25, 26, 25, 26, 25, 26, 25, 26, 25)
++    ret = []
++    for l in limbs:
++        ret.append(x & ((1<<l) - 1))
++        x >>= l
++    assert x == 0
++    return ret
++
++def to_base_51(x):
++    ret = []
++    for _ in range(5):
++        ret.append(x & ((1<<51) - 1))
++        x >>= 51
++    assert x == 0
++    return ret
++
++def to_literal(x):
++    ret = "{{\n#if defined(BORINGSSL_CURVE25519_64BIT)\n"
++    ret += ", ".join(map(str, to_base_51(x)))
++    ret += "\n#else\n"
++    ret += ", ".join(map(str, to_base_25_5(x)))
++    ret += "\n#endif\n}}"
++    return ret
++
++def main():
++    d2 = (2 * d) % p
++
++    small_precomp = bytearray()
++    for i in range(1, 16):
++        s = (i&1) | ((i&2) << (64-1)) | ((i&4) << (128-2)) | ((i&8) << (192-3))
++        P = point_mul(s, (g_x, g_y))
++        small_precomp += to_bytes(P[0])
++        small_precomp += to_bytes(P[1])
++
++    large_precomp = []
++    for i in range(32):
++        large_precomp.append([])
++        for j in range(8):
++            P = point_mul((j + 1) << (i * 8), (g_x, g_y))
++            large_precomp[-1].append(to_ge_precomp(P))
++
++    bi_precomp = []
++    for i in range(8):
++        P = point_mul(2*i + 1, (g_x, g_y))
++        bi_precomp.append(to_ge_precomp(P))
++
++
++    buf = StringIO.StringIO()
++    buf.write("""/* Copyright (c) 2020, Google Inc.
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
++ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
++ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
++ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
++
++// This file is generated from
++//    ./make_curve25519_tables.py > curve25519_tables.h
++
++
++static const fe d = """)
++    buf.write(to_literal(d))
++    buf.write(""";
++
++static const fe sqrtm1 = """)
++    buf.write(to_literal(modp_sqrt_m1))
++    buf.write(""";
++
++static const fe d2 = """)
++    buf.write(to_literal(d2))
++    buf.write(""";
++
++#if defined(OPENSSL_SMALL)
++
++// This block of code replaces the standard base-point table with a much smaller
++// one. The standard table is 30,720 bytes while this one is just 960.
++//
++// This table contains 15 pairs of group elements, (x, y), where each field
++// element is serialised with |fe_tobytes|. If |i| is the index of the group
++// element then consider i+1 as a four-bit number: (i₀, i₁, i₂, i₃) (where i₀
++// is the most significant bit). The value of the group element is then:
++// (i₀×2^192 + i₁×2^128 + i₂×2^64 + i₃)G, where G is the generator.
++static const uint8_t k25519SmallPrecomp[15 * 2 * 32] = {""")
++    for i, b in enumerate(small_precomp):
++        buf.write("0x%02x, " % b)
++    buf.write("""
++};
++
++#else
++
++// k25519Precomp[i][j] = (j+1)*256^i*B
++static const ge_precomp k25519Precomp[32][8] = {
++""")
++    for child in large_precomp:
++        buf.write("{\n")
++        for val in child:
++            buf.write("{\n")
++            for term in val:
++                buf.write(to_literal(term) + ",\n")
++            buf.write("},\n")
++        buf.write("},\n")
++    buf.write("""};
++
++#endif  // OPENSSL_SMALL
++
++// Bi[i] = (2*i+1)*B
++static const ge_precomp Bi[8] = {
++""")
++    for val in bi_precomp:
++        buf.write("{\n")
++        for term in val:
++                buf.write(to_literal(term) + ",\n")
++        buf.write("},\n")
++    buf.write("""};
++""")
++
++    proc = subprocess.Popen(["clang-format"], stdin=subprocess.PIPE)
++    proc.communicate(buf.getvalue())
++
++if __name__ == "__main__":
++    main()
+diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv7.pl b/crypto/fipsmodule/aes/asm/vpaes-armv7.pl
+new file mode 100644
+index 0000000..d36a97a
+--- /dev/null
++++ b/crypto/fipsmodule/aes/asm/vpaes-armv7.pl
+@@ -0,0 +1,896 @@
++#! /usr/bin/env perl
++# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
++#
++# Licensed under the OpenSSL license (the "License").  You may not use
++# this file except in compliance with the License.  You can obtain a copy
++# in the file LICENSE in the source distribution or at
++# https://www.openssl.org/source/license.html
++
++
++######################################################################
++## Constant-time SSSE3 AES core implementation.
++## version 0.1
++##
++## By Mike Hamburg (Stanford University), 2009
++## Public domain.
++##
++## For details see http://shiftleft.org/papers/vector_aes/ and
++## http://crypto.stanford.edu/vpaes/.
++##
++######################################################################
++# Adapted from the original x86_64 version and <appro@openssl.org>'s ARMv8
++# version.
++#
++# armv7, aarch64, and x86_64 differ in several ways:
++#
++# * x86_64 SSSE3 instructions are two-address (destination operand is also a
++#   source), while NEON is three-address (destination operand is separate from
++#   two sources).
++#
++# * aarch64 has 32 SIMD registers available, while x86_64 and armv7 have 16.
++#
++# * x86_64 instructions can take memory references, while ARM is a load/store
++#   architecture. This means we sometimes need a spare register.
++#
++# * aarch64 and x86_64 have 128-bit byte shuffle instructions (tbl and pshufb),
++#   while armv7 only has a 64-bit byte shuffle (vtbl).
++#
++# This means this armv7 version must be a mix of both aarch64 and x86_64
++# implementations. armv7 and aarch64 have analogous SIMD instructions, so we
++# base the instructions on aarch64. However, we cannot use aarch64's register
++# allocation. x86_64's register count matches, but x86_64 is two-address.
++# vpaes-armv8.pl already accounts for this in the comments, which use
++# three-address AVX instructions instead of the original SSSE3 ones. We base
++# register usage on these comments, which are preserved in this file.
++#
++# This means we do not use separate input and output registers as in aarch64 and
++# cannot pin as many constants in the preheat functions. However, the load/store
++# architecture means we must still deviate from x86_64 in places.
++#
++# Next, we account for the byte shuffle instructions. vtbl takes 64-bit source
++# and destination and 128-bit table. Fortunately, armv7 also allows addressing
++# upper and lower halves of each 128-bit register. The lower half of q{N} is
++# d{2*N}. The upper half is d{2*N+1}. Instead of the following non-existent
++# instruction,
++#
++#     vtbl.8 q0, q1, q2   @ Index each of q2's 16 bytes into q1. Store in q0.
++#
++# we write:
++#
++#     vtbl.8 d0, q1, d4   @ Index each of d4's 8 bytes into q1. Store in d0.
++#     vtbl.8 d1, q1, d5   @ Index each of d5's 8 bytes into q1. Store in d1.
++#
++# For readability, we write d0 and d1 as q0#lo and q0#hi, respectively and
++# post-process before outputting. (This is adapted from ghash-armv4.pl.) Note,
++# however, that destination (q0) and table (q1) registers may no longer match.
++# We adjust the register usage from x86_64 to avoid this. (Unfortunately, the
++# two-address pshufb always matched these operands, so this is common.)
++#
++# This file also runs against the limit of ARMv7's ADR pseudo-instruction. ADR
++# expands to an ADD or SUB of the pc register to find an address. That immediate
++# must fit in ARM's encoding scheme: 8 bits of constant and 4 bits of rotation.
++# This means larger values must be more aligned.
++#
++# ARM additionally has two encodings, ARM and Thumb mode. Our assembly files may
++# use either encoding (do we actually need to support this?). In ARM mode, the
++# distances get large enough to require 16-byte alignment. Moving constants
++# closer to their use resolves most of this, but common constants in
++# _vpaes_consts are used by the whole file. Affected ADR instructions must be
++# placed at 8 mod 16 (the pc register is 8 ahead). Instructions with this
++# constraint have been commented.
++#
++# For details on ARM's immediate value encoding scheme, see
++# https://alisdair.mcdiarmid.org/arm-immediate-value-encoding/
++#
++# Finally, a summary of armv7 and aarch64 SIMD syntax differences:
++#
++# * armv7 prefixes SIMD instructions with 'v', while aarch64 does not.
++#
++# * armv7 SIMD registers are named like q0 (and d0 for the half-width ones).
++#   aarch64 names registers like v0, and denotes half-width operations in an
++#   instruction suffix (see below).
++#
++# * aarch64 embeds size and lane information in register suffixes. v0.16b is
++#   16 bytes, v0.8h is eight u16s, v0.4s is four u32s, and v0.2d is two u64s.
++#   armv7 embeds the total size in the register name (see above) and the size of
++#   each element in an instruction suffix, which may look like vmov.i8,
++#   vshr.u8, or vtbl.8, depending on instruction.
++
++use strict;
++
++my $flavour = shift;
++my $output;
++while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {}
++
++$0 =~ m/(.*[\/\\])[^\/\\]+$/;
++my $dir=$1;
++my $xlate;
++( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or
++( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or
++die "can't locate arm-xlate.pl";
++
++open OUT,"| \"$^X\" $xlate $flavour $output";
++*STDOUT=*OUT;
++
++my $code = "";
++
++$code.=<<___;
++.syntax	unified
++
++.arch	armv7-a
++.fpu	neon
++
++#if defined(__thumb2__)
++.thumb
++#else
++.code	32
++#endif
++
++.text
++
++.type	_vpaes_consts,%object
++.align	7	@ totally strategic alignment
++_vpaes_consts:
++.Lk_mc_forward:	@ mc_forward
++	.quad	0x0407060500030201, 0x0C0F0E0D080B0A09
++	.quad	0x080B0A0904070605, 0x000302010C0F0E0D
++	.quad	0x0C0F0E0D080B0A09, 0x0407060500030201
++	.quad	0x000302010C0F0E0D, 0x080B0A0904070605
++.Lk_mc_backward:@ mc_backward
++	.quad	0x0605040702010003, 0x0E0D0C0F0A09080B
++	.quad	0x020100030E0D0C0F, 0x0A09080B06050407
++	.quad	0x0E0D0C0F0A09080B, 0x0605040702010003
++	.quad	0x0A09080B06050407, 0x020100030E0D0C0F
++.Lk_sr:		@ sr
++	.quad	0x0706050403020100, 0x0F0E0D0C0B0A0908
++	.quad	0x030E09040F0A0500, 0x0B06010C07020D08
++	.quad	0x0F060D040B020900, 0x070E050C030A0108
++	.quad	0x0B0E0104070A0D00, 0x0306090C0F020508
++
++@
++@ "Hot" constants
++@
++.Lk_inv:	@ inv, inva
++	.quad	0x0E05060F0D080180, 0x040703090A0B0C02
++	.quad	0x01040A060F0B0780, 0x030D0E0C02050809
++.Lk_ipt:	@ input transform (lo, hi)
++	.quad	0xC2B2E8985A2A7000, 0xCABAE09052227808
++	.quad	0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
++.Lk_sbo:	@ sbou, sbot
++	.quad	0xD0D26D176FBDC700, 0x15AABF7AC502A878
++	.quad	0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
++.Lk_sb1:	@ sb1u, sb1t
++	.quad	0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
++	.quad	0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
++.Lk_sb2:	@ sb2u, sb2t
++	.quad	0x69EB88400AE12900, 0xC2A163C8AB82234A
++	.quad	0xE27A93C60B712400, 0x5EB7E955BC982FCD
++
++.asciz  "Vector Permutation AES for ARMv7 NEON, Mike Hamburg (Stanford University)"
++.size	_vpaes_consts,.-_vpaes_consts
++.align	6
++___
++
++{
++my ($inp,$out,$key) = map("r$_", (0..2));
++
++my ($invlo,$invhi) = map("q$_", (10..11));
++my ($sb1u,$sb1t,$sb2u,$sb2t) = map("q$_", (12..15));
++
++$code.=<<___;
++@@
++@@  _aes_preheat
++@@
++@@  Fills q9-q15 as specified below.
++@@
++.type	_vpaes_preheat,%function
++.align	4
++_vpaes_preheat:
++	adr	r10, .Lk_inv
++	vmov.i8	q9, #0x0f		@ .Lk_s0F
++	vld1.64	{q10,q11}, [r10]!	@ .Lk_inv
++	add	r10, r10, #64		@ Skip .Lk_ipt, .Lk_sbo
++	vld1.64	{q12,q13}, [r10]!	@ .Lk_sb1
++	vld1.64	{q14,q15}, [r10]	@ .Lk_sb2
++	bx	lr
++
++@@
++@@  _aes_encrypt_core
++@@
++@@  AES-encrypt q0.
++@@
++@@  Inputs:
++@@     q0 = input
++@@     q9-q15 as in _vpaes_preheat
++@@    [$key] = scheduled keys
++@@
++@@  Output in q0
++@@  Clobbers  q1-q5, r8-r11
++@@  Preserves q6-q8 so you get some local vectors
++@@
++@@
++.type	_vpaes_encrypt_core,%function
++.align 4
++_vpaes_encrypt_core:
++	mov	r9, $key
++	ldr	r8, [$key,#240]		@ pull rounds
++	adr	r11, .Lk_ipt
++	@ vmovdqa	.Lk_ipt(%rip),	%xmm2	# iptlo
++	@ vmovdqa	.Lk_ipt+16(%rip), %xmm3	# ipthi
++	vld1.64	{q2, q3}, [r11]
++	adr	r11, .Lk_mc_forward+16
++	vld1.64	{q5}, [r9]!		@ vmovdqu	(%r9),	%xmm5		# round0 key
++	vand	q1, q0, q9		@ vpand	%xmm9,	%xmm0,	%xmm1
++	vshr.u8	q0, q0, #4		@ vpsrlb	\$4,	%xmm0,	%xmm0
++	vtbl.8	q1#lo, {q2}, q1#lo	@ vpshufb	%xmm1,	%xmm2,	%xmm1
++	vtbl.8	q1#hi, {q2}, q1#hi
++	vtbl.8	q2#lo, {q3}, q0#lo	@ vpshufb	%xmm0,	%xmm3,	%xmm2
++	vtbl.8	q2#hi, {q3}, q0#hi
++	veor	q0, q1, q5		@ vpxor	%xmm5,	%xmm1,	%xmm0
++	veor	q0, q0, q2		@ vpxor	%xmm2,	%xmm0,	%xmm0
++
++	@ .Lenc_entry ends with a bnz instruction which is normally paired with
++	@ subs in .Lenc_loop.
++	tst	r8, r8
++	b	.Lenc_entry
++
++.align 4
++.Lenc_loop:
++	@ middle of middle round
++	add	r10, r11, #0x40
++	vtbl.8	q4#lo, {$sb1t}, q2#lo	@ vpshufb	%xmm2,	%xmm13,	%xmm4	# 4 = sb1u
++	vtbl.8	q4#hi, {$sb1t}, q2#hi
++	vld1.64	{q1}, [r11]!		@ vmovdqa	-0x40(%r11,%r10), %xmm1	# .Lk_mc_forward[]
++	vtbl.8	q0#lo, {$sb1u}, q3#lo	@ vpshufb	%xmm3,	%xmm12,	%xmm0	# 0 = sb1t
++	vtbl.8	q0#hi, {$sb1u}, q3#hi
++	veor	q4, q4, q5		@ vpxor		%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	vtbl.8	q5#lo, {$sb2t}, q2#lo	@ vpshufb	%xmm2,	%xmm15,	%xmm5	# 4 = sb2u
++	vtbl.8	q5#hi, {$sb2t}, q2#hi
++	veor	q0, q0, q4		@ vpxor		%xmm4,	%xmm0,	%xmm0	# 0 = A
++	vtbl.8	q2#lo, {$sb2u}, q3#lo	@ vpshufb	%xmm3,	%xmm14,	%xmm2	# 2 = sb2t
++	vtbl.8	q2#hi, {$sb2u}, q3#hi
++	vld1.64	{q4}, [r10]		@ vmovdqa	(%r11,%r10), %xmm4	# .Lk_mc_backward[]
++	vtbl.8	q3#lo, {q0}, q1#lo	@ vpshufb	%xmm1,	%xmm0,	%xmm3	# 0 = B
++	vtbl.8	q3#hi, {q0}, q1#hi
++	veor	q2, q2, q5		@ vpxor		%xmm5,	%xmm2,	%xmm2	# 2 = 2A
++	@ Write to q5 instead of q0, so the table and destination registers do
++	@ not overlap.
++	vtbl.8	q5#lo, {q0}, q4#lo	@ vpshufb	%xmm4,	%xmm0,	%xmm0	# 3 = D
++	vtbl.8	q5#hi, {q0}, q4#hi
++	veor	q3, q3, q2		@ vpxor		%xmm2,	%xmm3,	%xmm3	# 0 = 2A+B
++	vtbl.8	q4#lo, {q3}, q1#lo	@ vpshufb	%xmm1,	%xmm3,	%xmm4	# 0 = 2B+C
++	vtbl.8	q4#hi, {q3}, q1#hi
++	@ Here we restore the original q0/q5 usage.
++	veor	q0, q5, q3		@ vpxor		%xmm3,	%xmm0,	%xmm0	# 3 = 2A+B+D
++	and	r11, r11, #~(1<<6)	@ and		\$0x30,	%r11		# ... mod 4
++	veor	q0, q0, q4		@ vpxor		%xmm4,	%xmm0, %xmm0	# 0 = 2A+3B+C+D
++	subs	r8, r8, #1		@ nr--
++
++.Lenc_entry:
++	@ top of round
++	vand	q1, q0, q9		@ vpand		%xmm0,	%xmm9,	%xmm1   # 0 = k
++	vshr.u8	q0, q0, #4		@ vpsrlb	\$4,	%xmm0,	%xmm0	# 1 = i
++	vtbl.8	q5#lo, {$invhi}, q1#lo	@ vpshufb	%xmm1,	%xmm11,	%xmm5	# 2 = a/k
++	vtbl.8	q5#hi, {$invhi}, q1#hi
++	veor	q1, q1, q0		@ vpxor		%xmm0,	%xmm1,	%xmm1	# 0 = j
++	vtbl.8	q3#lo, {$invlo}, q0#lo	@ vpshufb	%xmm0, 	%xmm10,	%xmm3  	# 3 = 1/i
++	vtbl.8	q3#hi, {$invlo}, q0#hi
++	vtbl.8	q4#lo, {$invlo}, q1#lo	@ vpshufb	%xmm1, 	%xmm10,	%xmm4  	# 4 = 1/j
++	vtbl.8	q4#hi, {$invlo}, q1#hi
++	veor	q3, q3, q5		@ vpxor		%xmm5,	%xmm3,	%xmm3	# 3 = iak = 1/i + a/k
++	veor	q4, q4, q5		@ vpxor		%xmm5,	%xmm4,	%xmm4  	# 4 = jak = 1/j + a/k
++	vtbl.8	q2#lo, {$invlo}, q3#lo	@ vpshufb	%xmm3,	%xmm10,	%xmm2  	# 2 = 1/iak
++	vtbl.8	q2#hi, {$invlo}, q3#hi
++	vtbl.8	q3#lo, {$invlo}, q4#lo	@ vpshufb	%xmm4,	%xmm10,	%xmm3	# 3 = 1/jak
++	vtbl.8	q3#hi, {$invlo}, q4#hi
++	veor	q2, q2, q1		@ vpxor		%xmm1,	%xmm2,	%xmm2  	# 2 = io
++	veor	q3, q3, q0		@ vpxor		%xmm0,	%xmm3,	%xmm3	# 3 = jo
++	vld1.64	{q5}, [r9]!		@ vmovdqu	(%r9),	%xmm5
++	bne	.Lenc_loop
++
++	@ middle of last round
++	add	r10, r11, #0x80
++
++	adr	r11, .Lk_sbo
++	@ Read to q1 instead of q4, so the vtbl.8 instruction below does not
++	@ overlap table and destination registers.
++	vld1.64 {q1}, [r11]!		@ vmovdqa	-0x60(%r10), %xmm4	# 3 : sbou
++	vld1.64 {q0}, [r11]		@ vmovdqa	-0x50(%r10), %xmm0	# 0 : sbot	.Lk_sbo+16
++	vtbl.8	q4#lo, {q1}, q2#lo	@ vpshufb	%xmm2,	%xmm4,	%xmm4	# 4 = sbou
++	vtbl.8	q4#hi, {q1}, q2#hi
++	vld1.64	{q1}, [r10]		@ vmovdqa	0x40(%r11,%r10), %xmm1	# .Lk_sr[]
++	@ Write to q2 instead of q0 below, to avoid overlapping table and
++	@ destination registers.
++	vtbl.8	q2#lo, {q0}, q3#lo	@ vpshufb	%xmm3,	%xmm0,	%xmm0	# 0 = sb1t
++	vtbl.8	q2#hi, {q0}, q3#hi
++	veor	q4, q4, q5		@ vpxor	%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	veor	q2, q2, q4		@ vpxor	%xmm4,	%xmm0,	%xmm0	# 0 = A
++	@ Here we restore the original q0/q2 usage.
++	vtbl.8	q0#lo, {q2}, q1#lo	@ vpshufb	%xmm1,	%xmm0,	%xmm0
++	vtbl.8	q0#hi, {q2}, q1#hi
++	bx	lr
++.size	_vpaes_encrypt_core,.-_vpaes_encrypt_core
++
++.globl	GFp_vpaes_encrypt
++.type	GFp_vpaes_encrypt,%function
++.align	4
++GFp_vpaes_encrypt:
++	@ _vpaes_encrypt_core uses r8-r11. Round up to r7-r11 to maintain stack
++	@ alignment.
++	stmdb	sp!, {r7-r11,lr}
++	@ _vpaes_encrypt_core uses q4-q5 (d8-d11), which are callee-saved.
++	vstmdb	sp!, {d8-d11}
++
++	vld1.64	{q0}, [$inp]
++	bl	_vpaes_preheat
++	bl	_vpaes_encrypt_core
++	vst1.64	{q0}, [$out]
++
++	vldmia	sp!, {d8-d11}
++	ldmia	sp!, {r7-r11, pc}	@ return
++.size	GFp_vpaes_encrypt,.-GFp_vpaes_encrypt
++___
++}
++{
++my ($inp,$bits,$out,$dir)=("r0","r1","r2","r3");
++my ($rcon,$s0F,$invlo,$invhi,$s63) = map("q$_",(8..12));
++
++$code.=<<___;
++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++@@                                                    @@
++@@                  AES key schedule                  @@
++@@                                                    @@
++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++
++@ This function diverges from both x86_64 and armv7 in which constants are
++@ pinned. x86_64 has a common preheat function for all operations. aarch64
++@ separates them because it has enough registers to pin nearly all constants.
++@ armv7 does not have enough registers, but needing explicit loads and stores
++@ also complicates using x86_64's register allocation directly.
++@
++@ We pin some constants for convenience and leave q14 and q15 free to load
++@ others on demand.
++
++@
++@  Key schedule constants
++@
++.type	_vpaes_key_consts,%object
++.align	4
++_vpaes_key_consts:
++.Lk_rcon:	@ rcon
++	.quad	0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
++
++.Lk_opt:	@ output transform
++	.quad	0xFF9F4929D6B66000, 0xF7974121DEBE6808
++	.quad	0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
++.Lk_deskew:	@ deskew tables: inverts the sbox's "skew"
++	.quad	0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
++	.quad	0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
++.size	_vpaes_key_consts,.-_vpaes_key_consts
++
++.type	_vpaes_key_preheat,%function
++.align	4
++_vpaes_key_preheat:
++	adr	r11, .Lk_rcon
++	vmov.i8	$s63, #0x5b			@ .Lk_s63
++	adr	r10, .Lk_inv			@ Must be aligned to 8 mod 16.
++	vmov.i8	$s0F, #0x0f			@ .Lk_s0F
++	vld1.64	{$invlo,$invhi}, [r10]		@ .Lk_inv
++	vld1.64	{$rcon}, [r11]			@ .Lk_rcon
++	bx	lr
++.size	_vpaes_key_preheat,.-_vpaes_key_preheat
++
++.type	_vpaes_schedule_core,%function
++.align	4
++_vpaes_schedule_core:
++	@ We only need to save lr, but ARM requires an 8-byte stack alignment,
++	@ so save an extra register.
++	stmdb	sp!, {r3,lr}
++
++	bl	_vpaes_key_preheat	@ load the tables
++
++	adr	r11, .Lk_ipt		@ Must be aligned to 8 mod 16.
++	vld1.64	{q0}, [$inp]!		@ vmovdqu	(%rdi),	%xmm0		# load key (unaligned)
++
++	@ input transform
++	@ Use q4 here rather than q3 so .Lschedule_am_decrypting does not
++	@ overlap table and destination.
++	vmov	q4, q0			@ vmovdqa	%xmm0,	%xmm3
++	bl	_vpaes_schedule_transform
++	adr	r10, .Lk_sr		@ Must be aligned to 8 mod 16.
++	vmov	q7, q0			@ vmovdqa	%xmm0,	%xmm7
++
++	add	r8, r8, r10
++
++	@ encrypting, output zeroth round key after transform
++	vst1.64	{q0}, [$out]		@ vmovdqu	%xmm0,	(%rdx)
++
++	@ *ring*: Decryption removed.
++
++.Lschedule_go:
++	cmp	$bits, #192		@ cmp	\$192,	%esi
++	bhi	.Lschedule_256
++	@ 128: fall though
++
++@@
++@@  .schedule_128
++@@
++@@  128-bit specific part of key schedule.
++@@
++@@  This schedule is really simple, because all its parts
++@@  are accomplished by the subroutines.
++@@
++.Lschedule_128:
++	mov	$inp, #10		@ mov	\$10, %esi
++
++.Loop_schedule_128:
++	bl 	_vpaes_schedule_round
++	subs	$inp, $inp, #1		@ dec	%esi
++	beq 	.Lschedule_mangle_last
++	bl	_vpaes_schedule_mangle	@ write output
++	b 	.Loop_schedule_128
++
++@@
++@@  .aes_schedule_256
++@@
++@@  256-bit specific part of key schedule.
++@@
++@@  The structure here is very similar to the 128-bit
++@@  schedule, but with an additional "low side" in
++@@  q6.  The low side's rounds are the same as the
++@@  high side's, except no rcon and no rotation.
++@@
++.align	4
++.Lschedule_256:
++	vld1.64	{q0}, [$inp]			@ vmovdqu	16(%rdi),%xmm0		# load key part 2 (unaligned)
++	bl	_vpaes_schedule_transform	@ input transform
++	mov	$inp, #7			@ mov	\$7, %esi
++
++.Loop_schedule_256:
++	bl	_vpaes_schedule_mangle		@ output low result
++	vmov	q6, q0				@ vmovdqa	%xmm0,	%xmm6		# save cur_lo in xmm6
++
++	@ high round
++	bl	_vpaes_schedule_round
++	subs	$inp, $inp, #1			@ dec	%esi
++	beq 	.Lschedule_mangle_last
++	bl	_vpaes_schedule_mangle
++
++	@ low round. swap xmm7 and xmm6
++	vdup.32	q0, q0#hi[1]		@ vpshufd	\$0xFF,	%xmm0,	%xmm0
++	vmov.i8	q4, #0
++	vmov	q5, q7			@ vmovdqa	%xmm7,	%xmm5
++	vmov	q7, q6			@ vmovdqa	%xmm6,	%xmm7
++	bl	_vpaes_schedule_low_round
++	vmov	q7, q5			@ vmovdqa	%xmm5,	%xmm7
++
++	b	.Loop_schedule_256
++
++@@
++@@  .aes_schedule_mangle_last
++@@
++@@  Mangler for last round of key schedule
++@@  Mangles q0
++@@    when encrypting, outputs out(q0) ^ 63
++@@    when decrypting, outputs unskew(q0)
++@@
++@@  Always called right before return... jumps to cleanup and exits
++@@
++.align	4
++.Lschedule_mangle_last:
++	@ schedule last round key from xmm0
++	adr	r11, .Lk_deskew			@ lea	.Lk_deskew(%rip),%r11	# prepare to deskew
++
++	@ encrypting
++	vld1.64	{q1}, [r8]		@ vmovdqa	(%r8,%r10),%xmm1
++	adr	r11, .Lk_opt		@ lea		.Lk_opt(%rip),	%r11		# prepare to output transform
++	add	$out, $out, #32		@ add		\$32,	%rdx
++	vmov	q2, q0
++	vtbl.8	q0#lo, {q2}, q1#lo	@ vpshufb	%xmm1,	%xmm0,	%xmm0		# output permute
++	vtbl.8	q0#hi, {q2}, q1#hi
++
++.Lschedule_mangle_last_dec:
++	sub	$out, $out, #16			@ add	\$-16,	%rdx
++	veor	q0, q0, $s63			@ vpxor	.Lk_s63(%rip),	%xmm0,	%xmm0
++	bl	_vpaes_schedule_transform	@ output transform
++	vst1.64	{q0}, [$out]			@ vmovdqu	%xmm0,	(%rdx)		# save last key
++
++	@ cleanup
++	veor	q0, q0, q0		@ vpxor	%xmm0,	%xmm0,	%xmm0
++	veor	q1, q1, q1		@ vpxor	%xmm1,	%xmm1,	%xmm1
++	veor	q2, q2, q2		@ vpxor	%xmm2,	%xmm2,	%xmm2
++	veor	q3, q3, q3		@ vpxor	%xmm3,	%xmm3,	%xmm3
++	veor	q4, q4, q4		@ vpxor	%xmm4,	%xmm4,	%xmm4
++	veor	q5, q5, q5		@ vpxor	%xmm5,	%xmm5,	%xmm5
++	veor	q6, q6, q6		@ vpxor	%xmm6,	%xmm6,	%xmm6
++	veor	q7, q7, q7		@ vpxor	%xmm7,	%xmm7,	%xmm7
++	ldmia	sp!, {r3,pc}		@ return
++.size	_vpaes_schedule_core,.-_vpaes_schedule_core
++
++@@
++@@  .aes_schedule_round
++@@
++@@  Runs one main round of the key schedule on q0, q7
++@@
++@@  Specifically, runs subbytes on the high dword of q0
++@@  then rotates it by one byte and xors into the low dword of
++@@  q7.
++@@
++@@  Adds rcon from low byte of q8, then rotates q8 for
++@@  next rcon.
++@@
++@@  Smears the dwords of q7 by xoring the low into the
++@@  second low, result into third, result into highest.
++@@
++@@  Returns results in q7 = q0.
++@@  Clobbers q1-q4, r11.
++@@
++.type	_vpaes_schedule_round,%function
++.align	4
++_vpaes_schedule_round:
++	@ extract rcon from xmm8
++	vmov.i8	q4, #0				@ vpxor		%xmm4,	%xmm4,	%xmm4
++	vext.8	q1, $rcon, q4, #15		@ vpalignr	\$15,	%xmm8,	%xmm4,	%xmm1
++	vext.8	$rcon, $rcon, $rcon, #15	@ vpalignr	\$15,	%xmm8,	%xmm8,	%xmm8
++	veor	q7, q7, q1			@ vpxor		%xmm1,	%xmm7,	%xmm7
++
++	@ rotate
++	vdup.32	q0, q0#hi[1]			@ vpshufd	\$0xFF,	%xmm0,	%xmm0
++	vext.8	q0, q0, q0, #1			@ vpalignr	\$1,	%xmm0,	%xmm0,	%xmm0
++
++	@ fall through...
++
++	@ low round: same as high round, but no rotation and no rcon.
++_vpaes_schedule_low_round:
++	@ The x86_64 version pins .Lk_sb1 in %xmm13 and .Lk_sb1+16 in %xmm12.
++	@ We pin other values in _vpaes_key_preheat, so load them now.
++	adr	r11, .Lk_sb1
++	vld1.64	{q14,q15}, [r11]
++
++	@ smear xmm7
++	vext.8	q1, q4, q7, #12			@ vpslldq	\$4,	%xmm7,	%xmm1
++	veor	q7, q7, q1			@ vpxor	%xmm1,	%xmm7,	%xmm7
++	vext.8	q4, q4, q7, #8			@ vpslldq	\$8,	%xmm7,	%xmm4
++
++	@ subbytes
++	vand	q1, q0, $s0F			@ vpand		%xmm9,	%xmm0,	%xmm1		# 0 = k
++	vshr.u8	q0, q0, #4			@ vpsrlb	\$4,	%xmm0,	%xmm0		# 1 = i
++	 veor	q7, q7, q4			@ vpxor		%xmm4,	%xmm7,	%xmm7
++	vtbl.8	q2#lo, {$invhi}, q1#lo		@ vpshufb	%xmm1,	%xmm11,	%xmm2		# 2 = a/k
++	vtbl.8	q2#hi, {$invhi}, q1#hi
++	veor	q1, q1, q0			@ vpxor		%xmm0,	%xmm1,	%xmm1		# 0 = j
++	vtbl.8	q3#lo, {$invlo}, q0#lo		@ vpshufb	%xmm0, 	%xmm10,	%xmm3		# 3 = 1/i
++	vtbl.8	q3#hi, {$invlo}, q0#hi
++	veor	q3, q3, q2			@ vpxor		%xmm2,	%xmm3,	%xmm3		# 3 = iak = 1/i + a/k
++	vtbl.8	q4#lo, {$invlo}, q1#lo		@ vpshufb	%xmm1,	%xmm10,	%xmm4		# 4 = 1/j
++	vtbl.8	q4#hi, {$invlo}, q1#hi
++	 veor	q7, q7, $s63			@ vpxor		.Lk_s63(%rip),	%xmm7,	%xmm7
++	vtbl.8	q3#lo, {$invlo}, q3#lo		@ vpshufb	%xmm3,	%xmm10,	%xmm3		# 2 = 1/iak
++	vtbl.8	q3#hi, {$invlo}, q3#hi
++	veor	q4, q4, q2			@ vpxor		%xmm2,	%xmm4,	%xmm4		# 4 = jak = 1/j + a/k
++	vtbl.8	q2#lo, {$invlo}, q4#lo		@ vpshufb	%xmm4,	%xmm10,	%xmm2		# 3 = 1/jak
++	vtbl.8	q2#hi, {$invlo}, q4#hi
++	veor	q3, q3, q1			@ vpxor		%xmm1,	%xmm3,	%xmm3		# 2 = io
++	veor	q2, q2, q0			@ vpxor		%xmm0,	%xmm2,	%xmm2		# 3 = jo
++	vtbl.8	q4#lo, {q15}, q3#lo		@ vpshufb	%xmm3,	%xmm13,	%xmm4		# 4 = sbou
++	vtbl.8	q4#hi, {q15}, q3#hi
++	vtbl.8	q1#lo, {q14}, q2#lo		@ vpshufb	%xmm2,	%xmm12,	%xmm1		# 0 = sb1t
++	vtbl.8	q1#hi, {q14}, q2#hi
++	veor	q1, q1, q4			@ vpxor		%xmm4,	%xmm1,	%xmm1		# 0 = sbox output
++
++	@ add in smeared stuff
++	veor	q0, q1, q7			@ vpxor	%xmm7,	%xmm1,	%xmm0
++	veor	q7, q1, q7			@ vmovdqa	%xmm0,	%xmm7
++	bx	lr
++.size	_vpaes_schedule_round,.-_vpaes_schedule_round
++
++@@
++@@  .aes_schedule_transform
++@@
++@@  Linear-transform q0 according to tables at [r11]
++@@
++@@  Requires that q9 = 0x0F0F... as in preheat
++@@  Output in q0
++@@  Clobbers q1, q2, q14, q15
++@@
++.type	_vpaes_schedule_transform,%function
++.align	4
++_vpaes_schedule_transform:
++	vld1.64	{q14,q15}, [r11]	@ vmovdqa	(%r11),	%xmm2 	# lo
++					@ vmovdqa	16(%r11),	%xmm1 # hi
++	vand	q1, q0, $s0F		@ vpand	%xmm9,	%xmm0,	%xmm1
++	vshr.u8	q0, q0, #4		@ vpsrlb	\$4,	%xmm0,	%xmm0
++	vtbl.8	q2#lo, {q14}, q1#lo	@ vpshufb	%xmm1,	%xmm2,	%xmm2
++	vtbl.8	q2#hi, {q14}, q1#hi
++	vtbl.8	q0#lo, {q15}, q0#lo	@ vpshufb	%xmm0,	%xmm1,	%xmm0
++	vtbl.8	q0#hi, {q15}, q0#hi
++	veor	q0, q0, q2		@ vpxor	%xmm2,	%xmm0,	%xmm0
++	bx	lr
++.size	_vpaes_schedule_transform,.-_vpaes_schedule_transform
++
++@@
++@@  .aes_schedule_mangle
++@@
++@@  Mangles q0 from (basis-transformed) standard version
++@@  to our version.
++@@
++@@  On encrypt,
++@@    xor with 0x63
++@@    multiply by circulant 0,1,1,1
++@@    apply shiftrows transform
++@@
++@@  On decrypt,
++@@    xor with 0x63
++@@    multiply by "inverse mixcolumns" circulant E,B,D,9
++@@    deskew
++@@    apply shiftrows transform
++@@
++@@
++@@  Writes out to [r2], and increments or decrements it
++@@  Keeps track of round number mod 4 in r8
++@@  Preserves q0
++@@  Clobbers q1-q5
++@@
++.type	_vpaes_schedule_mangle,%function
++.align	4
++_vpaes_schedule_mangle:
++	tst	$dir, $dir
++	vmov	q4, q0			@ vmovdqa	%xmm0,	%xmm4	# save xmm0 for later
++	adr	r11, .Lk_mc_forward	@ Must be aligned to 8 mod 16.
++	vld1.64	{q5}, [r11]		@ vmovdqa	.Lk_mc_forward(%rip),%xmm5
++
++	@ encrypting
++	@ Write to q2 so we do not overlap table and destination below.
++	veor	q2, q0, $s63		@ vpxor		.Lk_s63(%rip),	%xmm0,	%xmm4
++	add	$out, $out, #16		@ add		\$16,	%rdx
++	vtbl.8	q4#lo, {q2}, q5#lo	@ vpshufb	%xmm5,	%xmm4,	%xmm4
++	vtbl.8	q4#hi, {q2}, q5#hi
++	vtbl.8	q1#lo, {q4}, q5#lo	@ vpshufb	%xmm5,	%xmm4,	%xmm1
++	vtbl.8	q1#hi, {q4}, q5#hi
++	vtbl.8	q3#lo, {q1}, q5#lo	@ vpshufb	%xmm5,	%xmm1,	%xmm3
++	vtbl.8	q3#hi, {q1}, q5#hi
++	veor	q4, q4, q1		@ vpxor		%xmm1,	%xmm4,	%xmm4
++	vld1.64	{q1}, [r8]		@ vmovdqa	(%r8,%r10),	%xmm1
++	veor	q3, q3, q4		@ vpxor		%xmm4,	%xmm3,	%xmm3
++
++.Lschedule_mangle_both:
++	@ Write to q2 so table and destination do not overlap.
++	vtbl.8	q2#lo, {q3}, q1#lo	@ vpshufb	%xmm1,	%xmm3,	%xmm3
++	vtbl.8	q2#hi, {q3}, q1#hi
++	add	r8, r8, #64-16		@ add	\$-16,	%r8
++	and	r8, r8, #~(1<<6)	@ and	\$0x30,	%r8
++	vst1.64	{q2}, [$out]		@ vmovdqu	%xmm3,	(%rdx)
++	bx	lr
++.size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle
++
++.globl	GFp_vpaes_set_encrypt_key
++.type	GFp_vpaes_set_encrypt_key,%function
++.align	4
++GFp_vpaes_set_encrypt_key:
++	stmdb	sp!, {r7-r11, lr}
++	vstmdb	sp!, {d8-d15}
++
++	lsr	r9, $bits, #5		@ shr	\$5,%eax
++	add	r9, r9, #5		@ \$5,%eax
++	str	r9, [$out,#240]		@ mov	%eax,240(%rdx)	# AES_KEY->rounds = nbits/32+5;
++
++	mov	$dir, #0		@ mov	\$0,%ecx
++	mov	r8, #0x30		@ mov	\$0x30,%r8d
++	bl	_vpaes_schedule_core
++	eor	r0, r0, r0
++
++	vldmia	sp!, {d8-d15}
++	ldmia	sp!, {r7-r11, pc}	@ return
++.size	GFp_vpaes_set_encrypt_key,.-GFp_vpaes_set_encrypt_key
++___
++}
++
++{
++my ($out, $inp) = map("r$_", (0..1));
++my ($s0F, $s63, $s63_raw, $mc_forward) = map("q$_", (9..12));
++
++$code .= <<___;
++
++@ Additional constants for converting to bsaes.
++.type	_vpaes_convert_consts,%object
++.align	4
++_vpaes_convert_consts:
++@ .Lk_opt_then_skew applies skew(opt(x)) XOR 0x63, where skew is the linear
++@ transform in the AES S-box. 0x63 is incorporated into the low half of the
++@ table. This was computed with the following script:
++@
++@   def u64s_to_u128(x, y):
++@       return x | (y << 64)
++@   def u128_to_u64s(w):
++@       return w & ((1<<64)-1), w >> 64
++@   def get_byte(w, i):
++@       return (w >> (i*8)) & 0xff
++@   def apply_table(table, b):
++@       lo = b & 0xf
++@       hi = b >> 4
++@       return get_byte(table[0], lo) ^ get_byte(table[1], hi)
++@   def opt(b):
++@       table = [
++@           u64s_to_u128(0xFF9F4929D6B66000, 0xF7974121DEBE6808),
++@           u64s_to_u128(0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0),
++@       ]
++@       return apply_table(table, b)
++@   def rot_byte(b, n):
++@       return 0xff & ((b << n) | (b >> (8-n)))
++@   def skew(x):
++@       return (x ^ rot_byte(x, 1) ^ rot_byte(x, 2) ^ rot_byte(x, 3) ^
++@               rot_byte(x, 4))
++@   table = [0, 0]
++@   for i in range(16):
++@       table[0] |= (skew(opt(i)) ^ 0x63) << (i*8)
++@       table[1] |= skew(opt(i<<4)) << (i*8)
++@   print("\t.quad\t0x%016x, 0x%016x" % u128_to_u64s(table[0]))
++@   print("\t.quad\t0x%016x, 0x%016x" % u128_to_u64s(table[1]))
++.Lk_opt_then_skew:
++	.quad	0x9cb8436798bc4763, 0x6440bb9f6044bf9b
++	.quad	0x1f30062936192f00, 0xb49bad829db284ab
++
++@ void GFp_vpaes_encrypt_key_to_bsaes(AES_KEY *bsaes, const AES_KEY *vpaes);
++.globl	GFp_vpaes_encrypt_key_to_bsaes
++.type	GFp_vpaes_encrypt_key_to_bsaes,%function
++.align	4
++GFp_vpaes_encrypt_key_to_bsaes:
++	stmdb	sp!, {r11, lr}
++
++	@ See _vpaes_schedule_core for the key schedule logic. In particular,
++	@ _vpaes_schedule_transform(.Lk_ipt) (section 2.2 of the paper),
++	@ _vpaes_schedule_mangle (section 4.3), and .Lschedule_mangle_last
++	@ contain the transformations not in the bsaes representation. This
++	@ function inverts those transforms.
++	@
++	@ Note also that bsaes-armv7.pl expects aes-armv4.pl's key
++	@ representation, which does not match the other aes_nohw_*
++	@ implementations. The ARM aes_nohw_* stores each 32-bit word
++	@ byteswapped, as a convenience for (unsupported) big-endian ARM, at the
++	@ cost of extra REV and VREV32 operations in little-endian ARM.
++
++	vmov.i8	$s0F, #0x0f		@ Required by _vpaes_schedule_transform
++	adr	r2, .Lk_mc_forward	@ Must be aligned to 8 mod 16.
++	add	r3, r2, 0x90		@ .Lk_sr+0x10-.Lk_mc_forward = 0x90 (Apple's toolchain doesn't support the expression)
++
++	vld1.64	{$mc_forward}, [r2]
++	vmov.i8	$s63, #0x5b		@ .Lk_s63 from vpaes-x86_64
++	adr	r11, .Lk_opt		@ Must be aligned to 8 mod 16.
++	vmov.i8	$s63_raw, #0x63		@ .LK_s63 without .Lk_ipt applied
++
++	@ vpaes stores one fewer round count than bsaes, but the number of keys
++	@ is the same.
++	ldr	r2, [$inp,#240]
++	add	r2, r2, #1
++	str	r2, [$out,#240]
++
++	@ The first key is transformed with _vpaes_schedule_transform(.Lk_ipt).
++	@ Invert this with .Lk_opt.
++	vld1.64	{q0}, [$inp]!
++	bl	_vpaes_schedule_transform
++	vrev32.8	q0, q0
++	vst1.64	{q0}, [$out]!
++
++	@ The middle keys have _vpaes_schedule_transform(.Lk_ipt) applied,
++	@ followed by _vpaes_schedule_mangle. _vpaes_schedule_mangle XORs 0x63,
++	@ multiplies by the circulant 0,1,1,1, then applies ShiftRows.
++.Loop_enc_key_to_bsaes:
++	vld1.64	{q0}, [$inp]!
++
++	@ Invert the ShiftRows step (see .Lschedule_mangle_both). Note we cycle
++	@ r3 in the opposite direction and start at .Lk_sr+0x10 instead of 0x30.
++	@ We use r3 rather than r8 to avoid a callee-saved register.
++	vld1.64	{q1}, [r3]
++	vtbl.8  q2#lo, {q0}, q1#lo
++	vtbl.8  q2#hi, {q0}, q1#hi
++	add	r3, r3, #16
++	and	r3, r3, #~(1<<6)
++	vmov	q0, q2
++
++	@ Handle the last key differently.
++	subs	r2, r2, #1
++	beq	.Loop_enc_key_to_bsaes_last
++
++	@ Multiply by the circulant. This is its own inverse.
++	vtbl.8	q1#lo, {q0}, $mc_forward#lo
++	vtbl.8	q1#hi, {q0}, $mc_forward#hi
++	vmov	q0, q1
++	vtbl.8	q2#lo, {q1}, $mc_forward#lo
++	vtbl.8	q2#hi, {q1}, $mc_forward#hi
++	veor	q0, q0, q2
++	vtbl.8	q1#lo, {q2}, $mc_forward#lo
++	vtbl.8	q1#hi, {q2}, $mc_forward#hi
++	veor	q0, q0, q1
++
++	@ XOR and finish.
++	veor	q0, q0, $s63
++	bl	_vpaes_schedule_transform
++	vrev32.8	q0, q0
++	vst1.64	{q0}, [$out]!
++	b	.Loop_enc_key_to_bsaes
++
++.Loop_enc_key_to_bsaes_last:
++	@ The final key does not have a basis transform (note
++	@ .Lschedule_mangle_last inverts the original transform). It only XORs
++	@ 0x63 and applies ShiftRows. The latter was already inverted in the
++	@ loop. Note that, because we act on the original representation, we use
++	@ $s63_raw, not $s63.
++	veor	q0, q0, $s63_raw
++	vrev32.8	q0, q0
++	vst1.64	{q0}, [$out]
++
++	@ Wipe registers which contained key material.
++	veor	q0, q0, q0
++	veor	q1, q1, q1
++	veor	q2, q2, q2
++
++	ldmia	sp!, {r11, pc}	@ return
++.size	GFp_vpaes_encrypt_key_to_bsaes,.-GFp_vpaes_encrypt_key_to_bsaes
++___
++}
++
++{
++# Register-passed parameters.
++my ($inp, $out, $len, $key) = map("r$_", 0..3);
++# Temporaries. _vpaes_encrypt_core already uses r8..r11, so overlap $ivec and
++# $tmp. $ctr is r7 because it must be preserved across calls.
++my ($ctr, $ivec, $tmp) = map("r$_", 7..9);
++
++# void vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out, size_t len,
++#                                 const AES_KEY *key, const uint8_t ivec[16]);
++$code .= <<___;
++.globl	GFp_vpaes_ctr32_encrypt_blocks
++.type	GFp_vpaes_ctr32_encrypt_blocks,%function
++.align	4
++GFp_vpaes_ctr32_encrypt_blocks:
++	mov	ip, sp
++	stmdb	sp!, {r7-r11, lr}
++	@ This function uses q4-q7 (d8-d15), which are callee-saved.
++	vstmdb	sp!, {d8-d15}
++
++	cmp	$len, #0
++	@ $ivec is passed on the stack.
++	ldr	$ivec, [ip]
++	beq	.Lctr32_done
++
++	@ _vpaes_encrypt_core expects the key in r2, so swap $len and $key.
++	mov	$tmp, $key
++	mov	$key, $len
++	mov	$len, $tmp
++___
++my ($len, $key) = ($key, $len);
++$code .= <<___;
++
++	@ Load the IV and counter portion.
++	ldr	$ctr, [$ivec, #12]
++	vld1.8	{q7}, [$ivec]
++
++	bl	_vpaes_preheat
++	rev	$ctr, $ctr		@ The counter is big-endian.
++
++.Lctr32_loop:
++	vmov	q0, q7
++	vld1.8	{q6}, [$inp]!		@ Load input ahead of time
++	bl	_vpaes_encrypt_core
++	veor	q0, q0, q6		@ XOR input and result
++	vst1.8	{q0}, [$out]!
++	subs	$len, $len, #1
++	@ Update the counter.
++	add	$ctr, $ctr, #1
++	rev	$tmp, $ctr
++	vmov.32	q7#hi[1], $tmp
++	bne	.Lctr32_loop
++
++.Lctr32_done:
++	vldmia	sp!, {d8-d15}
++	ldmia	sp!, {r7-r11, pc}	@ return
++.size	GFp_vpaes_ctr32_encrypt_blocks,.-GFp_vpaes_ctr32_encrypt_blocks
++___
++}
++
++foreach (split("\n",$code)) {
++	s/\bq([0-9]+)#(lo|hi)/sprintf "d%d",2*$1+($2 eq "hi")/geo;
++	print $_,"\n";
++}
++
++close STDOUT;
+diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv8.pl b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
+new file mode 100755
+index 0000000..b31bbb8
+--- /dev/null
++++ b/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
+@@ -0,0 +1,837 @@
++#! /usr/bin/env perl
++# Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
++#
++# Licensed under the OpenSSL license (the "License").  You may not use
++# this file except in compliance with the License.  You can obtain a copy
++# in the file LICENSE in the source distribution or at
++# https://www.openssl.org/source/license.html
++
++
++######################################################################
++## Constant-time SSSE3 AES core implementation.
++## version 0.1
++##
++## By Mike Hamburg (Stanford University), 2009
++## Public domain.
++##
++## For details see http://shiftleft.org/papers/vector_aes/ and
++## http://crypto.stanford.edu/vpaes/.
++##
++######################################################################
++# ARMv8 NEON adaptation by <appro@openssl.org>
++#
++# Reason for undertaken effort is that there is at least one popular
++# SoC based on Cortex-A53 that doesn't have crypto extensions.
++#
++#                   CBC enc     ECB enc/dec(*)   [bit-sliced enc/dec]
++# Cortex-A53        21.5        18.1/20.6        [17.5/19.8         ]
++# Cortex-A57        36.0(**)    20.4/24.9(**)    [14.4/16.6         ]
++# X-Gene            45.9(**)    45.8/57.7(**)    [33.1/37.6(**)     ]
++# Denver(***)       16.6(**)    15.1/17.8(**)    [8.80/9.93         ]
++# Apple A7(***)     22.7(**)    10.9/14.3        [8.45/10.0         ]
++# Mongoose(***)     26.3(**)    21.0/25.0(**)    [13.3/16.8         ]
++#
++# (*)	ECB denotes approximate result for parallelizable modes
++#	such as CBC decrypt, CTR, etc.;
++# (**)	these results are worse than scalar compiler-generated
++#	code, but it's constant-time and therefore preferred;
++# (***)	presented for reference/comparison purposes;
++
++$flavour = shift;
++while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {}
++
++$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
++( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or
++( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or
++die "can't locate arm-xlate.pl";
++
++open OUT,"| \"$^X\" $xlate $flavour $output";
++*STDOUT=*OUT;
++
++$code.=<<___;
++#include <GFp/arm_arch.h>
++
++.section	.rodata
++
++.type	_vpaes_consts,%object
++.align	7	// totally strategic alignment
++_vpaes_consts:
++.Lk_mc_forward:	// mc_forward
++	.quad	0x0407060500030201, 0x0C0F0E0D080B0A09
++	.quad	0x080B0A0904070605, 0x000302010C0F0E0D
++	.quad	0x0C0F0E0D080B0A09, 0x0407060500030201
++	.quad	0x000302010C0F0E0D, 0x080B0A0904070605
++.Lk_mc_backward:// mc_backward
++	.quad	0x0605040702010003, 0x0E0D0C0F0A09080B
++	.quad	0x020100030E0D0C0F, 0x0A09080B06050407
++	.quad	0x0E0D0C0F0A09080B, 0x0605040702010003
++	.quad	0x0A09080B06050407, 0x020100030E0D0C0F
++.Lk_sr:		// sr
++	.quad	0x0706050403020100, 0x0F0E0D0C0B0A0908
++	.quad	0x030E09040F0A0500, 0x0B06010C07020D08
++	.quad	0x0F060D040B020900, 0x070E050C030A0108
++	.quad	0x0B0E0104070A0D00, 0x0306090C0F020508
++
++//
++// "Hot" constants
++//
++.Lk_inv:	// inv, inva
++	.quad	0x0E05060F0D080180, 0x040703090A0B0C02
++	.quad	0x01040A060F0B0780, 0x030D0E0C02050809
++.Lk_ipt:	// input transform (lo, hi)
++	.quad	0xC2B2E8985A2A7000, 0xCABAE09052227808
++	.quad	0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
++.Lk_sbo:	// sbou, sbot
++	.quad	0xD0D26D176FBDC700, 0x15AABF7AC502A878
++	.quad	0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
++.Lk_sb1:	// sb1u, sb1t
++	.quad	0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
++	.quad	0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
++.Lk_sb2:	// sb2u, sb2t
++	.quad	0x69EB88400AE12900, 0xC2A163C8AB82234A
++	.quad	0xE27A93C60B712400, 0x5EB7E955BC982FCD
++
++//
++//  Key schedule constants
++//
++.Lk_dksd:	// decryption key schedule: invskew x*D
++	.quad	0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
++	.quad	0x41C277F4B5368300, 0x5FDC69EAAB289D1E
++.Lk_dksb:	// decryption key schedule: invskew x*B
++	.quad	0x9A4FCA1F8550D500, 0x03D653861CC94C99
++	.quad	0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
++.Lk_dkse:	// decryption key schedule: invskew x*E + 0x63
++	.quad	0xD5031CCA1FC9D600, 0x53859A4C994F5086
++	.quad	0xA23196054FDC7BE8, 0xCD5EF96A20B31487
++.Lk_dks9:	// decryption key schedule: invskew x*9
++	.quad	0xB6116FC87ED9A700, 0x4AED933482255BFC
++	.quad	0x4576516227143300, 0x8BB89FACE9DAFDCE
++
++.Lk_rcon:	// rcon
++	.quad	0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
++
++.Lk_opt:	// output transform
++	.quad	0xFF9F4929D6B66000, 0xF7974121DEBE6808
++	.quad	0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
++.Lk_deskew:	// deskew tables: inverts the sbox's "skew"
++	.quad	0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
++	.quad	0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
++
++.asciz  "Vector Permutation AES for ARMv8, Mike Hamburg (Stanford University)"
++.size	_vpaes_consts,.-_vpaes_consts
++.align	6
++
++.text
++___
++
++{
++my ($inp,$out,$key) = map("x$_",(0..2));
++
++my ($invlo,$invhi,$iptlo,$ipthi,$sbou,$sbot) = map("v$_.16b",(18..23));
++my ($sb1u,$sb1t,$sb2u,$sb2t) = map("v$_.16b",(24..27));
++my ($sb9u,$sb9t,$sbdu,$sbdt,$sbbu,$sbbt,$sbeu,$sbet)=map("v$_.16b",(24..31));
++
++$code.=<<___;
++##
++##  _aes_preheat
++##
++##  Fills register %r10 -> .aes_consts (so you can -fPIC)
++##  and %xmm9-%xmm15 as specified below.
++##
++.type	_vpaes_encrypt_preheat,%function
++.align	4
++_vpaes_encrypt_preheat:
++	adrp	x10, :pg_hi21:.Lk_inv
++	add	x10, x10, :lo12:.Lk_inv
++	movi	v17.16b, #0x0f
++	ld1	{v18.2d-v19.2d}, [x10],#32	// .Lk_inv
++	ld1	{v20.2d-v23.2d}, [x10],#64	// .Lk_ipt, .Lk_sbo
++	ld1	{v24.2d-v27.2d}, [x10]		// .Lk_sb1, .Lk_sb2
++	ret
++.size	_vpaes_encrypt_preheat,.-_vpaes_encrypt_preheat
++
++##
++##  _aes_encrypt_core
++##
++##  AES-encrypt %xmm0.
++##
++##  Inputs:
++##     %xmm0 = input
++##     %xmm9-%xmm15 as in _vpaes_preheat
++##    (%rdx) = scheduled keys
++##
++##  Output in %xmm0
++##  Clobbers  %xmm1-%xmm5, %r9, %r10, %r11, %rax
++##  Preserves %xmm6 - %xmm8 so you get some local vectors
++##
++##
++.type	_vpaes_encrypt_core,%function
++.align 4
++_vpaes_encrypt_core:
++	mov	x9, $key
++	ldr	w8, [$key,#240]			// pull rounds
++	adrp	x11, :pg_hi21:.Lk_mc_forward+16
++	add	x11, x11, :lo12:.Lk_mc_forward+16
++						// vmovdqa	.Lk_ipt(%rip),	%xmm2	# iptlo
++	ld1	{v16.2d}, [x9], #16		// vmovdqu	(%r9),	%xmm5		# round0 key
++	and	v1.16b, v7.16b, v17.16b		// vpand	%xmm9,	%xmm0,	%xmm1
++	ushr	v0.16b, v7.16b, #4		// vpsrlb	\$4,	%xmm0,	%xmm0
++	tbl	v1.16b, {$iptlo}, v1.16b	// vpshufb	%xmm1,	%xmm2,	%xmm1
++						// vmovdqa	.Lk_ipt+16(%rip), %xmm3	# ipthi
++	tbl	v2.16b, {$ipthi}, v0.16b	// vpshufb	%xmm0,	%xmm3,	%xmm2
++	eor	v0.16b, v1.16b, v16.16b		// vpxor	%xmm5,	%xmm1,	%xmm0
++	eor	v0.16b, v0.16b, v2.16b		// vpxor	%xmm2,	%xmm0,	%xmm0
++	b	.Lenc_entry
++
++.align 4
++.Lenc_loop:
++	// middle of middle round
++	add	x10, x11, #0x40
++	tbl	v4.16b, {$sb1t}, v2.16b		// vpshufb	%xmm2,	%xmm13,	%xmm4	# 4 = sb1u
++	ld1	{v1.2d}, [x11], #16		// vmovdqa	-0x40(%r11,%r10), %xmm1	# .Lk_mc_forward[]
++	tbl	v0.16b, {$sb1u}, v3.16b		// vpshufb	%xmm3,	%xmm12,	%xmm0	# 0 = sb1t
++	eor	v4.16b, v4.16b, v16.16b		// vpxor	%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	tbl	v5.16b,	{$sb2t}, v2.16b		// vpshufb	%xmm2,	%xmm15,	%xmm5	# 4 = sb2u
++	eor	v0.16b, v0.16b, v4.16b		// vpxor	%xmm4,	%xmm0,	%xmm0	# 0 = A
++	tbl	v2.16b, {$sb2u}, v3.16b		// vpshufb	%xmm3,	%xmm14,	%xmm2	# 2 = sb2t
++	ld1	{v4.2d}, [x10]			// vmovdqa	(%r11,%r10), %xmm4	# .Lk_mc_backward[]
++	tbl	v3.16b, {v0.16b}, v1.16b	// vpshufb	%xmm1,	%xmm0,	%xmm3	# 0 = B
++	eor	v2.16b, v2.16b, v5.16b		// vpxor	%xmm5,	%xmm2,	%xmm2	# 2 = 2A
++	tbl	v0.16b, {v0.16b}, v4.16b	// vpshufb	%xmm4,	%xmm0,	%xmm0	# 3 = D
++	eor	v3.16b, v3.16b, v2.16b		// vpxor	%xmm2,	%xmm3,	%xmm3	# 0 = 2A+B
++	tbl	v4.16b, {v3.16b}, v1.16b	// vpshufb	%xmm1,	%xmm3,	%xmm4	# 0 = 2B+C
++	eor	v0.16b, v0.16b, v3.16b		// vpxor	%xmm3,	%xmm0,	%xmm0	# 3 = 2A+B+D
++	and	x11, x11, #~(1<<6)		// and		\$0x30,	%r11		# ... mod 4
++	eor	v0.16b, v0.16b, v4.16b		// vpxor	%xmm4,	%xmm0, %xmm0	# 0 = 2A+3B+C+D
++	sub	w8, w8, #1			// nr--
++
++.Lenc_entry:
++	// top of round
++	and	v1.16b, v0.16b, v17.16b		// vpand	%xmm0,	%xmm9,	%xmm1   # 0 = k
++	ushr	v0.16b, v0.16b, #4		// vpsrlb	\$4,	%xmm0,	%xmm0	# 1 = i
++	tbl	v5.16b, {$invhi}, v1.16b	// vpshufb	%xmm1,	%xmm11,	%xmm5	# 2 = a/k
++	eor	v1.16b, v1.16b, v0.16b		// vpxor	%xmm0,	%xmm1,	%xmm1	# 0 = j
++	tbl	v3.16b, {$invlo}, v0.16b	// vpshufb	%xmm0, 	%xmm10,	%xmm3  	# 3 = 1/i
++	tbl	v4.16b, {$invlo}, v1.16b	// vpshufb	%xmm1, 	%xmm10,	%xmm4  	# 4 = 1/j
++	eor	v3.16b, v3.16b, v5.16b		// vpxor	%xmm5,	%xmm3,	%xmm3	# 3 = iak = 1/i + a/k
++	eor	v4.16b, v4.16b, v5.16b		// vpxor	%xmm5,	%xmm4,	%xmm4  	# 4 = jak = 1/j + a/k
++	tbl	v2.16b, {$invlo}, v3.16b	// vpshufb	%xmm3,	%xmm10,	%xmm2  	# 2 = 1/iak
++	tbl	v3.16b, {$invlo}, v4.16b	// vpshufb	%xmm4,	%xmm10,	%xmm3	# 3 = 1/jak
++	eor	v2.16b, v2.16b, v1.16b		// vpxor	%xmm1,	%xmm2,	%xmm2  	# 2 = io
++	eor	v3.16b, v3.16b, v0.16b		// vpxor	%xmm0,	%xmm3,	%xmm3	# 3 = jo
++	ld1	{v16.2d}, [x9],#16		// vmovdqu	(%r9),	%xmm5
++	cbnz	w8, .Lenc_loop
++
++	// middle of last round
++	add	x10, x11, #0x80
++						// vmovdqa	-0x60(%r10), %xmm4	# 3 : sbou	.Lk_sbo
++						// vmovdqa	-0x50(%r10), %xmm0	# 0 : sbot	.Lk_sbo+16
++	tbl	v4.16b, {$sbou}, v2.16b		// vpshufb	%xmm2,	%xmm4,	%xmm4	# 4 = sbou
++	ld1	{v1.2d}, [x10]			// vmovdqa	0x40(%r11,%r10), %xmm1	# .Lk_sr[]
++	tbl	v0.16b, {$sbot}, v3.16b		// vpshufb	%xmm3,	%xmm0,	%xmm0	# 0 = sb1t
++	eor	v4.16b, v4.16b, v16.16b		// vpxor	%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	eor	v0.16b, v0.16b, v4.16b		// vpxor	%xmm4,	%xmm0,	%xmm0	# 0 = A
++	tbl	v0.16b, {v0.16b}, v1.16b	// vpshufb	%xmm1,	%xmm0,	%xmm0
++	ret
++.size	_vpaes_encrypt_core,.-_vpaes_encrypt_core
++
++.globl	GFp_vpaes_encrypt
++.type	GFp_vpaes_encrypt,%function
++.align	4
++GFp_vpaes_encrypt:
++	AARCH64_SIGN_LINK_REGISTER
++	stp	x29,x30,[sp,#-16]!
++	add	x29,sp,#0
++
++	ld1	{v7.16b}, [$inp]
++	bl	_vpaes_encrypt_preheat
++	bl	_vpaes_encrypt_core
++	st1	{v0.16b}, [$out]
++
++	ldp	x29,x30,[sp],#16
++	AARCH64_VALIDATE_LINK_REGISTER
++	ret
++.size	GFp_vpaes_encrypt,.-GFp_vpaes_encrypt
++
++.type	_vpaes_encrypt_2x,%function
++.align 4
++_vpaes_encrypt_2x:
++	mov	x9, $key
++	ldr	w8, [$key,#240]			// pull rounds
++	adrp	x11, :pg_hi21:.Lk_mc_forward+16
++	add	x11, x11, :lo12:.Lk_mc_forward+16
++						// vmovdqa	.Lk_ipt(%rip),	%xmm2	# iptlo
++	ld1	{v16.2d}, [x9], #16		// vmovdqu	(%r9),	%xmm5		# round0 key
++	and	v1.16b,  v14.16b,  v17.16b	// vpand	%xmm9,	%xmm0,	%xmm1
++	ushr	v0.16b,  v14.16b,  #4		// vpsrlb	\$4,	%xmm0,	%xmm0
++	 and	v9.16b,  v15.16b,  v17.16b
++	 ushr	v8.16b,  v15.16b,  #4
++	tbl	v1.16b,  {$iptlo}, v1.16b	// vpshufb	%xmm1,	%xmm2,	%xmm1
++	 tbl	v9.16b,  {$iptlo}, v9.16b
++						// vmovdqa	.Lk_ipt+16(%rip), %xmm3	# ipthi
++	tbl	v2.16b,  {$ipthi}, v0.16b	// vpshufb	%xmm0,	%xmm3,	%xmm2
++	 tbl	v10.16b, {$ipthi}, v8.16b
++	eor	v0.16b,  v1.16b,   v16.16b	// vpxor	%xmm5,	%xmm1,	%xmm0
++	 eor	v8.16b,  v9.16b,   v16.16b
++	eor	v0.16b,  v0.16b,   v2.16b	// vpxor	%xmm2,	%xmm0,	%xmm0
++	 eor	v8.16b,  v8.16b,   v10.16b
++	b	.Lenc_2x_entry
++
++.align 4
++.Lenc_2x_loop:
++	// middle of middle round
++	add	x10, x11, #0x40
++	tbl	v4.16b,  {$sb1t}, v2.16b	// vpshufb	%xmm2,	%xmm13,	%xmm4	# 4 = sb1u
++	 tbl	v12.16b, {$sb1t}, v10.16b
++	ld1	{v1.2d}, [x11], #16		// vmovdqa	-0x40(%r11,%r10), %xmm1	# .Lk_mc_forward[]
++	tbl	v0.16b,  {$sb1u}, v3.16b	// vpshufb	%xmm3,	%xmm12,	%xmm0	# 0 = sb1t
++	 tbl	v8.16b,  {$sb1u}, v11.16b
++	eor	v4.16b,  v4.16b,  v16.16b	// vpxor	%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	 eor	v12.16b, v12.16b, v16.16b
++	tbl	v5.16b,	 {$sb2t}, v2.16b	// vpshufb	%xmm2,	%xmm15,	%xmm5	# 4 = sb2u
++	 tbl	v13.16b, {$sb2t}, v10.16b
++	eor	v0.16b,  v0.16b,  v4.16b	// vpxor	%xmm4,	%xmm0,	%xmm0	# 0 = A
++	 eor	v8.16b,  v8.16b,  v12.16b
++	tbl	v2.16b,  {$sb2u}, v3.16b	// vpshufb	%xmm3,	%xmm14,	%xmm2	# 2 = sb2t
++	 tbl	v10.16b, {$sb2u}, v11.16b
++	ld1	{v4.2d}, [x10]			// vmovdqa	(%r11,%r10), %xmm4	# .Lk_mc_backward[]
++	tbl	v3.16b,  {v0.16b}, v1.16b	// vpshufb	%xmm1,	%xmm0,	%xmm3	# 0 = B
++	 tbl	v11.16b, {v8.16b}, v1.16b
++	eor	v2.16b,  v2.16b,  v5.16b	// vpxor	%xmm5,	%xmm2,	%xmm2	# 2 = 2A
++	 eor	v10.16b, v10.16b, v13.16b
++	tbl	v0.16b,  {v0.16b}, v4.16b	// vpshufb	%xmm4,	%xmm0,	%xmm0	# 3 = D
++	 tbl	v8.16b,  {v8.16b}, v4.16b
++	eor	v3.16b,  v3.16b,  v2.16b	// vpxor	%xmm2,	%xmm3,	%xmm3	# 0 = 2A+B
++	 eor	v11.16b, v11.16b, v10.16b
++	tbl	v4.16b,  {v3.16b}, v1.16b	// vpshufb	%xmm1,	%xmm3,	%xmm4	# 0 = 2B+C
++	 tbl	v12.16b, {v11.16b},v1.16b
++	eor	v0.16b,  v0.16b,  v3.16b	// vpxor	%xmm3,	%xmm0,	%xmm0	# 3 = 2A+B+D
++	 eor	v8.16b,  v8.16b,  v11.16b
++	and	x11, x11, #~(1<<6)		// and		\$0x30,	%r11		# ... mod 4
++	eor	v0.16b,  v0.16b,  v4.16b	// vpxor	%xmm4,	%xmm0, %xmm0	# 0 = 2A+3B+C+D
++	 eor	v8.16b,  v8.16b,  v12.16b
++	sub	w8, w8, #1			// nr--
++
++.Lenc_2x_entry:
++	// top of round
++	and	v1.16b,  v0.16b, v17.16b	// vpand	%xmm0,	%xmm9,	%xmm1   # 0 = k
++	ushr	v0.16b,  v0.16b, #4		// vpsrlb	\$4,	%xmm0,	%xmm0	# 1 = i
++	 and	v9.16b,  v8.16b, v17.16b
++	 ushr	v8.16b,  v8.16b, #4
++	tbl	v5.16b,  {$invhi},v1.16b	// vpshufb	%xmm1,	%xmm11,	%xmm5	# 2 = a/k
++	 tbl	v13.16b, {$invhi},v9.16b
++	eor	v1.16b,  v1.16b,  v0.16b	// vpxor	%xmm0,	%xmm1,	%xmm1	# 0 = j
++	 eor	v9.16b,  v9.16b,  v8.16b
++	tbl	v3.16b,  {$invlo},v0.16b	// vpshufb	%xmm0, 	%xmm10,	%xmm3  	# 3 = 1/i
++	 tbl	v11.16b, {$invlo},v8.16b
++	tbl	v4.16b,  {$invlo},v1.16b	// vpshufb	%xmm1, 	%xmm10,	%xmm4  	# 4 = 1/j
++	 tbl	v12.16b, {$invlo},v9.16b
++	eor	v3.16b,  v3.16b,  v5.16b	// vpxor	%xmm5,	%xmm3,	%xmm3	# 3 = iak = 1/i + a/k
++	 eor	v11.16b, v11.16b, v13.16b
++	eor	v4.16b,  v4.16b,  v5.16b	// vpxor	%xmm5,	%xmm4,	%xmm4  	# 4 = jak = 1/j + a/k
++	 eor	v12.16b, v12.16b, v13.16b
++	tbl	v2.16b,  {$invlo},v3.16b	// vpshufb	%xmm3,	%xmm10,	%xmm2  	# 2 = 1/iak
++	 tbl	v10.16b, {$invlo},v11.16b
++	tbl	v3.16b,  {$invlo},v4.16b	// vpshufb	%xmm4,	%xmm10,	%xmm3	# 3 = 1/jak
++	 tbl	v11.16b, {$invlo},v12.16b
++	eor	v2.16b,  v2.16b,  v1.16b	// vpxor	%xmm1,	%xmm2,	%xmm2  	# 2 = io
++	 eor	v10.16b, v10.16b, v9.16b
++	eor	v3.16b,  v3.16b,  v0.16b	// vpxor	%xmm0,	%xmm3,	%xmm3	# 3 = jo
++	 eor	v11.16b, v11.16b, v8.16b
++	ld1	{v16.2d}, [x9],#16		// vmovdqu	(%r9),	%xmm5
++	cbnz	w8, .Lenc_2x_loop
++
++	// middle of last round
++	add	x10, x11, #0x80
++						// vmovdqa	-0x60(%r10), %xmm4	# 3 : sbou	.Lk_sbo
++						// vmovdqa	-0x50(%r10), %xmm0	# 0 : sbot	.Lk_sbo+16
++	tbl	v4.16b,  {$sbou}, v2.16b	// vpshufb	%xmm2,	%xmm4,	%xmm4	# 4 = sbou
++	 tbl	v12.16b, {$sbou}, v10.16b
++	ld1	{v1.2d}, [x10]			// vmovdqa	0x40(%r11,%r10), %xmm1	# .Lk_sr[]
++	tbl	v0.16b,  {$sbot}, v3.16b	// vpshufb	%xmm3,	%xmm0,	%xmm0	# 0 = sb1t
++	 tbl	v8.16b,  {$sbot}, v11.16b
++	eor	v4.16b,  v4.16b,  v16.16b	// vpxor	%xmm5,	%xmm4,	%xmm4	# 4 = sb1u + k
++	 eor	v12.16b, v12.16b, v16.16b
++	eor	v0.16b,  v0.16b,  v4.16b	// vpxor	%xmm4,	%xmm0,	%xmm0	# 0 = A
++	 eor	v8.16b,  v8.16b,  v12.16b
++	tbl	v0.16b,  {v0.16b},v1.16b	// vpshufb	%xmm1,	%xmm0,	%xmm0
++	 tbl	v1.16b,  {v8.16b},v1.16b
++	ret
++.size	_vpaes_encrypt_2x,.-_vpaes_encrypt_2x
++___
++}
++{
++my ($inp,$bits,$out,$dir)=("x0","w1","x2","w3");
++my ($invlo,$invhi,$iptlo,$ipthi,$rcon) = map("v$_.16b",(18..21,8));
++
++$code.=<<___;
++########################################################
++##                                                    ##
++##                  AES key schedule                  ##
++##                                                    ##
++########################################################
++.type	_vpaes_key_preheat,%function
++.align	4
++_vpaes_key_preheat:
++	adrp	x10, :pg_hi21:.Lk_inv
++	add	x10, x10, :lo12:.Lk_inv
++	movi	v16.16b, #0x5b			// .Lk_s63
++	adrp	x11, :pg_hi21:.Lk_sb1
++	add	x11, x11, :lo12:.Lk_sb1
++	movi	v17.16b, #0x0f			// .Lk_s0F
++	ld1	{v18.2d-v21.2d}, [x10]		// .Lk_inv, .Lk_ipt
++	adrp	x10, :pg_hi21:.Lk_dksd
++	add	x10, x10, :lo12:.Lk_dksd
++	ld1	{v22.2d-v23.2d}, [x11]		// .Lk_sb1
++	adrp	x11, :pg_hi21:.Lk_mc_forward
++	add	x11, x11, :lo12:.Lk_mc_forward
++	ld1	{v24.2d-v27.2d}, [x10],#64	// .Lk_dksd, .Lk_dksb
++	ld1	{v28.2d-v31.2d}, [x10],#64	// .Lk_dkse, .Lk_dks9
++	ld1	{v8.2d}, [x10]			// .Lk_rcon
++	ld1	{v9.2d}, [x11]			// .Lk_mc_forward[0]
++	ret
++.size	_vpaes_key_preheat,.-_vpaes_key_preheat
++
++.type	_vpaes_schedule_core,%function
++.align	4
++_vpaes_schedule_core:
++	AARCH64_SIGN_LINK_REGISTER
++	stp	x29, x30, [sp,#-16]!
++	add	x29,sp,#0
++
++	bl	_vpaes_key_preheat		// load the tables
++
++	ld1	{v0.16b}, [$inp],#16		// vmovdqu	(%rdi),	%xmm0		# load key (unaligned)
++
++	// input transform
++	mov	v3.16b, v0.16b			// vmovdqa	%xmm0,	%xmm3
++	bl	_vpaes_schedule_transform
++	mov	v7.16b, v0.16b			// vmovdqa	%xmm0,	%xmm7
++
++	adrp	x10, :pg_hi21:.Lk_sr		// lea	.Lk_sr(%rip),%r10
++	add	x10, x10, :lo12:.Lk_sr
++
++	add	x8, x8, x10
++
++	// encrypting, output zeroth round key after transform
++	st1	{v0.2d}, [$out]			// vmovdqu	%xmm0,	(%rdx)
++
++	cmp	$bits, #192			// cmp	\$192,	%esi
++	b.hi	.Lschedule_256
++	b.eq	.Lschedule_192
++	// 128: fall though
++
++##
++##  .schedule_128
++##
++##  128-bit specific part of key schedule.
++##
++##  This schedule is really simple, because all its parts
++##  are accomplished by the subroutines.
++##
++.Lschedule_128:
++	mov	$inp, #10			// mov	\$10, %esi
++
++.Loop_schedule_128:
++	sub	$inp, $inp, #1			// dec	%esi
++	bl 	_vpaes_schedule_round
++	cbz 	$inp, .Lschedule_mangle_last
++	bl	_vpaes_schedule_mangle		// write output
++	b 	.Loop_schedule_128
++
++##
++##  .aes_schedule_192
++##
++##  192-bit specific part of key schedule.
++##
++##  The main body of this schedule is the same as the 128-bit
++##  schedule, but with more smearing.  The long, high side is
++##  stored in %xmm7 as before, and the short, low side is in
++##  the high bits of %xmm6.
++##
++##  This schedule is somewhat nastier, however, because each
++##  round produces 192 bits of key material, or 1.5 round keys.
++##  Therefore, on each cycle we do 2 rounds and produce 3 round
++##  keys.
++##
++.align	4
++.Lschedule_192:
++	sub	$inp, $inp, #8
++	ld1	{v0.16b}, [$inp]		// vmovdqu	8(%rdi),%xmm0		# load key part 2 (very unaligned)
++	bl	_vpaes_schedule_transform	// input transform
++	mov	v6.16b, v0.16b			// vmovdqa	%xmm0,	%xmm6		# save short part
++	eor	v4.16b, v4.16b, v4.16b		// vpxor	%xmm4,	%xmm4, %xmm4	# clear 4
++	ins	v6.d[0], v4.d[0]		// vmovhlps	%xmm4,	%xmm6,	%xmm6		# clobber low side with zeros
++	mov	$inp, #4			// mov	\$4,	%esi
++
++.Loop_schedule_192:
++	sub	$inp, $inp, #1			// dec	%esi
++	bl	_vpaes_schedule_round
++	ext	v0.16b, v6.16b, v0.16b, #8	// vpalignr	\$8,%xmm6,%xmm0,%xmm0
++	bl	_vpaes_schedule_mangle		// save key n
++	bl	_vpaes_schedule_192_smear
++	bl	_vpaes_schedule_mangle		// save key n+1
++	bl	_vpaes_schedule_round
++	cbz 	$inp, .Lschedule_mangle_last
++	bl	_vpaes_schedule_mangle		// save key n+2
++	bl	_vpaes_schedule_192_smear
++	b	.Loop_schedule_192
++
++##
++##  .aes_schedule_256
++##
++##  256-bit specific part of key schedule.
++##
++##  The structure here is very similar to the 128-bit
++##  schedule, but with an additional "low side" in
++##  %xmm6.  The low side's rounds are the same as the
++##  high side's, except no rcon and no rotation.
++##
++.align	4
++.Lschedule_256:
++	ld1	{v0.16b}, [$inp]		// vmovdqu	16(%rdi),%xmm0		# load key part 2 (unaligned)
++	bl	_vpaes_schedule_transform	// input transform
++	mov	$inp, #7			// mov	\$7, %esi
++
++.Loop_schedule_256:
++	sub	$inp, $inp, #1			// dec	%esi
++	bl	_vpaes_schedule_mangle		// output low result
++	mov	v6.16b, v0.16b			// vmovdqa	%xmm0,	%xmm6		# save cur_lo in xmm6
++
++	// high round
++	bl	_vpaes_schedule_round
++	cbz 	$inp, .Lschedule_mangle_last
++	bl	_vpaes_schedule_mangle
++
++	// low round. swap xmm7 and xmm6
++	dup	v0.4s, v0.s[3]			// vpshufd	\$0xFF,	%xmm0,	%xmm0
++	movi	v4.16b, #0
++	mov	v5.16b, v7.16b			// vmovdqa	%xmm7,	%xmm5
++	mov	v7.16b, v6.16b			// vmovdqa	%xmm6,	%xmm7
++	bl	_vpaes_schedule_low_round
++	mov	v7.16b, v5.16b			// vmovdqa	%xmm5,	%xmm7
++
++	b	.Loop_schedule_256
++
++##
++##  .aes_schedule_mangle_last
++##
++##  Mangler for last round of key schedule
++##  Mangles %xmm0
++##    when encrypting, outputs out(%xmm0) ^ 63
++##    when decrypting, outputs unskew(%xmm0)
++##
++##  Always called right before return... jumps to cleanup and exits
++##
++.align	4
++.Lschedule_mangle_last:
++	// schedule last round key from xmm0
++	adrp	x11, :pg_hi21:.Lk_deskew	// lea	.Lk_deskew(%rip),%r11	# prepare to deskew
++	add	x11, x11, :lo12:.Lk_deskew
++
++	cbnz	$dir, .Lschedule_mangle_last_dec
++
++	// encrypting
++	ld1	{v1.2d}, [x8]			// vmovdqa	(%r8,%r10),%xmm1
++	adrp	x11, :pg_hi21:.Lk_opt		// lea	.Lk_opt(%rip),	%r11		# prepare to output transform
++	add	x11, x11, :lo12:.Lk_opt
++	add	$out, $out, #32			// add	\$32,	%rdx
++	tbl	v0.16b, {v0.16b}, v1.16b	// vpshufb	%xmm1,	%xmm0,	%xmm0		# output permute
++
++.Lschedule_mangle_last_dec:
++	ld1	{v20.2d-v21.2d}, [x11]		// reload constants
++	sub	$out, $out, #16			// add	\$-16,	%rdx
++	eor	v0.16b, v0.16b, v16.16b		// vpxor	.Lk_s63(%rip),	%xmm0,	%xmm0
++	bl	_vpaes_schedule_transform	// output transform
++	st1	{v0.2d}, [$out]			// vmovdqu	%xmm0,	(%rdx)		# save last key
++
++	// cleanup
++	eor	v0.16b, v0.16b, v0.16b		// vpxor	%xmm0,	%xmm0,	%xmm0
++	eor	v1.16b, v1.16b, v1.16b		// vpxor	%xmm1,	%xmm1,	%xmm1
++	eor	v2.16b, v2.16b, v2.16b		// vpxor	%xmm2,	%xmm2,	%xmm2
++	eor	v3.16b, v3.16b, v3.16b		// vpxor	%xmm3,	%xmm3,	%xmm3
++	eor	v4.16b, v4.16b, v4.16b		// vpxor	%xmm4,	%xmm4,	%xmm4
++	eor	v5.16b, v5.16b, v5.16b		// vpxor	%xmm5,	%xmm5,	%xmm5
++	eor	v6.16b, v6.16b, v6.16b		// vpxor	%xmm6,	%xmm6,	%xmm6
++	eor	v7.16b, v7.16b, v7.16b		// vpxor	%xmm7,	%xmm7,	%xmm7
++	ldp	x29, x30, [sp],#16
++	AARCH64_VALIDATE_LINK_REGISTER
++	ret
++.size	_vpaes_schedule_core,.-_vpaes_schedule_core
++
++##
++##  .aes_schedule_192_smear
++##
++##  Smear the short, low side in the 192-bit key schedule.
++##
++##  Inputs:
++##    %xmm7: high side, b  a  x  y
++##    %xmm6:  low side, d  c  0  0
++##    %xmm13: 0
++##
++##  Outputs:
++##    %xmm6: b+c+d  b+c  0  0
++##    %xmm0: b+c+d  b+c  b  a
++##
++.type	_vpaes_schedule_192_smear,%function
++.align	4
++_vpaes_schedule_192_smear:
++	movi	v1.16b, #0
++	dup	v0.4s, v7.s[3]
++	ins	v1.s[3], v6.s[2]	// vpshufd	\$0x80,	%xmm6,	%xmm1	# d c 0 0 -> c 0 0 0
++	ins	v0.s[0], v7.s[2]	// vpshufd	\$0xFE,	%xmm7,	%xmm0	# b a _ _ -> b b b a
++	eor	v6.16b, v6.16b, v1.16b	// vpxor	%xmm1,	%xmm6,	%xmm6	# -> c+d c 0 0
++	eor	v1.16b, v1.16b, v1.16b	// vpxor	%xmm1,	%xmm1,	%xmm1
++	eor	v6.16b, v6.16b, v0.16b	// vpxor	%xmm0,	%xmm6,	%xmm6	# -> b+c+d b+c b a
++	mov	v0.16b, v6.16b		// vmovdqa	%xmm6,	%xmm0
++	ins	v6.d[0], v1.d[0]	// vmovhlps	%xmm1,	%xmm6,	%xmm6	# clobber low side with zeros
++	ret
++.size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
++
++##
++##  .aes_schedule_round
++##
++##  Runs one main round of the key schedule on %xmm0, %xmm7
++##
++##  Specifically, runs subbytes on the high dword of %xmm0
++##  then rotates it by one byte and xors into the low dword of
++##  %xmm7.
++##
++##  Adds rcon from low byte of %xmm8, then rotates %xmm8 for
++##  next rcon.
++##
++##  Smears the dwords of %xmm7 by xoring the low into the
++##  second low, result into third, result into highest.
++##
++##  Returns results in %xmm7 = %xmm0.
++##  Clobbers %xmm1-%xmm4, %r11.
++##
++.type	_vpaes_schedule_round,%function
++.align	4
++_vpaes_schedule_round:
++	// extract rcon from xmm8
++	movi	v4.16b, #0			// vpxor	%xmm4,	%xmm4,	%xmm4
++	ext	v1.16b, $rcon, v4.16b, #15	// vpalignr	\$15,	%xmm8,	%xmm4,	%xmm1
++	ext	$rcon, $rcon, $rcon, #15	// vpalignr	\$15,	%xmm8,	%xmm8,	%xmm8
++	eor	v7.16b, v7.16b, v1.16b		// vpxor	%xmm1,	%xmm7,	%xmm7
++
++	// rotate
++	dup	v0.4s, v0.s[3]			// vpshufd	\$0xFF,	%xmm0,	%xmm0
++	ext	v0.16b, v0.16b, v0.16b, #1	// vpalignr	\$1,	%xmm0,	%xmm0,	%xmm0
++
++	// fall through...
++
++	// low round: same as high round, but no rotation and no rcon.
++_vpaes_schedule_low_round:
++	// smear xmm7
++	ext	v1.16b, v4.16b, v7.16b, #12	// vpslldq	\$4,	%xmm7,	%xmm1
++	eor	v7.16b, v7.16b, v1.16b		// vpxor	%xmm1,	%xmm7,	%xmm7
++	ext	v4.16b, v4.16b, v7.16b, #8	// vpslldq	\$8,	%xmm7,	%xmm4
++
++	// subbytes
++	and	v1.16b, v0.16b, v17.16b		// vpand	%xmm9,	%xmm0,	%xmm1		# 0 = k
++	ushr	v0.16b, v0.16b, #4		// vpsrlb	\$4,	%xmm0,	%xmm0		# 1 = i
++	 eor	v7.16b, v7.16b, v4.16b		// vpxor	%xmm4,	%xmm7,	%xmm7
++	tbl	v2.16b, {$invhi}, v1.16b	// vpshufb	%xmm1,	%xmm11,	%xmm2		# 2 = a/k
++	eor	v1.16b, v1.16b, v0.16b		// vpxor	%xmm0,	%xmm1,	%xmm1		# 0 = j
++	tbl	v3.16b, {$invlo}, v0.16b	// vpshufb	%xmm0, 	%xmm10,	%xmm3		# 3 = 1/i
++	eor	v3.16b, v3.16b, v2.16b		// vpxor	%xmm2,	%xmm3,	%xmm3		# 3 = iak = 1/i + a/k
++	tbl	v4.16b, {$invlo}, v1.16b	// vpshufb	%xmm1,	%xmm10,	%xmm4		# 4 = 1/j
++	 eor	v7.16b, v7.16b, v16.16b		// vpxor	.Lk_s63(%rip),	%xmm7,	%xmm7
++	tbl	v3.16b, {$invlo}, v3.16b	// vpshufb	%xmm3,	%xmm10,	%xmm3		# 2 = 1/iak
++	eor	v4.16b, v4.16b, v2.16b		// vpxor	%xmm2,	%xmm4,	%xmm4		# 4 = jak = 1/j + a/k
++	tbl	v2.16b, {$invlo}, v4.16b	// vpshufb	%xmm4,	%xmm10,	%xmm2		# 3 = 1/jak
++	eor	v3.16b, v3.16b, v1.16b		// vpxor	%xmm1,	%xmm3,	%xmm3		# 2 = io
++	eor	v2.16b, v2.16b, v0.16b		// vpxor	%xmm0,	%xmm2,	%xmm2		# 3 = jo
++	tbl	v4.16b, {v23.16b}, v3.16b	// vpshufb	%xmm3,	%xmm13,	%xmm4		# 4 = sbou
++	tbl	v1.16b, {v22.16b}, v2.16b	// vpshufb	%xmm2,	%xmm12,	%xmm1		# 0 = sb1t
++	eor	v1.16b, v1.16b, v4.16b		// vpxor	%xmm4,	%xmm1,	%xmm1		# 0 = sbox output
++
++	// add in smeared stuff
++	eor	v0.16b, v1.16b, v7.16b		// vpxor	%xmm7,	%xmm1,	%xmm0
++	eor	v7.16b, v1.16b, v7.16b		// vmovdqa	%xmm0,	%xmm7
++	ret
++.size	_vpaes_schedule_round,.-_vpaes_schedule_round
++
++##
++##  .aes_schedule_transform
++##
++##  Linear-transform %xmm0 according to tables at (%r11)
++##
++##  Requires that %xmm9 = 0x0F0F... as in preheat
++##  Output in %xmm0
++##  Clobbers %xmm1, %xmm2
++##
++.type	_vpaes_schedule_transform,%function
++.align	4
++_vpaes_schedule_transform:
++	and	v1.16b, v0.16b, v17.16b		// vpand	%xmm9,	%xmm0,	%xmm1
++	ushr	v0.16b, v0.16b, #4		// vpsrlb	\$4,	%xmm0,	%xmm0
++						// vmovdqa	(%r11),	%xmm2 	# lo
++	tbl	v2.16b, {$iptlo}, v1.16b	// vpshufb	%xmm1,	%xmm2,	%xmm2
++						// vmovdqa	16(%r11),	%xmm1 # hi
++	tbl	v0.16b, {$ipthi}, v0.16b	// vpshufb	%xmm0,	%xmm1,	%xmm0
++	eor	v0.16b, v0.16b, v2.16b		// vpxor	%xmm2,	%xmm0,	%xmm0
++	ret
++.size	_vpaes_schedule_transform,.-_vpaes_schedule_transform
++
++##
++##  .aes_schedule_mangle
++##
++##  Mangle xmm0 from (basis-transformed) standard version
++##  to our version.
++##
++##  On encrypt,
++##    xor with 0x63
++##    multiply by circulant 0,1,1,1
++##    apply shiftrows transform
++##
++##  On decrypt,
++##    xor with 0x63
++##    multiply by "inverse mixcolumns" circulant E,B,D,9
++##    deskew
++##    apply shiftrows transform
++##
++##
++##  Writes out to (%rdx), and increments or decrements it
++##  Keeps track of round number mod 4 in %r8
++##  Preserves xmm0
++##  Clobbers xmm1-xmm5
++##
++.type	_vpaes_schedule_mangle,%function
++.align	4
++_vpaes_schedule_mangle:
++	mov	v4.16b, v0.16b			// vmovdqa	%xmm0,	%xmm4	# save xmm0 for later
++						// vmovdqa	.Lk_mc_forward(%rip),%xmm5
++
++	// encrypting
++	eor	v4.16b, v0.16b, v16.16b		// vpxor	.Lk_s63(%rip),	%xmm0,	%xmm4
++	add	$out, $out, #16			// add	\$16,	%rdx
++	tbl	v4.16b, {v4.16b}, v9.16b	// vpshufb	%xmm5,	%xmm4,	%xmm4
++	tbl	v1.16b, {v4.16b}, v9.16b	// vpshufb	%xmm5,	%xmm4,	%xmm1
++	tbl	v3.16b, {v1.16b}, v9.16b	// vpshufb	%xmm5,	%xmm1,	%xmm3
++	eor	v4.16b, v4.16b, v1.16b		// vpxor	%xmm1,	%xmm4,	%xmm4
++	ld1	{v1.2d}, [x8]			// vmovdqa	(%r8,%r10),	%xmm1
++	eor	v3.16b, v3.16b, v4.16b		// vpxor	%xmm4,	%xmm3,	%xmm3
++
++.Lschedule_mangle_both:
++	tbl	v3.16b, {v3.16b}, v1.16b	// vpshufb	%xmm1,	%xmm3,	%xmm3
++	add	x8, x8, #64-16			// add	\$-16,	%r8
++	and	x8, x8, #~(1<<6)		// and	\$0x30,	%r8
++	st1	{v3.2d}, [$out]			// vmovdqu	%xmm3,	(%rdx)
++	ret
++.size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle
++
++.globl	GFp_vpaes_set_encrypt_key
++.type	GFp_vpaes_set_encrypt_key,%function
++.align	4
++GFp_vpaes_set_encrypt_key:
++	AARCH64_SIGN_LINK_REGISTER
++	stp	x29,x30,[sp,#-16]!
++	add	x29,sp,#0
++	stp	d8,d9,[sp,#-16]!	// ABI spec says so
++
++	lsr	w9, $bits, #5		// shr	\$5,%eax
++	add	w9, w9, #5		// \$5,%eax
++	str	w9, [$out,#240]		// mov	%eax,240(%rdx)	# AES_KEY->rounds = nbits/32+5;
++
++	mov	$dir, #0		// mov	\$0,%ecx
++	mov	x8, #0x30		// mov	\$0x30,%r8d
++	bl	_vpaes_schedule_core
++	eor	x0, x0, x0
++
++	ldp	d8,d9,[sp],#16
++	ldp	x29,x30,[sp],#16
++	AARCH64_VALIDATE_LINK_REGISTER
++	ret
++.size	GFp_vpaes_set_encrypt_key,.-GFp_vpaes_set_encrypt_key
++___
++}
++{
++my ($inp,$out,$len,$key,$ivec) = map("x$_",(0..4));
++my ($ctr, $ctr_tmp) = ("w6", "w7");
++
++# void GFp_vpaes_ctr32_encrypt_blocks(const uint8_t *in, uint8_t *out, size_t len,
++#                                     const AES_KEY *key, const uint8_t ivec[16]);
++$code.=<<___;
++.globl	GFp_vpaes_ctr32_encrypt_blocks
++.type	GFp_vpaes_ctr32_encrypt_blocks,%function
++.align	4
++GFp_vpaes_ctr32_encrypt_blocks:
++	AARCH64_SIGN_LINK_REGISTER
++	stp	x29,x30,[sp,#-16]!
++	add	x29,sp,#0
++	stp	d8,d9,[sp,#-16]!	// ABI spec says so
++	stp	d10,d11,[sp,#-16]!
++	stp	d12,d13,[sp,#-16]!
++	stp	d14,d15,[sp,#-16]!
++
++	cbz	$len, .Lctr32_done
++
++	// Note, unlike the other functions, $len here is measured in blocks,
++	// not bytes.
++	mov	x17, $len
++	mov	x2,  $key
++
++	// Load the IV and counter portion.
++	ldr	$ctr, [$ivec, #12]
++	ld1	{v7.16b}, [$ivec]
++
++	bl	_vpaes_encrypt_preheat
++	tst	x17, #1
++	rev	$ctr, $ctr		// The counter is big-endian.
++	b.eq	.Lctr32_prep_loop
++
++	// Handle one block so the remaining block count is even for
++	// _vpaes_encrypt_2x.
++	ld1	{v6.16b}, [$inp], #16	// Load input ahead of time
++	bl	_vpaes_encrypt_core
++	eor	v0.16b, v0.16b, v6.16b	// XOR input and result
++	st1	{v0.16b}, [$out], #16
++	subs	x17, x17, #1
++	// Update the counter.
++	add	$ctr, $ctr, #1
++	rev	$ctr_tmp, $ctr
++	mov	v7.s[3], $ctr_tmp
++	b.ls	.Lctr32_done
++
++.Lctr32_prep_loop:
++	// _vpaes_encrypt_core takes its input from v7, while _vpaes_encrypt_2x
++	// uses v14 and v15.
++	mov	v15.16b, v7.16b
++	mov	v14.16b, v7.16b
++	add	$ctr, $ctr, #1
++	rev	$ctr_tmp, $ctr
++	mov	v15.s[3], $ctr_tmp
++
++.Lctr32_loop:
++	ld1	{v6.16b,v7.16b}, [$inp], #32	// Load input ahead of time
++	bl	_vpaes_encrypt_2x
++	eor	v0.16b, v0.16b, v6.16b		// XOR input and result
++	eor	v1.16b, v1.16b, v7.16b		// XOR input and result (#2)
++	st1	{v0.16b,v1.16b}, [$out], #32
++	subs	x17, x17, #2
++	// Update the counter.
++	add	$ctr_tmp, $ctr, #1
++	add	$ctr, $ctr, #2
++	rev	$ctr_tmp, $ctr_tmp
++	mov	v14.s[3], $ctr_tmp
++	rev	$ctr_tmp, $ctr
++	mov	v15.s[3], $ctr_tmp
++	b.hi	.Lctr32_loop
++
++.Lctr32_done:
++	ldp	d14,d15,[sp],#16
++	ldp	d12,d13,[sp],#16
++	ldp	d10,d11,[sp],#16
++	ldp	d8,d9,[sp],#16
++	ldp	x29,x30,[sp],#16
++	AARCH64_VALIDATE_LINK_REGISTER
++	ret
++.size	GFp_vpaes_ctr32_encrypt_blocks,.-GFp_vpaes_ctr32_encrypt_blocks
++___
++}
++
++print $code;
++
++close STDOUT or die "error closing STDOUT";
+diff --git a/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl b/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
+new file mode 100644
+index 0000000..7e52ad6
+--- /dev/null
++++ b/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
+@@ -0,0 +1,294 @@
++#! /usr/bin/env perl
++# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved.
++#
++# Licensed under the OpenSSL license (the "License").  You may not use
++# this file except in compliance with the License.  You can obtain a copy
++# in the file LICENSE in the source distribution or at
++# https://www.openssl.org/source/license.html
++
++# ====================================================================
++# Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
++# project. The module is, however, dual licensed under OpenSSL and
++# CRYPTOGAMS licenses depending on where you obtain it. For further
++# details see http://www.openssl.org/~appro/cryptogams/.
++# ====================================================================
++
++# This file was adapted to AArch64 from the 32-bit version in ghash-armv4.pl. It
++# implements the multiplication algorithm described in:
++#
++# Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software
++# Polynomial Multiplication on ARM Processors using the NEON Engine.
++#
++# http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf
++#
++# The main distinction to keep in mind between 32-bit NEON and AArch64 SIMD is
++# AArch64 cannot compute over the upper halves of SIMD registers. In 32-bit
++# NEON, the low and high halves of the 128-bit register q0 are accessible as
++# 64-bit registers d0 and d1, respectively. In AArch64, dN is the lower half of
++# vN. Where the 32-bit version would use the upper half, this file must keep
++# halves in separate registers.
++#
++# The other distinction is in syntax. 32-bit NEON embeds lane information in the
++# instruction name, while AArch64 uses suffixes on the registers. For instance,
++# left-shifting 64-bit lanes of a SIMD register in 32-bit would be written:
++#
++#     vshl.i64 q0, q0, #1
++#
++# in 64-bit, it would be written:
++#
++#     shl v0.2d, v0.2d, #1
++#
++# See Programmer's Guide for ARMv8-A, section 7 for details.
++# http://infocenter.arm.com/help/topic/com.arm.doc.den0024a/DEN0024A_v8_architecture_PG.pdf
++#
++# Finally, note the 8-bit and 64-bit polynomial multipliers in AArch64 differ
++# only by suffix. pmull vR.8h, vA.8b, vB.8b multiplies eight 8-bit polynomials
++# and is always available. pmull vR.1q, vA.1d, vB.1d multiplies a 64-bit
++# polynomial and is conditioned on the PMULL extension. This file emulates the
++# latter with the former.
++
++use strict;
++
++my $flavour = shift;
++my $output;
++if ($flavour=~/\w[\w\-]*\.\w+$/) { $output=$flavour; undef $flavour; }
++else { while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} }
++
++if ($flavour && $flavour ne "void") {
++    $0 =~ m/(.*[\/\\])[^\/\\]+$/;
++    my $dir = $1;
++    my $xlate;
++    ( $xlate="${dir}arm-xlate.pl" and -f $xlate ) or
++    ( $xlate="${dir}../../../perlasm/arm-xlate.pl" and -f $xlate) or
++    die "can't locate arm-xlate.pl";
++
++    open OUT,"| \"$^X\" $xlate $flavour $output";
++    *STDOUT=*OUT;
++} else {
++    open OUT,">$output";
++    *STDOUT=*OUT;
++}
++
++my ($Xi, $Htbl, $inp, $len) = map("x$_", (0..3));	# argument block
++my ($Xl, $Xm, $Xh, $INlo, $INhi) = map("v$_", (0..4));
++my ($Hlo, $Hhi, $Hhl) = map("v$_", (5..7));
++# d8-d15 are callee-saved, so avoid v8-v15. AArch64 SIMD has plenty of registers
++# to spare.
++my ($t0, $t1, $t2, $t3) = map("v$_", (16..19));
++my ($t0l_t1l, $t0h_t1h, $t2l_t3l, $t2h_t3h) = map("v$_", (20..23));
++my ($k48_k32, $k16_k0) = map("v$_", (24..25));
++
++my $code = "";
++
++# clmul64x64 emits code which emulates pmull $r.1q, $a.1d, $b.1d. $r, $a, and $b
++# must be distinct from $t* and $k*. $t* are clobbered by the emitted code.
++sub clmul64x64 {
++my ($r, $a, $b) = @_;
++$code .= <<___;
++	ext	$t0.8b, $a.8b, $a.8b, #1	// A1
++	pmull	$t0.8h, $t0.8b, $b.8b		// F = A1*B
++	ext	$r.8b, $b.8b, $b.8b, #1		// B1
++	pmull	$r.8h, $a.8b, $r.8b		// E = A*B1
++	ext	$t1.8b, $a.8b, $a.8b, #2	// A2
++	pmull	$t1.8h, $t1.8b, $b.8b		// H = A2*B
++	ext	$t3.8b, $b.8b, $b.8b, #2	// B2
++	pmull	$t3.8h, $a.8b, $t3.8b		// G = A*B2
++	ext	$t2.8b, $a.8b, $a.8b, #3	// A3
++	eor	$t0.16b, $t0.16b, $r.16b	// L = E + F
++	pmull	$t2.8h, $t2.8b, $b.8b		// J = A3*B
++	ext	$r.8b, $b.8b, $b.8b, #3		// B3
++	eor	$t1.16b, $t1.16b, $t3.16b	// M = G + H
++	pmull	$r.8h, $a.8b, $r.8b		// I = A*B3
++
++	// Here we diverge from the 32-bit version. It computes the following
++	// (instructions reordered for clarity):
++	//
++	//     veor	\$t0#lo, \$t0#lo, \$t0#hi	@ t0 = P0 + P1 (L)
++	//     vand	\$t0#hi, \$t0#hi, \$k48
++	//     veor	\$t0#lo, \$t0#lo, \$t0#hi
++	//
++	//     veor	\$t1#lo, \$t1#lo, \$t1#hi	@ t1 = P2 + P3 (M)
++	//     vand	\$t1#hi, \$t1#hi, \$k32
++	//     veor	\$t1#lo, \$t1#lo, \$t1#hi
++	//
++	//     veor	\$t2#lo, \$t2#lo, \$t2#hi	@ t2 = P4 + P5 (N)
++	//     vand	\$t2#hi, \$t2#hi, \$k16
++	//     veor	\$t2#lo, \$t2#lo, \$t2#hi
++	//
++	//     veor	\$t3#lo, \$t3#lo, \$t3#hi	@ t3 = P6 + P7 (K)
++	//     vmov.i64	\$t3#hi, #0
++	//
++	// \$kN is a mask with the bottom N bits set. AArch64 cannot compute on
++	// upper halves of SIMD registers, so we must split each half into
++	// separate registers. To compensate, we pair computations up and
++	// parallelize.
++
++	ext	$t3.8b, $b.8b, $b.8b, #4	// B4
++	eor	$t2.16b, $t2.16b, $r.16b	// N = I + J
++	pmull	$t3.8h, $a.8b, $t3.8b		// K = A*B4
++
++	// This can probably be scheduled more efficiently. For now, we just
++	// pair up independent instructions.
++	zip1	$t0l_t1l.2d, $t0.2d, $t1.2d
++	zip1	$t2l_t3l.2d, $t2.2d, $t3.2d
++	zip2	$t0h_t1h.2d, $t0.2d, $t1.2d
++	zip2	$t2h_t3h.2d, $t2.2d, $t3.2d
++	eor	$t0l_t1l.16b, $t0l_t1l.16b, $t0h_t1h.16b
++	eor	$t2l_t3l.16b, $t2l_t3l.16b, $t2h_t3h.16b
++	and	$t0h_t1h.16b, $t0h_t1h.16b, $k48_k32.16b
++	and	$t2h_t3h.16b, $t2h_t3h.16b, $k16_k0.16b
++	eor	$t0l_t1l.16b, $t0l_t1l.16b, $t0h_t1h.16b
++	eor	$t2l_t3l.16b, $t2l_t3l.16b, $t2h_t3h.16b
++	zip1	$t0.2d, $t0l_t1l.2d, $t0h_t1h.2d
++	zip1	$t2.2d, $t2l_t3l.2d, $t2h_t3h.2d
++	zip2	$t1.2d, $t0l_t1l.2d, $t0h_t1h.2d
++	zip2	$t3.2d, $t2l_t3l.2d, $t2h_t3h.2d
++
++	ext	$t0.16b, $t0.16b, $t0.16b, #15	// t0 = t0 << 8
++	ext	$t1.16b, $t1.16b, $t1.16b, #14	// t1 = t1 << 16
++	pmull	$r.8h, $a.8b, $b.8b		// D = A*B
++	ext	$t3.16b, $t3.16b, $t3.16b, #12	// t3 = t3 << 32
++	ext	$t2.16b, $t2.16b, $t2.16b, #13	// t2 = t2 << 24
++	eor	$t0.16b, $t0.16b, $t1.16b
++	eor	$t2.16b, $t2.16b, $t3.16b
++	eor	$r.16b, $r.16b, $t0.16b
++	eor	$r.16b, $r.16b, $t2.16b
++___
++}
++
++$code .= <<___;
++#include <GFp/arm_arch.h>
++
++.text
++
++.global	GFp_gcm_init_neon
++.type	GFp_gcm_init_neon,%function
++.align	4
++GFp_gcm_init_neon:
++	AARCH64_VALID_CALL_TARGET
++	// This function is adapted from gcm_init_v8. xC2 is t3.
++	ld1	{$t1.2d}, [x1]			// load H
++	movi	$t3.16b, #0xe1
++	shl	$t3.2d, $t3.2d, #57		// 0xc2.0
++	ext	$INlo.16b, $t1.16b, $t1.16b, #8
++	ushr	$t2.2d, $t3.2d, #63
++	dup	$t1.4s, $t1.s[1]
++	ext	$t0.16b, $t2.16b, $t3.16b, #8	// t0=0xc2....01
++	ushr	$t2.2d, $INlo.2d, #63
++	sshr	$t1.4s, $t1.4s, #31		// broadcast carry bit
++	and	$t2.16b, $t2.16b, $t0.16b
++	shl	$INlo.2d, $INlo.2d, #1
++	ext	$t2.16b, $t2.16b, $t2.16b, #8
++	and	$t0.16b, $t0.16b, $t1.16b
++	orr	$INlo.16b, $INlo.16b, $t2.16b	// H<<<=1
++	eor	$Hlo.16b, $INlo.16b, $t0.16b	// twisted H
++	st1	{$Hlo.2d}, [x0]			// store Htable[0]
++	ret
++.size	GFp_gcm_init_neon,.-GFp_gcm_init_neon
++
++.global	GFp_gcm_gmult_neon
++.type	GFp_gcm_gmult_neon,%function
++.align	4
++GFp_gcm_gmult_neon:
++	AARCH64_VALID_CALL_TARGET
++	ld1	{$INlo.16b}, [$Xi]		// load Xi
++	ld1	{$Hlo.1d}, [$Htbl], #8		// load twisted H
++	ld1	{$Hhi.1d}, [$Htbl]
++	adrp	x9, :pg_hi21:.Lmasks		// load constants
++	add	x9, x9, :lo12:.Lmasks
++	ld1	{$k48_k32.2d, $k16_k0.2d}, [x9]
++	rev64	$INlo.16b, $INlo.16b		// byteswap Xi
++	ext	$INlo.16b, $INlo.16b, $INlo.16b, #8
++	eor	$Hhl.8b, $Hlo.8b, $Hhi.8b	// Karatsuba pre-processing
++
++	mov	$len, #16
++	b	.Lgmult_neon
++.size	GFp_gcm_gmult_neon,.-GFp_gcm_gmult_neon
++
++.global	GFp_gcm_ghash_neon
++.type	GFp_gcm_ghash_neon,%function
++.align	4
++GFp_gcm_ghash_neon:
++	AARCH64_VALID_CALL_TARGET
++	ld1	{$Xl.16b}, [$Xi]		// load Xi
++	ld1	{$Hlo.1d}, [$Htbl], #8		// load twisted H
++	ld1	{$Hhi.1d}, [$Htbl]
++	adrp	x9, :pg_hi21:.Lmasks		// load constants
++	add	x9, x9, :lo12:.Lmasks
++	ld1	{$k48_k32.2d, $k16_k0.2d}, [x9]
++	rev64	$Xl.16b, $Xl.16b		// byteswap Xi
++	ext	$Xl.16b, $Xl.16b, $Xl.16b, #8
++	eor	$Hhl.8b, $Hlo.8b, $Hhi.8b	// Karatsuba pre-processing
++
++.Loop_neon:
++	ld1	{$INlo.16b}, [$inp], #16	// load inp
++	rev64	$INlo.16b, $INlo.16b		// byteswap inp
++	ext	$INlo.16b, $INlo.16b, $INlo.16b, #8
++	eor	$INlo.16b, $INlo.16b, $Xl.16b	// inp ^= Xi
++
++.Lgmult_neon:
++	// Split the input into $INlo and $INhi. (The upper halves are unused,
++	// so it is okay to leave them alone.)
++	ins	$INhi.d[0], $INlo.d[1]
++___
++&clmul64x64	($Xl, $Hlo, $INlo);		# H.lo·Xi.lo
++$code .= <<___;
++	eor	$INlo.8b, $INlo.8b, $INhi.8b	// Karatsuba pre-processing
++___
++&clmul64x64	($Xm, $Hhl, $INlo);		# (H.lo+H.hi)·(Xi.lo+Xi.hi)
++&clmul64x64	($Xh, $Hhi, $INhi);		# H.hi·Xi.hi
++$code .= <<___;
++	ext	$t0.16b, $Xl.16b, $Xh.16b, #8
++	eor	$Xm.16b, $Xm.16b, $Xl.16b	// Karatsuba post-processing
++	eor	$Xm.16b, $Xm.16b, $Xh.16b
++	eor	$Xm.16b, $Xm.16b, $t0.16b	// Xm overlaps Xh.lo and Xl.hi
++	ins	$Xl.d[1], $Xm.d[0]		// Xh|Xl - 256-bit result
++	// This is a no-op due to the ins instruction below.
++	// ins	$Xh.d[0], $Xm.d[1]
++
++	// equivalent of reduction_avx from ghash-x86_64.pl
++	shl	$t1.2d, $Xl.2d, #57		// 1st phase
++	shl	$t2.2d, $Xl.2d, #62
++	eor	$t2.16b, $t2.16b, $t1.16b	//
++	shl	$t1.2d, $Xl.2d, #63
++	eor	$t2.16b, $t2.16b, $t1.16b	//
++	// Note Xm contains {Xl.d[1], Xh.d[0]}.
++	eor	$t2.16b, $t2.16b, $Xm.16b
++	ins	$Xl.d[1], $t2.d[0]		// Xl.d[1] ^= t2.d[0]
++	ins	$Xh.d[0], $t2.d[1]		// Xh.d[0] ^= t2.d[1]
++
++	ushr	$t2.2d, $Xl.2d, #1		// 2nd phase
++	eor	$Xh.16b, $Xh.16b,$Xl.16b
++	eor	$Xl.16b, $Xl.16b,$t2.16b	//
++	ushr	$t2.2d, $t2.2d, #6
++	ushr	$Xl.2d, $Xl.2d, #1		//
++	eor	$Xl.16b, $Xl.16b, $Xh.16b	//
++	eor	$Xl.16b, $Xl.16b, $t2.16b	//
++
++	subs	$len, $len, #16
++	bne	.Loop_neon
++
++	rev64	$Xl.16b, $Xl.16b		// byteswap Xi and write
++	ext	$Xl.16b, $Xl.16b, $Xl.16b, #8
++	st1	{$Xl.16b}, [$Xi]
++
++	ret
++.size	GFp_gcm_ghash_neon,.-GFp_gcm_ghash_neon
++
++.section	.rodata
++.align	4
++.Lmasks:
++.quad	0x0000ffffffffffff	// k48
++.quad	0x00000000ffffffff	// k32
++.quad	0x000000000000ffff	// k16
++.quad	0x0000000000000000	// k0
++.asciz  "GHASH for ARMv8, derived from ARMv4 version by <appro\@openssl.org>"
++.align  2
++___
++
++foreach (split("\n",$code)) {
++	s/\`([^\`]*)\`/eval $1/geo;
++
++	print $_,"\n";
++}
++close STDOUT or die "error closing STDOUT"; # enforce flush
+-- 
+Efraim Flashner   <efraim@flashner.co.il>   רנשלפ םירפא
+GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
+Confidentiality cannot be guaranteed on emails sent or received unencrypted
+
diff --git a/gnu/packages/patches/rust-ring-0.16-test-files.patch b/gnu/packages/patches/rust-ring-0.16-test-files.patch
new file mode 100644
index 0000000000..dbe5c0f4ee
--- /dev/null
+++ b/gnu/packages/patches/rust-ring-0.16-test-files.patch
@@ -0,0 +1,54 @@
+This file exists in the upstream repository at the commit which
+corresponds to the ring-0.16.20 release, but was excluded from the
+release tarball.
+
+---
+ tests/ed25519_verify_tests.txt | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
+ create mode 100644 tests/ed25519_verify_tests.txt
+
+diff --git a/tests/ed25519_verify_tests.txt b/tests/ed25519_verify_tests.txt
+new file mode 100644
+index 0000000..74c94b3
+--- /dev/null
++++ b/tests/ed25519_verify_tests.txt
+@@ -0,0 +1,34 @@
++# BoringSSL TEST(Ed25519Test Malleability)
++
++# Control; S is in range.
++MESSAGE = 54657374
++SIG = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d
++PUB = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa
++Result = P
++
++# Same as above, but with the order L added to S so it is out of range.
++# BoringSSL commit 472ba2c2dd52d06a657a63b7fbf02732a6649d21
++MESSAGE = 54657374
++SIG = 7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d
++PUB = 7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa
++Result = F
++
++
++# BoringSSL commit 3094902fcdc2db2cc832fa854b9a6a8be383926c
++MESSAGE = 124e583f8b8eca58bb29c271b41d36986bbc45541f8e51f9cb0133eca447601e
++SIG = dac119d6ca87fc59ae611c157048f4d4fc932a149dbe20ec6effd1436abf83ea05c7df0fef06147241259113909bc71bd3c53ba4464ffcad3c0968f2ffffff0f
++PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86
++Result = P
++
++# Control. Same key as above; same message and signature as below, except S is in range.
++PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86
++MESSAGE = 6a0bc2b0057cedfc0fa2e3f7f7d39279b30f454a69dfd1117c758d86b19d85e0
++SIG = 0971f86d2c9c78582524a103cb9cf949522ae528f8054dc20107d999be673ff4f58ac9d20ec563133cabc6230b1db8625f8446639ede46ad4df4053000000000
++Result = P
++
++# Same key as above, but S is out of range.
++# BoringSSL commit 472ba2c2dd52d06a657a63b7fbf02732a6649d21
++PUB = 100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86
++MESSAGE = 6a0bc2b0057cedfc0fa2e3f7f7d39279b30f454a69dfd1117c758d86b19d85e0
++SIG = 0971f86d2c9c78582524a103cb9cf949522ae528f8054dc20107d999be673ff4e25ebf2f2928766b1248bec6e91697775f8446639ede46ad4df4053000000010
++Result = F
+-- 
+Efraim Flashner   <efraim@flashner.co.il>   רנשלפ םירפא
+GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
+Confidentiality cannot be guaranteed on emails sent or received unencrypted
+
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 7291c42278..e270bdf27f 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1040,7 +1040,7 @@ using a stylus.")
     (inputs
      (list alsa-lib
            gtk+
-           librsvg
+           (librsvg-for-system)
            libsndfile
            libxml2
            libzip
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 6c77d569c3..72050a25aa 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015, 2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2019, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -617,7 +617,7 @@ such as Batch image processing.")
 (define-public entangle
   (package
     (name "entangle")
-    (version "3.0")
+    (version "3.0")    ; delete the 'build-with-meson-0.60 phase when updating
     (source
      (origin
        (method git-fetch)
@@ -629,34 +629,39 @@ such as Batch image processing.")
         (base32 "1pdmgxjdb3xlcqsaz7l8qzj5f7g7nwzhsrgid8929bm36d49cgc7"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
-           (lambda _
-             (substitute* "meson_post_install.py"
-               (("gtk-update-icon-cache") "true"))
-             #t))
-         (add-after 'install 'wrap-gi-python
-           ;; Make GTK find files needed by plugins.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out               (assoc-ref outputs "out"))
-                   (gi-typelib-path   (getenv "GI_TYPELIB_PATH"))
-                   (python-path       (getenv "GUIX_PYTHONPATH")))
-               (wrap-program (string-append out "/bin/entangle")
-                 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
-                 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
-             #t)))))
+     (list
+      #:glib-or-gtk? #t
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'build-with-meson-0.60
+            ;; Work around ‘ERROR: Function does not take positional arguments.’.
+            (lambda _
+              (substitute* "src/meson.build"
+                (("^i18n\\.merge_file.*" match)
+                 (string-append match "  data_dirs:")))))
+          (add-after 'unpack 'skip-gtk-update-icon-cache
+            ;; Don't create 'icon-theme.cache'.
+            (lambda _
+              (substitute* "meson_post_install.py"
+                (("gtk-update-icon-cache") "true"))))
+          (add-after 'install 'wrap-gi-python
+            ;; Make GTK find files needed by plugins.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+                    (python-path     (getenv "GUIX_PYTHONPATH")))
+                (wrap-program (string-append #$output "/bin/entangle")
+                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                  `("GUIX_PYTHONPATH" ":" prefix (,python-path)))))))))
     (native-inputs
-     `(("cmake" ,cmake)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)))
+     (list cmake
+           gettext-minimal
+           `(,glib "bin")
+           gobject-introspection
+           gtk-doc
+           itstool
+           libxml2
+           perl
+           pkg-config))
     (inputs
      (list gdk-pixbuf
            gexiv2
@@ -791,7 +796,7 @@ a complete panorama and stitch any series of overlapping pictures.")
            libiptcdata
            libjpeg-turbo
            libpng
-           librsvg
+           (librsvg-for-system)
            libsigc++
            libtiff
            zlib))
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 89e5de6278..5d15b160f3 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2022 Zhu Zihao  <all_but_last@163.com>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer  <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -51,7 +52,8 @@
   #:use-module (gnu packages lua)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages swig))
+  #:use-module (gnu packages swig)
+  #:use-module (gnu packages qt))
 
 (define-public a2ps
   (package
@@ -350,55 +352,96 @@ seen in a terminal.")
 (define-public highlight
   (package
     (name "highlight")
-    (version "3.62")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "http://www.andre-simon.de/zip/highlight-"
-                           version ".tar.bz2"))
-       (sha256
-        (base32 "088di7qxd6b2r22qljllhnly0r9a0lfnwnfqswjn23s09awjbl6p"))))
+    (version "4.7")
+    (outputs (list "out" "gui"))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.andre-simon.de/zip/highlight-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "1cl21qpgy92w1x53vrn1bgq84mkh6fgayc9k38mz4xmz2yw01nv1"))
+              (patches (search-patches "highlight-gui-data-dir.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; no tests
-       #:make-flags
-       (let ((confdir (string-append %output "/share/highlight/config/")))
-         (list (string-append "PREFIX=" %output)
-               (string-append "HL_CONFIG_DIR=" confdir)
-               (string-append "conf_dir=" confdir)))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)            ; no configure script
-         (add-after 'unpack 'fix-search-for-lua
-           (lambda _
-             (substitute* "src/makefile"
-               (("(LUA_PKG_NAME=).*" _ assignment)
-                (string-append assignment "lua-" ,(version-major+minor
-                                                   (package-version lua))
-                               "\n")))
-             (substitute* "extras/swig/makefile"
-               (("lua") (string-append "lua-" ,(version-major+minor
-                                                (package-version lua)))))
-             #t))
-         (add-after 'install 'install-perl-bindings
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((perldir (string-append (assoc-ref outputs "out")
-                                            "/lib/perl5/site_perl/"
-                                            ,(package-version perl)))
-                    (autodir (string-append perldir "/auto/highlight")))
-               (with-directory-excursion "extras/swig"
-                 (invoke "make" "perl")
-                 (invoke "perl" "-I" "." "testmod.pl")
-                 (install-file "highlight.pm" perldir)
-                 (install-file "highlight.so" autodir))
-               #t))))))
-    (inputs
-     (list lua boost perl))
-    (native-inputs
-     (list pkg-config swig))
+     (list #:tests? #f ;no tests
+           #:make-flags #~(let ((confdir (string-append %output
+                                          "/share/highlight/config/")))
+                            (list (string-append "PREFIX=" %output)
+                                  (string-append "HL_CONFIG_DIR=" confdir)
+                                  (string-append "conf_dir=" confdir)))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure) ;no configure script
+                        (add-after 'unpack 'fix-search-for-lua
+                          (lambda _
+                            (let ((ver #$(version-major+minor (package-version
+                                                               lua))))
+                              (substitute* "src/makefile"
+                                (("(LUA_PKG_NAME=).*" _ assignment)
+                                 (string-append assignment "lua-" ver "\n")))
+                              (substitute* "src/gui-qt/highlight.pro"
+                                (("(PKGCONFIG \\+= lua)" _ assignment)
+                                 (string-append assignment "-" ver)))
+                              (substitute* "extras/swig/makefile"
+                                (("lua")
+                                 (string-append "lua-" ver))))))
+                        (add-after 'build 'build-gui
+                          (lambda* (#:key inputs outputs #:allow-other-keys)
+                            (let* ((out (assoc-ref outputs "out"))
+                                   (data (string-append out
+                                                        "/share/highlight/"))
+                                   (conf (string-append out "/etc/highlight/"))
+                                   (doc (string-append out
+                                         "/share/doc/highlight/"))
+                                   (gui (assoc-ref outputs "gui"))
+                                   (gui-data (string-append gui
+                                              "/share/highlight/")))
+                              ;; modified version of gui task in makefile
+                              (invoke "make"
+                                      "-C"
+                                      "./src"
+                                      "-f"
+                                      "./makefile"
+                                      (string-append "HL_DATA_DIR=" data)
+                                      (string-append "HL_CONFIG_DIR=" conf)
+                                      (string-append "HL_DOC_DIR=" doc)
+                                      (string-append "GUI_DATA_DIR=" gui-data)
+                                      "gui-qt"))))
+                        (replace 'install
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let ((out (assoc-ref outputs "out")))
+                              (invoke "make" "install"
+                                      (string-append "PREFIX=" out)))))
+                        (add-after 'install 'install-perl-bindings
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let* ((out (assoc-ref outputs "out"))
+                                   (data (string-append out
+                                                        "/share/highlight/"))
+                                   (conf (string-append out "/etc/highlight/"))
+                                   (perldir (string-append out
+                                             "/lib/perl5/site_perl/"
+                                             #$(package-version perl)))
+                                   (autodir (string-append perldir
+                                                           "/auto/highlight")))
+                              (with-directory-excursion "extras/swig"
+                                (invoke "make" "perl"
+                                        (string-append "hl_data_dir=" data)
+                                        (string-append "hl_conf_dir=" conf))
+                                (invoke "perl" "-I" "." "testmod.pl")
+                                (install-file "highlight.pm" perldir)
+                                (install-file "highlight.so" autodir)))))
+                        (add-after 'install 'install-gui
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (let ((gui (assoc-ref outputs "gui")))
+                              (mkdir-p (string-append gui "/bin"))
+                              (invoke "make" "install-gui"
+                                      (string-append "PREFIX=" gui))))))))
+    (inputs (list lua boost perl qtbase-5))
+    (native-inputs (list pkg-config swig))
     (home-page "http://www.andre-simon.de/doku/highlight/en/highlight.php")
     (synopsis "Convert code to documents with syntax highlighting")
-    (description "Highlight converts source code to HTML, XHTML, RTF, LaTeX,
+    (description
+     "Highlight converts source code to HTML, XHTML, RTF, LaTeX,
 TeX, SVG, BBCode and terminal escape sequences with colored syntax
 highlighting.  Language definitions and color themes are customizable.")
     (license gpl3+)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 44babe5c8c..cfd1146f06 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -476,14 +476,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography-vectors
   (package
     (name "python-cryptography-vectors")
-    (version "40.0.1")
+    (version "40.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "0hd0ppss5xg0kzf36q8cdaxh1xw8ry4k7jkianlf832xbdmp0q44"))))
+         "16hcprw919f2rl3jipsy2996bnsz170inway3lishqi30xwqf6x8"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
@@ -495,14 +495,14 @@ is used by the Requests library to verify HTTPS requests.")
 (define-public python-cryptography
   (package
     (name "python-cryptography")
-    (version "40.0.1")
+    (version "40.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography" version))
        (sha256
         (base32
-         "0wilrilfcyl78caxcpna2k3aya6qamppwv4j35262pz9n7wg40r8"))))
+         "16awbsm13vdksm98dybwvmpy2y1l636bq7g0s93scksrp0r0sg63"))))
     (build-system pyproject-build-system)
     (arguments
      (list
@@ -557,11 +557,6 @@ ciphers, message digests and key derivation functions.")
                   (guix build utils)
                   (srfi srfi-1)
                   (ice-9 match))
-      ;; XXX: Building the test objects appear to fail due to a missing link
-      ;; directive to Python's shared library (e.g.: "ld:
-      ;; cryptography_rust.c950d742-cgu.11:(.text._ZN3...+0x57): undefined
-      ;; reference to `PyLong_FromLong'").
-      #:tests? #f
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'chdir
@@ -579,12 +574,18 @@ 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-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)
@@ -592,9 +593,7 @@ ciphers, message digests and key derivation functions.")
         ("rust-openssl-sys-0.9" ,rust-openssl-sys-0.9)
         ("rust-ouroboros-0.15" ,rust-ouroboros-0.15)
         ("rust-pem-1" ,rust-pem-1)
-        ("rust-pyo3-0.15" ,rust-pyo3-0.15))
-      #:cargo-development-inputs
-      `(("rust-cc" ,rust-cc-1))))
+        ("rust-pyo3-0.15" ,rust-pyo3-0.15))))
     (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.
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b8e8097c7b..c5e170b628 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -23251,17 +23251,15 @@ Git.")
 (define-public python-setuptools-rust
   (package
     (name "python-setuptools-rust")
-    (version "1.1.2")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "setuptools-rust" version))
        (sha256
-        (base32 "1lb57qx1azklgzmalflq960agvwci4bwddw0zvlc9zy00fsvkbd0"))))
-    (build-system python-build-system)
+        (base32 "0qi274r0fcnvxa8vs8vyhcknnzhq8pd0ig5zk1wmjc63x96p6vn8"))))
+    (build-system pyproject-build-system)
     (arguments '(#:tests? #f))          ;no tests
-    (native-inputs
-     (list python-setuptools-scm))
     (propagated-inputs
      (list python-semantic-version python-typing-extensions))
     (home-page "https://github.com/PyO3/setuptools-rust")
diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm
index be4fe83cdc..2a969a2f78 100644
--- a/gnu/packages/rdesktop.scm
+++ b/gnu/packages/rdesktop.scm
@@ -31,19 +31,29 @@
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages assembly)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cups)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages mp3)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xorg)
@@ -137,3 +147,109 @@ It consists of the @code{xfreerdp} client, libraries for client and server
 functionality, and Windows Portable Runtime (WinPR), a portable implementation
 of parts of the Windows API.")
     (license license:asl2.0)))
+
+(define-public xrdp
+  (package
+    (name "xrdp")
+    (version "0.9.22.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/neutrinolabs/xrdp/releases/download/v"
+                    version "/xrdp-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1jzknwy003fk5lqzrncbypirq3smpghxy2prg2m2ljjrx77j1lvd"))))
+    (build-system gnu-build-system)
+    (inputs (list check
+                  fuse-2
+                  imlib2
+                  lame
+                  libjpeg-turbo
+                  libx11
+                  libxfixes
+                  libxml2
+                  libxpm
+                  libxrandr
+                  libxslt
+                  libxt
+                  linux-pam
+                  openssl
+                  pixman
+                  python
+                  python-libxml2))
+    (native-inputs (list bison
+                         flex
+                         gettext-minimal
+                         intltool
+                         nasm
+                         pkg-config
+                         pixman))
+    (arguments
+     (list #:configure-flags #~(list "--enable-strict-locations=yes"
+                                     "--enable-fuse=yes"
+                                     "--enable-mp3lame=yes"
+                                     "--enable-pixman=yes"
+                                     "--enable-imlib2=yes"
+                                     "--enable-pam-config=unix"
+                                     "--enable-ipv6=yes")))
+    (home-page "https://www.xrdp.org")
+    (synopsis "Remote Desktop Protocol (RDP) server")
+    (description
+     "Xrdp provides a graphical login to remote machines using
+Microsoft Remote Desktop Protocol (RDP).  Xrdp accepts connections from a
+variety of RDP clients:
+@itemize
+@item FreeRDP
+@item rdesktop
+@item KRDC
+@item NeutrinoRDP
+@item Windows MSTSC (Microsoft Terminal Services Client, aka mstsc.exe)
+@item Microsoft Remote Desktop (found on Microsoft Store, which is distinct from MSTSC).
+@end itemize")
+    (license license:asl2.0)))
+
+(define-public xorgxrdp
+  (package
+    (name "xorgxrdp")
+    (version "0.9.19")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/neutrinolabs/xorgxrdp/releases/download/v"
+                    version "/xorgxrdp-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0m8lvdnhfvwwqrr56difgy3mblplp23x6iy12kl4r8i87ic4rky1"))))
+    (build-system gnu-build-system)
+    (inputs (list check
+                  imlib2
+                  libx11
+                  libxfixes
+                  libxfont2
+                  libxml2
+                  libxpm
+                  libxrandr
+                  libxslt
+                  libxt
+                  pixman
+                  xdpyinfo
+                  xorg-server
+                  xrdp))
+    (native-inputs (list nasm
+                         intltool
+                         pkg-config
+                         pixman))
+    (arguments
+     (list #:configure-flags #~(list "--enable-strict-locations=yes"
+                                     (string-append "XRDP_CFLAGS=-I"
+                                                    #$(this-package-input
+                                                       "xrdp") "/common"))))
+    (home-page "https://github.com/neutrinolabs/xorgxrdp")
+    (synopsis "Xorg drivers for xrdp")
+    (description
+     "xorgxrdp is a collection of modules to be used with a pre-existing X.Org
+install to make the X server act like X11rdp.  Unlike X11rdp, you don't have to
+recompile the whole X Window System.  Instead, additional modules are installed
+to a location where the existing Xorg installation would pick them.")
+    (license license:x11)))
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 8c29969712..a291282325 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -41,6 +41,7 @@
 
 (define-module (gnu packages rust-apps)
   #:use-module (guix build-system cargo)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix deprecation)
   #:use-module (guix download)
   #:use-module (guix gexp)
@@ -74,6 +75,8 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages rust)
   #:use-module (gnu packages tls)
@@ -520,6 +523,11 @@ also knows about symlinks, extended attributes, and Git.")
                (setenv "CARGO_FEATURE_UNPREFIXED_MALLOC_ON_SUPPORTED_PLATFORMS" "1")
                (setenv "JEMALLOC_OVERRIDE"
                        (string-append jemalloc "/lib/libjemalloc.so")))))
+         (add-after 'unpack 'adjust-feature-flags
+           (lambda _
+             ;; unstable-grouped was stablized in rust-clap 4.2.0
+             (substitute* "Cargo.toml"
+               ((".*unstable-grouped.*") ""))))
          (add-after 'install 'install-extra
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -729,6 +737,168 @@ replacement for i3status, written in pure Rust.  It provides a way to display
 bar.  It is also compatible with sway.")
     (license license:gpl3)))
 
+(define-public maturin
+  (package
+    (name "maturin")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "maturin" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0asdljd396kdsvnx9kbsr5s0x6w73b59kdpx732333dhm13qgn03"))
+              (patches (search-patches "maturin-no-cross-compile.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:modules ((guix build cargo-build-system)
+                  ((guix build pyproject-build-system) #:prefix py:)
+                  (guix build utils))
+       #:imported-modules ((guix build cargo-build-system)
+                           (guix build cargo-utils)
+                           ,@%pyproject-build-system-modules)
+       #:install-source? #f
+       #:cargo-test-flags
+       '("--release" "--"
+         ;; Not all files are included.
+         "--skip=build_options::test::test_find_bridge_bin"
+         "--skip=build_options::test::test_find_bridge_cffi"
+         "--skip=build_options::test::test_find_bridge_pyo3"
+         "--skip=build_options::test::test_find_bridge_pyo3_abi3"
+         "--skip=build_options::test::test_find_bridge_pyo3_feature"
+         "--skip=metadata::test::test_implicit_readme"
+         "--skip=metadata::test::test_merge_metadata_from_pyproject_dynamic_license_test"
+         "--skip=metadata::test::test_merge_metadata_from_pyproject_toml"
+         "--skip=metadata::test::test_merge_metadata_from_pyproject_toml_with_customized_python_source_dir"
+         "--skip=pyproject_toml::tests::test_warn_missing_maturin_version")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-base64" ,rust-base64-0.21)
+        ("rust-bytesize" ,rust-bytesize-1)
+        ("rust-cargo-config2" ,rust-cargo-config2-0.1)
+        ("rust-cargo-options" ,rust-cargo-options-0.6)
+        ;("rust-cargo-xwin" ,rust-cargo-xwin-0.14)
+        ;("rust-cargo-zigbuild" ,rust-cargo-zigbuild-0.16)
+        ("rust-cargo-metadata" ,rust-cargo-metadata-0.15)
+        ("rust-cbindgen" ,rust-cbindgen-0.24)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete-command" ,rust-clap-complete-command-0.5)
+        ("rust-configparser" ,rust-configparser-3)
+        ("rust-console" ,rust-console-0.15)
+        ("rust-dialoguer" ,rust-dialoguer-0.10)
+        ("rust-dirs" ,rust-dirs-5)
+        ("rust-dunce" ,rust-dunce-1)
+        ("rust-fat-macho" ,rust-fat-macho-0.4)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fs-err" ,rust-fs-err-2)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-goblin" ,rust-goblin-0.6)
+        ("rust-ignore" ,rust-ignore-0.4)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-keyring" ,rust-keyring-2)
+        ("rust-lddtree" ,rust-lddtree-0.3)
+        ("rust-minijinja" ,rust-minijinja-0.34)
+        ("rust-multipart" ,rust-multipart-0.18)
+        ("rust-native-tls" ,rust-native-tls-0.2)
+        ("rust-normpath" ,rust-normpath-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-pep440-rs" ,rust-pep440-rs-0.3)
+        ("rust-pep508-rs" ,rust-pep508-rs-0.2)
+        ("rust-platform-info" ,rust-platform-info-2)
+        ("rust-pyproject-toml" ,rust-pyproject-toml-0.6)
+        ("rust-python-pkginfo" ,rust-python-pkginfo-0.5)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rustc-version" ,rust-rustc-version-0.4)
+        ("rust-rustls" ,rust-rustls-0.20)
+        ("rust-rustls-pemfile" ,rust-rustls-pemfile-1)
+        ("rust-same-file" ,rust-same-file-1)
+        ("rust-semver" ,rust-semver-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-sha2" ,rust-sha2-0.10)
+        ("rust-tar" ,rust-tar-0.4)
+        ("rust-target-lexicon" ,rust-target-lexicon-0.12)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-textwrap" ,rust-textwrap-0.16)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-toml" ,rust-toml-0.7)
+        ("rust-toml-edit" ,rust-toml-edit-0.19)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
+        ("rust-ureq" ,rust-ureq-2)
+        ("rust-url" ,rust-url-2)
+        ("rust-wild" ,rust-wild-2)
+        ("rust-zip" ,rust-zip-0.6))
+       #:cargo-development-inputs
+       (("rust-indoc" ,rust-indoc-2)
+        ("rust-pretty-assertions" ,rust-pretty-assertions-1)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-time" ,rust-time-0.3)
+        ("rust-trycmd" ,rust-trycmd-0.14)
+        ("rust-which" ,rust-which-4))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'build-python-module
+           (lambda _
+             ;; Match the features from the cargo-build-system and Cargo.toml.
+             (setenv "MATURIN_SETUP_ARGS" "--features=default")
+             ((assoc-ref py:%standard-phases 'build))))
+
+         ;; We can't use the pyproject install phase because maturin is a
+         ;; binary, not a python script.
+         (add-after 'install 'install-python-module
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (wheel (car (find-files "dist" "\\.whl$")))
+                   (site-dir (py:site-packages inputs outputs))
+                   (pyversion
+                     (string-append "python"
+                                    (py:python-version
+                                      (assoc-ref inputs "python-wrapper")))))
+               (invoke "python" "-m" "zipfile" "-e" wheel site-dir)
+               (mkdir-p (string-append out "/bin"))
+               (for-each delete-file
+                         (find-files (string-append out "/lib/" pyversion)
+                                     "^maturin$")))))
+         (add-after 'install 'install-completions
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (share (string-append out "/share"))
+                    (maturin (string-append out "/bin/maturin")))
+               ;; TODO? fig, nushell, powershell
+               (mkdir-p (string-append share "/bash-completion/completions"))
+               (with-output-to-file
+                 (string-append share "/bash-completion/completions/maturin")
+                 (lambda _ (invoke maturin "completions" "bash")))
+               (mkdir-p (string-append share "/fish/vendor_completions.d"))
+               (with-output-to-file
+                 (string-append share "/fish/vendor_completions.d/maturin.fish")
+                 (lambda _ (invoke maturin "completions" "fish")))
+               (mkdir-p (string-append share "/zsh/site-functions"))
+               (with-output-to-file
+                 (string-append share "/zsh/site-functions/_maturin")
+                 (lambda _ (invoke maturin "completions" "zsh")))
+               (mkdir-p (string-append share "/elvish/lib"))
+               (with-output-to-file
+                 (string-append share "/elvish/lib/maturin")
+                 (lambda _ (invoke maturin "completions" "elvish")))))))))
+    (propagated-inputs
+     (list python-tomli))
+    (native-inputs
+     (list perl
+           python-wheel
+           python-wrapper
+           python-setuptools-rust))
+    (home-page "https://github.com/pyo3/maturin")
+    (synopsis "Build and publish crates and python packages")
+    (description
+     "Build and publish crates with @code{pyo3}, @code{rust-cpython} and
+@code{cffi} bindings as well as rust binaries as python packages.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public ripgrep
   (package
     (name "ripgrep")
@@ -1099,19 +1269,6 @@ rebase.")
               (base32
                "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
 
-(define-public rust-cbindgen-0.20
-  (package
-    (inherit rust-cbindgen-0.24)
-    (name "rust-cbindgen")
-    (version "0.20.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "cbindgen" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1p67vvjkxh07yfizfkvm6bjlv2bywrnl57hshcsz9h2x2qxrgqsi"))))))
-
 (define-public rust-cbindgen-0.19
   (package
     (inherit rust-cbindgen)
@@ -1144,36 +1301,6 @@ rebase.")
     (native-inputs
      (list python-cython))))
 
-(define-public rust-cbindgen-0.17
-  (package
-    (inherit rust-cbindgen)
-    (name "rust-cbindgen")
-    (version "0.17.0")
-    (source (origin
-              (method url-fetch)
-              (uri (crate-uri "cbindgen" version))
-              (file-name (string-append name "-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1f40hxj6h7wqmsj8dzxjm3m421hjqpz2m5zxasbn8kgnr6scykvl"))))
-    (arguments
-     `(#:cargo-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-heck" ,rust-heck-0.3)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-syn" ,rust-syn-1)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-toml" ,rust-toml-0.5))
-       #:cargo-development-inputs
-       (("rust-serial-test" ,rust-serial-test-0.5))))
-    (native-inputs
-     (list python-cython))))
-
 (define-public rust-cbindgen-0.16
   (package
     (inherit rust-cbindgen)
@@ -1203,63 +1330,6 @@ rebase.")
        #:cargo-development-inputs
        (("rust-serial-test" ,rust-serial-test-0.5))))))
 
-(define-public rust-cbindgen-0.15
-  (package
-    (inherit rust-cbindgen)
-    (name "rust-cbindgen")
-    (version "0.15.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "cbindgen" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0dgf49zij9rxnf0lv4k5gcmx1mxcz16czkk6q63anz0xp8ds3xhx"))))
-    (arguments
-     `(#:tests? #false                  ;missing files
-       #:cargo-inputs
-       (("rust-clap" ,rust-clap-2)
-        ("rust-heck" ,rust-heck-0.3)
-        ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-log" ,rust-log-0.4)
-        ("rust-proc-macro2" ,rust-proc-macro2-1)
-        ("rust-quote" ,rust-quote-1)
-        ("rust-serde" ,rust-serde-1)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-syn" ,rust-syn-1)
-        ("rust-tempfile" ,rust-tempfile-3)
-        ("rust-toml" ,rust-toml-0.5))))))
-
-(define-public rust-cbindgen-0.14
-  (package
-    (inherit rust-cbindgen)
-    (name "rust-cbindgen")
-    (version "0.14.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cbindgen" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1ppwqbzydxlg9a24lynzfk60xrvqw4k31mpz1wrk6lbf88zf8nxi"))))))
-
-(define-public rust-cbindgen-0.12
-  (package
-    (inherit rust-cbindgen)
-    (name "rust-cbindgen")
-    (version "0.12.2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "cbindgen" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "13jzbmjz1bmmfr0i80hw6ar484mgabx3hbpb2ynhk0ddqi0yr58m"))))))
-
 (define-public sniffglue
   (package
     (name "sniffglue")
@@ -1869,7 +1939,7 @@ support for Rust.")
 (define-public rust-cargo-c
   (package
     (name "rust-cargo-c")
-    (version "0.9.16+cargo-0.68")
+    (version "0.9.18+cargo-0.69")
     (source
       (origin
         (method url-fetch)
@@ -1878,12 +1948,12 @@ support for Rust.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0k2sw67dx06b45qpvckbhz00kn2ingd89y53pwlzky72hnzv075v"))))
+          "191d0813g4m2g1c1h8ykgrfp00blkbds6pg3zl044iyxaclng29h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
-        ("rust-cargo" ,rust-cargo-0.68)
+        ("rust-cargo" ,rust-cargo-0.69)
         ("rust-cargo-util" ,rust-cargo-util-0.2)
         ("rust-cbindgen" ,rust-cbindgen-0.24)
         ("rust-cc" ,rust-cc-1)
@@ -1896,7 +1966,7 @@ support for Rust.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-derive" ,rust-serde-derive-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-toml" ,rust-toml-0.6))))
+        ("rust-toml" ,rust-toml-0.7))))
     (native-inputs
      (list pkg-config))
     (inputs
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 8e106a9927..4ee5ded5de 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -705,7 +705,7 @@ safety and thread safety guarantees.")
   (rust-bootstrapped-package
    rust-1.67 "1.68.2" "15ifyd5jj8rd979dkakp887hgmhndr68pqaqvd2hqkfdywirqcwk"))
 
-;;; Note: Only the latest versions of Rust are supported and tested.  The
+;;; 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
 ;;; required to build the full Rust bootstrap chain.
@@ -713,7 +713,7 @@ 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.67))
+  (let ((base-rust rust-1.68))
     (package
       (inherit base-rust)
       (outputs (cons "rustfmt" (package-outputs base-rust)))
@@ -807,7 +807,7 @@ safety and thread safety guarantees.")
                ;; We skip the test since it's drastically unlikely Guix's
                ;; packaging will introduce a bug here.
                (lambda _
-                 (delete-file "src/test/ui/parser/shebang/sneaky-attrib.rs")))
+                 (delete-file "tests/ui/parser/shebang/sneaky-attrib.rs")))
              (add-after 'unpack 'patch-process-tests
                (lambda* (#:key inputs #:allow-other-keys)
                  (let ((bash (assoc-ref inputs "bash")))
@@ -831,6 +831,17 @@ safety and thread safety guarantees.")
                                 ((file) file))
                    (("fn ctrl_c_kills_everyone")
                     "#[ignore]\nfn 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.
+               (lambda* (#:key outputs #:allow-other-keys)
+                 (let ((out (assoc-ref outputs "out")))
+                   (substitute* "src/bootstrap/builder.rs"
+                      ((" = rpath.*" all)
+                       (string-append all
+                                      "                "
+                                      "rustflags.arg(\"-Clink-args=-Wl,-rpath="
+                                      out "/lib\");\n"))))))
              (add-after 'configure 'add-gdb-to-config
                (lambda* (#:key inputs #:allow-other-keys)
                  (let ((gdb (assoc-ref inputs "gdb")))
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index a4f43001ca..c0e2e3ab48 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2022 Robby Zambito <contact@robbyzambito.me>
 ;;; Copyright © 2023 Andrew Whatson <whatson@tailcall.au>
-;;; Copyright © 2023 Juliana Sims <jtsims@protonmail.com>
+;;; Copyright © 2023 Juliana Sims <juli@incana.org>
 ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index f2dee7dc64..6d6733c055 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019, 2020, 2021 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,49 +21,43 @@
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system trivial)
   #:use-module (guix download)
-  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)  ; glibc
-  #:use-module (gnu packages check) ;; python-pytest
   #:use-module (gnu packages crates-io)
-  #:use-module (gnu packages libffi) ;; python-cffi
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages python-build)  ;python-setuptools
-  #:use-module (gnu packages rust)
+  #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tls))
 
-(define-public rust-sequoia-autocrypt-0.23
+(define-public rust-sequoia-autocrypt-0.25
   (package
     (name "rust-sequoia-autocrypt")
-    (version "0.23.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "sequoia-autocrypt" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "0skj0dv15341v470g6w5pggsl0iy27qb8h24rr8k6rq7vxdjxl7g"))))
+    (version "0.25.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sequoia-autocrypt" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0796mn8kwrpfc8qzliwyyy62mrg2w0j6ax8929jwrkibvwy2axi2"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-base64" ,rust-base64-0.13)
-         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* "Cargo.toml"
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line))))))))
+     `(#:features '("sequoia-openpgp/crypto-nettle")
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))
+       #:cargo-development-inputs
+       (("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
+    (native-inputs
+     (list clang pkg-config))
+    (inputs
+     (list gmp nettle))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "Deal with Autocrypt encoded data")
     (description "This crate implements low-level functionality like encoding
@@ -71,91 +65,136 @@ and decoding of Autocrypt headers and setup messages.  Note: Autocrypt is more
 than just headers; it requires tight integration with the MUA.")
     (license license:lgpl2.0+)))
 
-(define-public rust-sequoia-ipc-0.26
+(define-public rust-sequoia-cert-store-0.3
+  (package
+    (name "rust-sequoia-cert-store")
+    (version "0.3.2")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sequoia-cert-store" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0gmkqn2f23i2xwjwmnaj3dx9l4ir74dyylkw1qsxawxd95i8dk02"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:features '("sequoia-openpgp/crypto-nettle")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-crossbeam" ,rust-crossbeam-0.8)
+        ("rust-dirs" ,rust-dirs-5)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-openpgp-cert-d" ,rust-openpgp-cert-d-0.1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rusqlite" ,rust-rusqlite-0.29)
+        ("rust-sequoia-net" ,rust-sequoia-net-0.27)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (native-inputs
+     (list clang pkg-config))
+    (inputs
+     (list gmp nettle openssl sqlite))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "Certificate database interface")
+    (description "This package provides a certificate database interface.")
+    (license license:lgpl2.0+)))
+
+(define-public rust-sequoia-ipc-0.30
   (package
     (name "rust-sequoia-ipc")
-    (version "0.26.0")
+    (version "0.30.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "sequoia-ipc" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0xyhz55g1igzjw46f667kqmbbk7pgqy2zf5p13zspr6bwv39s1yk"))))
+          (base32 "1fgqjwaw9rz74y394i3n2a6y2vvy0214daamzswn5ahidhycm3x3"))))
     (build-system cargo-build-system)
     (arguments
-      `(#:skip-build? #t
-        #:cargo-inputs
-        (("rust-anyhow" ,rust-anyhow-1)
-         ("rust-buffered-reader" ,rust-buffered-reader-1)
-         ("rust-capnp-rpc" ,rust-capnp-rpc-0.13)
-         ("rust-ctor" ,rust-ctor-0.1)
-         ("rust-dirs" ,rust-dirs-2)
-         ("rust-fs2" ,rust-fs2-0.4)
-         ("rust-futures" ,rust-futures-0.3)
-         ("rust-lalrpop" ,rust-lalrpop-0.19)
-         ("rust-lalrpop-util" ,rust-lalrpop-util-0.19)
-         ("rust-lazy-static" ,rust-lazy-static-1)
-         ("rust-libc" ,rust-libc-0.2)
-         ("rust-memsec" ,rust-memsec-0.6)
-         ("rust-rand" ,rust-rand-0.7)
-         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
-         ("rust-socket2" ,rust-socket2-0.3)
-         ("rust-tempfile" ,rust-tempfile-3)
-         ("rust-thiserror" ,rust-thiserror-1)
-         ("rust-tokio" ,rust-tokio-0.2)
-         ("rust-tokio-util" ,rust-tokio-util-0.3)
-         ("rust-winapi" ,rust-winapi-0.3))
-        #:cargo-development-inputs
-        (("rust-clap" ,rust-clap-2)
-         ("rust-quickcheck" ,rust-quickcheck-0.9))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* "Cargo.toml"
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line))))))))
+     `(#:features '("sequoia-openpgp/crypto-nettle")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-buffered-reader" ,rust-buffered-reader-1)
+        ("rust-capnp-rpc" ,rust-capnp-rpc-0.14)
+        ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.8)
+        ("rust-ctor" ,rust-ctor-0.1)
+        ("rust-dirs" ,rust-dirs-4)
+        ("rust-fs2" ,rust-fs2-0.4)
+        ("rust-futures" ,rust-futures-0.3)
+        ("rust-lalrpop" ,rust-lalrpop-0.19)
+        ("rust-lalrpop-util" ,rust-lalrpop-util-0.19)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-memsec" ,rust-memsec-0.6)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-socket2" ,rust-socket2-0.4)
+        ("rust-tempfile" ,rust-tempfile-3)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-tokio-util" ,rust-tokio-util-0.7)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-clap" ,rust-clap-3)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-tokio" ,rust-tokio-1))))
+    (native-inputs
+     (list clang pkg-config))
+    (inputs
+     (list nettle))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "Interprocess communication infrastructure for Sequoia")
     (description "Interprocess communication infrastructure for Sequoia")
     (license license:lgpl2.0+)))
 
-(define-public rust-sequoia-net-0.23
+(define-public rust-sequoia-net-0.27
   (package
     (name "rust-sequoia-net")
-    (version "0.23.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "sequoia-net" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-          (base32 "05gv053zqnb00mrai5hva3i4909hn77bnh4z1g4b29cw5qb52cbl"))))
+    (version "0.27.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sequoia-net" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0gyk5765hi3s05l64a744f9a4vynfisja92l51az9dpqgfkiw3wn"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
+     `(#:features '("sequoia-openpgp/crypto-nettle")
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-base64" ,rust-base64-0.13)
         ("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-http" ,rust-http-0.2)
-        ("rust-hyper" ,rust-hyper-0.13)
-        ("rust-hyper-tls" ,rust-hyper-tls-0.4)
+        ("rust-hyper" ,rust-hyper-0.14)
+        ("rust-hyper-tls" ,rust-hyper-tls-0.5)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-native-tls" ,rust-native-tls-0.2)
         ("rust-percent-encoding" ,rust-percent-encoding-2)
         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-trust-dns-client" ,rust-trust-dns-client-0.22)
+        ("rust-trust-dns-resolver" ,rust-trust-dns-resolver-0.22)
         ("rust-url" ,rust-url-2)
         ("rust-zbase32" ,rust-zbase32-0.1))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* "Cargo.toml"
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line))))))))
+       #:cargo-development-inputs
+       (("rust-hyper" ,rust-hyper-0.14)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
+    (native-inputs
+     (list clang pkg-config))
+    (inputs
+     (list gmp nettle openssl))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "Discover and publish OpenPGP certificates over the network")
     (description "This package provides a crate to access keyservers using the
@@ -165,75 +204,86 @@ HKP protocol, and searching and publishing Web Key Directories.")
 (define-public rust-sequoia-openpgp-1
   (package
     (name "rust-sequoia-openpgp")
-    (version "1.6.0")
+    (version "1.16.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "sequoia-openpgp" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "1mdprsijszkg2j6jk1iq7q1z9yikq598y12m5zbv94fs37xlx3qm"))
-        (modules '((guix build utils)))
-        (snippet
-         ;; Remove dependencies on rust-crypto and win32-cng
-         '(let* ((other-crypto-pkgs
-                  (list ;; rust-crypto
-                   "aes" "block-modes" "block-padding" "blowfish" "cast5"
-                   "cipher" "des" "digest" "eax" "ed25519-dalek"
-                   "generic-array" "idea" "md-5" "num-bigint-dig" "rand"
-                   "ripemd160" "rsa" "sha-1" "sha2" "twofish" "typenum"
-                   "x25519-dalek" "p256" "rand_core" "rand_core" "ecdsa"
-                   ;; win32-cng
-                   "eax" "winapi" "win-crypto-ng" "ed25519-dalek"
-                   "num-bigint-dig"))
-                 (pkgs-pattern (pk (string-join
-                                    (list "^\\[dependencies\\.("
-                                          (string-join other-crypto-pkgs "|")
-                                          ")\\]")
-                                    ""))))
-            (substitute* "Cargo.toml"
-              ((pkgs-pattern line name) (string-append "[off." name "]"))
-              (("^crypto-cng =" line) (string-append "# " line))
-              (("^crypto-rust =" line) (string-append "# " line))
-              (("^\\[(target\\.\"cfg\\(windows\\))" line name)
-               (string-append "[off." name)))))))
+         (base32 "1z0xl7hnm1p51pyhwdqyzcnl2dhzfjnvssz7hi15ps1hk4zzzvrh"))))
     (build-system cargo-build-system)
     (native-inputs
      (list clang pkg-config))
     (inputs
      (list gmp nettle))
     (arguments
-     `(#:skip-build? #t
+     `(#:features '("crypto-nettle")
+       #:cargo-test-flags
+       (list "--release" "--"
+             ;; TODO: Figure out how this test is supposed to fail.
+             "--skip=parse::test::panic_on_short_zip")
        #:cargo-inputs
-       (("rust-anyhow" ,rust-anyhow-1)
-        ("rust-backtrace" ,rust-backtrace-0.3)
-        ("rust-base64" ,rust-base64-0.13)
+       (("rust-aes" ,rust-aes-0.8)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-base64" ,rust-base64-0.21)
+        ("rust-block-padding" ,rust-block-padding-0.3)
+        ("rust-blowfish" ,rust-blowfish-0.9)
+        ("rust-botan" ,rust-botan-0.10)
         ("rust-buffered-reader" ,rust-buffered-reader-1)
         ("rust-bzip2" ,rust-bzip2-0.4)
+        ("rust-cast5" ,rust-cast5-0.11)
+        ("rust-cfb-mode" ,rust-cfb-mode-0.8)
         ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-cipher" ,rust-cipher-0.4)
+        ("rust-des" ,rust-des-0.8)
+        ("rust-digest" ,rust-digest-0.10)
         ("rust-dyn-clone" ,rust-dyn-clone-1)
+        ("rust-eax" ,rust-eax-0.5)
+        ("rust-ecb" ,rust-ecb-0.1)
+        ("rust-ecdsa" ,rust-ecdsa-0.16)
+        ("rust-ed25519" ,rust-ed25519-1)
+        ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
         ("rust-flate2" ,rust-flate2-1)
-        ("rust-idna" ,rust-idna-0.2)
-        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-generic-array" ,rust-generic-array-0.14)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-idea" ,rust-idea-0.5)
+        ("rust-idna" ,rust-idna-0.3)
         ("rust-lalrpop" ,rust-lalrpop-0.19)
         ("rust-lalrpop-util" ,rust-lalrpop-util-0.19)
-        ("rust-lazy-static" ,rust-lazy-static-1)  ;; 1.4.0
-        ("rust-libc" ,rust-libc-0.2)  ;; 0.2.66
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-md-5" ,rust-md-5-0.10)
         ("rust-memsec" ,rust-memsec-0.6)
         ("rust-nettle" ,rust-nettle-7)
-        ("rust-plotters" ,rust-plotters-0.3)
+        ("rust-num-bigint-dig" ,rust-num-bigint-dig-0.8)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-openssl" ,rust-openssl-0.10)
+        ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+        ("rust-p256" ,rust-p256-0.13)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rand-core" ,rust-rand-core-0.6)
         ("rust-regex" ,rust-regex-1)
         ("rust-regex-syntax" ,rust-regex-syntax-0.6)
+        ("rust-ripemd" ,rust-ripemd-0.1)
+        ("rust-rsa" ,rust-rsa-0.9)
+        ("rust-sha-1" ,rust-sha-1-0.10)
         ("rust-sha1collisiondetection" ,rust-sha1collisiondetection-0.2)
+        ("rust-sha2" ,rust-sha2-0.10)
         ("rust-thiserror" ,rust-thiserror-1)
-        ("rust-unicode-normalization" ,rust-unicode-normalization-0.1)
+        ("rust-twofish" ,rust-twofish-0.7)
+        ("rust-typenum" ,rust-typenum-1)
+        ("rust-win-crypto-ng" ,rust-win-crypto-ng-0.5)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-x25519-dalek-ng" ,rust-x25519-dalek-ng-1)
         ("rust-xxhash-rust" ,rust-xxhash-rust-0.8))
        #:cargo-development-inputs
-       ;; keep the development-inputs to allow running tests easily
-       (("rust-criterion" ,rust-criterion-0.3)
-        ("rust-quickcheck" ,rust-quickcheck-0.9)
-        ("rust-rand" ,rust-rand-0.7)
-        ("rust-rpassword" ,rust-rpassword-5))))
+       (("rust-criterion" ,rust-criterion-0.4)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-rpassword" ,rust-rpassword-6))))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "OpenPGP data types and associated machinery")
     (description "This crate aims to provide a complete implementation of
@@ -281,6 +331,40 @@ This Guix package is built to use the nettle cryptographic library.")
         ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9)
         ("rust-time" ,rust-time-0.1))))))
 
+(define-public rust-sequoia-policy-config-0.6
+  (package
+    (name "rust-sequoia-policy-config")
+    (version "0.6.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sequoia-policy-config" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0x42h22kng4dsbfr0a6zdf2j9bcq14r0yr6xdw6rrggj139lazbm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:features '("sequoia-openpgp/crypto-nettle")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-toml" ,rust-toml-0.5))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))))
+    (native-inputs
+     (list clang pkg-config))
+    (inputs
+     (list gmp nettle))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "Configure Sequoia using a configuration file")
+    (description "Configure Sequoia using a configuration file.")
+    (license license:lgpl2.0+)))
+
 (define-public rust-sequoia-rfc2822-0.9
   (package
     (name "rust-sequoia-rfc2822")
@@ -309,48 +393,103 @@ Although the above appear simple to parse, RFC 2822's whitespace and comment
 rules are rather complex.  This crate implements the whole grammar." )
     (license license:gpl3)))
 
+(define-public rust-sequoia-wot-0.8
+  (package
+    (name "rust-sequoia-wot")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "sequoia-wot" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0rcp7ndjpdd4dkryhkkhakc8axbj93c1gr9qxxksdvrik803alfg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:features '("sequoia-openpgp/crypto-nettle")
+       #:cargo-test-flags
+       (list "--release" "--"
+             ;; Not all files included.
+             "--skip=gpg_trust_roots")
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-chrono" ,rust-chrono-0.4)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-clap-mangen" ,rust-clap-mangen-0.2)
+        ("rust-crossbeam" ,rust-crossbeam-0.8)
+        ("rust-dot-writer" ,rust-dot-writer-0.1)
+        ("rust-enumber" ,rust-enumber-0.3)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-openpgp-cert-d" ,rust-openpgp-cert-d-0.1)
+        ("rust-sequoia-cert-store" ,rust-sequoia-cert-store-0.3)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-sequoia-policy-config" ,rust-sequoia-policy-config-0.6)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-tokio" ,rust-tokio-1))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-2)
+        ("rust-predicates" ,rust-predicates-2)
+        ("rust-quickcheck" ,rust-quickcheck-1)
+        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
+    (inputs
+     (list nettle openssl sqlite))
+    (native-inputs
+     (list clang pkg-config))
+    (home-page "https://sequoia-pgp.org/")
+    (synopsis "Implementation of OpenPGP's web of trust")
+    (description "An implementation of OpenPGP's web of trust.")
+    (license license:lgpl2.0+)))
+
 (define-public sequoia-sq
   (package
     (name "sequoia-sq")
-    (version "0.25.0")
+    (version "0.30.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "sequoia-sq" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0j26vpp98i7zwwhqsvwj0zknj4s0s0ilfqpynj1vgd5laanhyr0d"))))
+          (base32 "0l3mlhvh93b8s1853gyzzfh1dznjdhbsbyxxcm3bbyxmkyr74wkd"))))
     (build-system cargo-build-system)
     (inputs
-     (list nettle openssl))
+     (list nettle openssl sqlite))
     (native-inputs
      (list clang pkg-config))
     (arguments
-     `(#:tests? #f  ;; tests require data-files not provided in the package
+     `(#:tests? #f  ; `(dyn std::fmt::Display + 'static)` cannot be sent between threads safely
        #:install-source? #f
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-buffered-reader" ,rust-buffered-reader-1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-chrono" ,rust-chrono-0.4)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-clap" ,rust-clap-2)
-        ("rust-itertools" ,rust-itertools-0.9)
-        ("rust-rpassword" ,rust-rpassword-5)
-        ("rust-sequoia-autocrypt" ,rust-sequoia-autocrypt-0.23)
-        ("rust-sequoia-net" ,rust-sequoia-net-0.23)
+        ("rust-clap" ,rust-clap-4)
+        ("rust-clap-complete" ,rust-clap-complete-4)
+        ("rust-clap-mangen" ,rust-clap-mangen-0.2)
+        ("rust-dirs" ,rust-dirs-5)
+        ("rust-dot-writer" ,rust-dot-writer-0.1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-rpassword" ,rust-rpassword-6)
+        ("rust-sequoia-autocrypt" ,rust-sequoia-autocrypt-0.25)
+        ("rust-sequoia-cert-store" ,rust-sequoia-cert-store-0.3)
+        ("rust-sequoia-net" ,rust-sequoia-net-0.27)
         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
+        ("rust-sequoia-wot" ,rust-sequoia-wot-0.8)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-subplot-build" ,rust-subplot-build-0.7)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-term-size" ,rust-term-size-0.3)
-        ("rust-tokio" ,rust-tokio-0.2))
+        ("rust-tokio" ,rust-tokio-1))
        #:cargo-development-inputs
-       (("rust-assert-cli" ,rust-assert-cli-0.6))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* "Cargo.toml"
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line))))))))
+       (("rust-assert-cmd" ,rust-assert-cmd-2)
+        ("rust-fehler" ,rust-fehler-1)
+        ("rust-predicates" ,rust-predicates-2)
+        ("rust-subplotlib" ,rust-subplotlib-0.7))))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "Command-line frontend for Sequoia OpenPGP")
     (description "This package provides the command-line frontend for Sequoia
@@ -362,37 +501,28 @@ This Guix package is built to use the nettle cryptographic library.")
 (define-public sequoia-sqv
   (package
     (name "sequoia-sqv")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "sequoia-sqv" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-          (base32 "0nrfjn64fm038x5dssipf7jxi27z741m5n5a7zsa9768zab1hr9d"))))
+          (base32 "0vzqahx7dk1wh2vp7lbzjgah8v7fqpvdf0dq0dydi9695ffm99lc"))))
     (build-system cargo-build-system)
     (inputs
      (list nettle openssl))
     (native-inputs
      (list clang pkg-config))
     (arguments
-     `(#:tests? #f  ;; tests require data-files not provided in the package
-       #:install-source? #f
+     `(#:install-source? #f
        #:cargo-inputs
        (("rust-anyhow" ,rust-anyhow-1)
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-clap" ,rust-clap-2)
-        ("rust-clap" ,rust-clap-2)
         ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1))
        #:cargo-development-inputs
-       (("rust-assert-cli" ,rust-assert-cli-0.6))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* "Cargo.toml"
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line))))))))
+       (("rust-assert-cli" ,rust-assert-cli-0.6))))
     (home-page "https://sequoia-pgp.org/")
     (synopsis "Simple OpenPGP signature verification program")
     (description "@code{sqv} verifies detached OpenPGP signatures.  It is a
@@ -402,150 +532,75 @@ constraints on the signature into account.
 This Guix package is built to use the nettle cryptographic library.")
     (license license:lgpl2.0+)))
 
-(define (sequoia-package-origin version)
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "https://gitlab.com/sequoia-pgp/sequoia.git")
-          (commit (string-append "openpgp/v" version))))
-    (sha256
-     (base32 "1cq1xgvllbpii5hfl3wlia2ayznpvhv8lq8g8ygwxga86ijg98lq"))
-    (file-name (git-file-name "sequoia" version))
-    (patches (search-patches "libsequoia-remove-store.patch"
-                             "libsequoia-fix-ffi-Makefile.patch"))))
-
-(define-public libsequoia
+(define-public sequoia-wot
   (package
-    (name "libsequoia")
-    (version "0.22.0")
-    (source (sequoia-package-origin "1.6.0"))
-    (build-system cargo-build-system)
-    (outputs '("out" "python"))
-    (native-inputs
-     (list clang pkg-config python-pytest python-pytest-runner
-           python-wrapper))
-    (inputs
-     (list gmp nettle openssl python python-cffi))
+    (inherit rust-sequoia-wot-0.8)
+    (name "sequoia-wot")
     (arguments
-     (list
-      #:tests? #f ;; TODO make python tests find the shared object file
-      #:cargo-inputs
-      `(("rust-anyhow" ,rust-anyhow-1)
-        ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libc" ,rust-libc-0.2)
-        ("rust-memsec" ,rust-memsec-0.6)
-        ("rust-native-tls" ,rust-native-tls-0.2)
-        ("rust-proc-macro2" ,rust-proc-macro2-1)  ;; for ffi-macros
-        ("rust-quote" ,rust-quote-1)  ;; for ffi-macros
-        ("rust-sequoia-ipc" ,rust-sequoia-ipc-0.26)
-        ("rust-sequoia-net" ,rust-sequoia-net-0.23)
-        ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-1)
-        ("rust-sha2" ,rust-sha2-0.8)  ;; for ffi-macros
-        ("rust-tokio" ,rust-tokio-1))
-      #:cargo-development-inputs
-      `(("rust-filetime" ,rust-filetime-0.2))
-      #:phases
-      #~(modify-phases %standard-phases
-          (add-after 'configure 'set-PREFIX
-            (lambda _
-              (setenv "PREFIX" #$output)))
-          (replace 'build
-            (lambda _
-              (invoke "make" "-C" "openpgp-ffi" "build-release")
-              (invoke "make" "-C" "ffi" "build-release")))
-          (delete 'package)  ;; cargo can't package a multi-crate workspace
-          (replace 'check
-            (lambda* (#:key tests?  #:allow-other-keys)
-              (when tests?
-                (begin
-                  (invoke "make" "-C" "openpgp-ffi" "check")
-                  (invoke "make" "-C" "ffi" "check")))))
-          (replace 'install
-            (lambda _
-              (invoke "make" "-C" "openpgp-ffi" "install")
-              (invoke "make" "-C" "ffi" "install")))
-          (add-after 'configure 'fix-build-environment
-            (lambda _
-              (delete-file "Cargo.toml")
-              (symlink "../.cargo" "openpgp-ffi/.cargo")
-              (symlink "../.cargo" "ffi/.cargo")
-              (for-each delete-file-recursively
-                       (find-files "guix-vendor" "^sequoia-[0-9]+\\.*"
-                                   #:directories? #t))))
-          (add-after 'unpack 'fix-for-python-output
-            (lambda _
-              (substitute* "ffi/lang/python/Makefile"
-                ;; adjust prefix for python package
-                (("PREFIX\\s*\\??=.*")
-                (string-append "PREFIX = " (pk #$output:python) "\n"))
-                ;; fix rpath to include the main package
-                (("\\WLDFLAGS=" text)
-                 (string-append text "'-Wl,-rpath=" #$output "/lib '"))
-                ;; make setuptools install into the prefix, see
-                ;; guix/build/python-build-system.scm for explanation
-               (("\\ssetup.py\\s+install\\s")
-                " setup.py install --root=/ --single-version-externally-managed "))))
-          (add-after 'unpack 'fix-Makefiles
-            (lambda _
-              (substitute* '("openpgp-ffi/Makefile")
-                (("^check-headers: force-build") "check-headers:"))))
-          (add-after 'unpack 'remove-other-crypto-features
-           (lambda _
-             (substitute* '("openpgp-ffi/Cargo.toml" "ffi/Cargo.toml")
-               (("^crypto-cng =" line) (string-append "# " line))
-               (("^crypto-rust =" line) (string-append "# " line)))))
-          (add-after 'unpack 'fix-missing-feature
-            (lambda _
-              (substitute* '("ffi/Cargo.toml")
-               (("^(tokio = .* features = \\[)" line)
-                (string-append line "\"net\", ")))))
-          (add-after 'unpack 'unbundle-crates
-            (lambda _
-              (substitute* '("openpgp-ffi/Cargo.toml" "ffi/Cargo.toml")
-                (("path = \"\\.\\./(openpgp|store|net|ipc)\",") "")))))))
-    (home-page "https://sequoia-pgp.org")
-    (synopsis "C/FFI interfaces for Sequoia-PGP")
-    (description "This package provides a C and FFI interface to both the
-low-level and a high-level API of Sequoia-PGP.
+     (substitute-keyword-arguments (package-arguments rust-sequoia-wot-0.8)
+       ((#:install-source? _ #t) #f)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (add-after 'install 'install-more
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out   (assoc-ref outputs "out"))
+                      (share (string-append out "/share"))
+                      (man1  (string-append share "/man/man1")))
+                 (for-each (lambda (file)
+                             (install-file file man1))
+                           (find-files "target/release" "\\.1$"))
+                 ;; TODO: Install _sq-wot.ps1, sq-wot.elv
+                 (mkdir-p (string-append out "/etc/bash_completion.d"))
+                 (mkdir-p (string-append share "/fish/vendor_completions.d"))
+                 (copy-file (car (find-files "target/release" "sq-wot.bash"))
+                            (string-append out "/etc/bash_completion.d/sq-wot"))
+                 (copy-file (car (find-files "target/release" "sq-wot.fish"))
+                            (string-append
+                              share "/fish/vendor_completions.d/sq-wot.fish"))
+                 (install-file (car (find-files "target/release" "_sq-wot"))
+                               (string-append
+                                 share "/zsh/site-functions")))))))))
+    (description "An implementation of OpenPGP's web of trust.
 
-Use with caution: This is an \"unofficial\" package, which are not officially
-released, but part of the Sequoia-PGP v1.6.0 archive.  So this package might
-even go away.")
-    (license license:lgpl2.0+)))
+This Guix package is built to use the nettle cryptographic library.")))
+
+;;
 
 (define-public sequoia
   (package
     (name "sequoia")
-    (version "1.6.0")
+    (version "1.16.0")
     (source #f)
     (build-system trivial-build-system)
-    (outputs '("out" "python"))
-    (inputs
-     (list glibc ;; for ldconfig in make-dynamic-linker-cache
-           libsequoia
-           `(,libsequoia "python")
-           sequoia-sq
-           sequoia-sqv))
     (arguments
      (list
-      #:modules '((guix build utils) (guix build gnu-build-system)
-                  (guix build gremlin) (guix elf))
+      #:modules '((guix build utils)
+                  (guix build union)
+                  (guix build gnu-build-system)
+                  (guix build gremlin)
+                  (guix elf))
       #:builder
       #~(begin
-          (use-modules (guix build utils) (guix build gnu-build-system))
+          (use-modules (guix build utils)
+                       (guix build union)
+                       (guix build gnu-build-system)
+                       (ice-9 match))
           (let ((make-dynamic-linker-cache
                  (assoc-ref %standard-phases 'make-dynamic-linker-cache))
                 (ld.so.cache
                  (string-append #$output "/etc/ld.so.cache")))
-            (copy-recursively #$libsequoia #$output)
-            (copy-recursively #$sequoia-sq #$output)
+            (match %build-inputs
+                   (((names . directories) ...)
+                    (union-build #$output directories)))
             (delete-file ld.so.cache)
-            (copy-recursively #$sequoia-sqv #$output)
-            (delete-file ld.so.cache)
-            (copy-recursively #$libsequoia:python #$output:python)
-           (setenv "PATH"
-                   (string-append (getenv "PATH") ":" #$glibc "/sbin"))
-           (make-dynamic-linker-cache #:outputs %outputs)))))
+            (setenv "PATH"
+                    (string-append (getenv "PATH") ":" #$glibc "/sbin"))
+            (make-dynamic-linker-cache #:outputs %outputs)))))
+    (inputs
+     (list ;glibc ;; for ldconfig in make-dynamic-linker-cache
+           sequoia-sq
+           sequoia-sqv
+           sequoia-wot))
     (home-page "https://sequoia-pgp.org")
     (synopsis "New OpenPGP implementation (meta-package)")
     (description "Sequoia is a new OpenPGP implementation, written in Rust,
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index aef22efd01..8042fab12f 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2022 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 David Pflug <david@pflug.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -602,36 +603,36 @@ use of experts and novices alike.")
     (license license:bsd-2)))
 
 (define-public scsh
-  (let ((commit "114432435e4eadd54334df6b37fcae505079b49f")
-        (revision "1"))
+  (let ((commit "4acf6e4ed7b65b46186ef0c9c2a1e10bef8dc052")
+        (revision "0"))
     (package
       (name "scsh")
-      (version (string-append "0.0.0-" revision "." (string-take commit 7)))
+      (version (git-version "0.7" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/scheme/scsh")
                (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
+         (file-name (git-file-name name version))
          (sha256
           (base32
-           "1ghk08akiz7hff1pndi8rmgamgcrn2mv9asbss9l79d3c2iaav3q"))
+           "1czrp808v5gs0ci5lmkp3wr3gfkrb3vd5b2iw2hz1bpqgaf6bxpv"))
          (patches (search-patches "scsh-nonstring-search-path.patch"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:test-target "test"
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'replace-rx
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let* ((rx (assoc-ref inputs "scheme48-rx"))
-                      (rxpath (string-append rx "/share/scheme48-"
-                                             ,(package-version scheme48)
+       (list
+        #:test-target "test"
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-before 'configure 'replace-rx
+              (lambda _
+                (let ((rxpath (string-append #$scheme48-rx
+                                             "/share/scheme48-"
+                                             #$(package-version scheme48)
                                              "/rx")))
-                 (delete-file-recursively "rx")
-                 (symlink rxpath "rx"))
-               #t)))))
+                  (delete-file-recursively "rx")
+                  (symlink rxpath "rx")))))))
       (inputs
        (list scheme48 scheme48-rx))
       (native-inputs
@@ -788,26 +789,24 @@ The OpenBSD Korn Shell is a cleaned up and enhanced ksh.")
 (define-public loksh
   (package
     (name "loksh")
-    (version "6.9")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/dimkr/loksh")
-             (commit version)
-             ;; Include the ‘lolibc’ submodule, a static compatibility library
-             ;; created for and currently used only by loksh.
-             (recursive? #t)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0x33plxqhh5202hgqidgccz5hpg8d2q71ylgnm437g60mfi9z0px"))))
+    (version "7.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/dimkr/loksh")
+                    (commit version)
+                    ;; Include the ‘lolibc’ submodule, a static compatibility library
+                    ;; created for and currently used only by loksh.
+                    (recursive? #t)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1miydvb79wagckchinp189l8i81f08lqajg5jngn77m4x4gwjf3n"))))
     (build-system meson-build-system)
-    (inputs
-     (list ncurses))
-    (native-inputs
-     (list pkg-config))
+    (inputs (list ncurses))
+    (native-inputs (list pkg-config))
     (arguments
-     `(#:tests? #f))                    ; no tests included
+     `(#:tests? #f)) ;no tests included
     (home-page "https://github.com/dimkr/loksh")
     (synopsis "Korn Shell from OpenBSD")
     (description
@@ -858,7 +857,7 @@ Shell (pdksh).")
 (define-public oil
   (package
     (name "oil")
-    (version "0.15.0")
+    (version "0.17.0")
     (source
      ;; oil's sources contain a modified version of CPython 2.7.13.
      ;; According to https://www.oilshell.org/blog/2017/05/05.html
@@ -871,7 +870,7 @@ Shell (pdksh).")
        (uri (string-append "https://www.oilshell.org/download/oil-"
                            version ".tar.gz"))
        (sha256
-        (base32 "1yy4523lbwkb0abnnvp4v08nv94isxb16wjryrp820idb90c1zfb"))))
+        (base32 "01b67dq56iam44d7c81ba9w62jjnjx2z7wm928rkc1ff6bacm37r"))))
     (build-system gnu-build-system)
     (arguments
      (list #:strip-binaries? #f         ; strip breaks the binary
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 81fbfd87a1..3a5d5ef59b 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -198,16 +198,15 @@ a server that supports the SSH-2 protocol.")
 (define-public openssh
   (package
    (name "openssh")
-   (version "9.3p2")
-   (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://openbsd/OpenSSH/portable/"
-                                 "openssh-" version ".tar.gz"))
-             (patches (search-patches "openssh-hurd.patch"
-                                      "openssh-trust-guix-store-directory.patch"))
-             (sha256
-              (base32
-               "1s3nqv57r3l7avsdkzwd575dvxra8h19xpqczl0z3cvcgwabw3i0"))))
+   (version "9.4p1")
+   (source
+    (origin
+      (method url-fetch)
+      (uri (string-append "mirror://openbsd/OpenSSH/portable/"
+                          "openssh-" version ".tar.gz"))
+      (patches (search-patches "openssh-trust-guix-store-directory.patch"))
+      (sha256
+       (base32 "11bahrik5qi337m954g5479f63cxnxdch076ng7668fvi28gs21n"))))
    (build-system gnu-build-system)
    (arguments
     (list
diff --git a/gnu/packages/stalonetray.scm b/gnu/packages/stalonetray.scm
deleted file mode 100644
index 65732313fe..0000000000
--- a/gnu/packages/stalonetray.scm
+++ /dev/null
@@ -1,49 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Raimon Grau <raimonster@gmail.com>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages stalonetray)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system gnu)
-  #:use-module ((guix licenses) #:select (gpl2+))
-  #:use-module (gnu packages xorg))
-
-(define-public stalonetray
-  (package
-    (name "stalonetray")
-    (version "0.8.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "mirror://sourceforge/stalonetray/stalonetray/stalonetray-"
-                       version "/stalonetray-" version ".tar.bz2"))
-       (sha256
-        (base32
-         "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n"))))
-    (inputs (list libx11))
-    (build-system gnu-build-system)
-    (home-page "https://stalonetray.sourceforge.net")
-    (synopsis "Standalone freedesktop.org and KDE systray implementation")
-    (description
-     "Stalonetray is a stand-alone freedesktop.org and KDE system
-tray (notification area) for X Window System/X11 (e.g. X.Org or XFree86).  It
-has full XEMBED support and minimal dependencies: an X11 lib only.  Stalonetray
-works with virtually any EWMH-compliant window manager.")
-    (license gpl2+)))
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 68c7fce26c..ac00d396b5 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -224,22 +224,21 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.31")
+    (version "2.32")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "1nn1akjc3l29gcr0n6g7y39qvmbw8vf5sfmnxd794sgmbki7vbsb"))))
+        (base32 "1rp67fqsnsknlhlq75vgdjg9rggx8j7wbmixvps967m2f92m2qsv"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("openssl" ,openssl)
        ("pkg-config" ,pkg-config)
        ;; For building documentation.
-       ,@(if (member (%current-system)
-                     (package-transitive-supported-systems ruby-asciidoctor))
+       ,@(if (supported-package? ruby-asciidoctor)
            `(("asciidoctor" ,ruby-asciidoctor))
            `())))
     (inputs
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index fa7c2fe30c..d01c31e7db 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -903,6 +903,89 @@ mathematical or other technical packages.")
     (description "This is the TeX Live scheme for installing ConTeXt.")
     (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
 
+(define-public texlive-scheme-gust
+  (package
+    (name "texlive-scheme-gust")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-amslatex-primer
+           texlive-amstex
+           texlive-antt
+           texlive-bibtex8
+           texlive-collection-basic
+           texlive-collection-context
+           texlive-collection-fontsrecommended
+           texlive-collection-fontutils
+           texlive-collection-langpolish
+           texlive-collection-latex
+           texlive-collection-latexrecommended
+           texlive-collection-metapost
+           texlive-collection-plaingeneric
+           texlive-collection-xetex
+           texlive-comment
+           texlive-comprehensive
+           texlive-concrete
+           texlive-cyklop
+           texlive-dvidvi
+           texlive-dviljk
+           texlive-fontinstallationguide
+           texlive-gustprog
+           texlive-impatient
+           texlive-iwona
+           texlive-metafont-beginners
+           texlive-metapost-examples
+           texlive-poltawski
+           texlive-seetexk
+           texlive-seminar
+           texlive-tds
+           texlive-tex4ht
+           texlive-texdoc))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "GUST TeX Live scheme")
+    (description
+     "This is the GUST TeX Live scheme: it is a set of files sufficient to
+typeset Polish plain TeX, LaTeX and ConTeXt documents in PostScript or PDF.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-scheme-medium
+  (package
+    (name "texlive-scheme-medium")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-collection-basic
+           texlive-collection-binextra
+           texlive-collection-context
+           texlive-collection-fontsrecommended
+           texlive-collection-fontutils
+           texlive-collection-langczechslovak
+           texlive-collection-langenglish
+           texlive-collection-langeuropean
+           texlive-collection-langfrench
+           texlive-collection-langgerman
+           texlive-collection-langitalian
+           texlive-collection-langpolish
+           texlive-collection-langportuguese
+           texlive-collection-langspanish
+           texlive-collection-latex
+           texlive-collection-latexrecommended
+           texlive-collection-luatex
+           texlive-collection-mathscience
+           texlive-collection-metapost
+           texlive-collection-plaingeneric
+           texlive-collection-xetex))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Small scheme with additional packages and languages")
+    (description
+     "This is the medium TeX Live collection: it contains plain TeX,
+LaTeX, many recommended packages, and support for most European languages.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
 (define-public texlive-scheme-minimal
   (package
     (name "texlive-scheme-minimal")
@@ -970,6 +1053,81 @@ variant.  It adds XeTeX, MetaPost, and some recommended packages to
 @code{scheme-basic}.")
     (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
 
+(define-public texlive-scheme-tetex
+  (package
+    (name "texlive-scheme-tetex")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-acronym
+           texlive-amslatex-primer
+           texlive-bbm
+           texlive-bbm-macros
+           texlive-bbold
+           texlive-bibtex8
+           texlive-cmbright
+           texlive-collection-basic
+           texlive-collection-context
+           texlive-collection-fontsrecommended
+           texlive-collection-fontutils
+           texlive-collection-formatsextra
+           texlive-collection-langcjk
+           texlive-collection-langcyrillic
+           texlive-collection-langczechslovak
+           texlive-collection-langenglish
+           texlive-collection-langeuropean
+           texlive-collection-langfrench
+           texlive-collection-langgerman
+           texlive-collection-langgreek
+           texlive-collection-langitalian
+           texlive-collection-langother
+           texlive-collection-langpolish
+           texlive-collection-langportuguese
+           texlive-collection-langspanish
+           texlive-collection-latex
+           texlive-collection-latexrecommended
+           texlive-collection-mathscience
+           texlive-collection-metapost
+           texlive-collection-pictures
+           texlive-collection-plaingeneric
+           texlive-collection-pstricks
+           texlive-ctie
+           texlive-cweb
+           texlive-detex
+           texlive-dtl
+           texlive-dvi2tty
+           texlive-dvicopy
+           texlive-dvidvi
+           texlive-dviljk
+           texlive-eplain
+           texlive-eulervm
+           texlive-gentle
+           texlive-lshort-english
+           texlive-mltex
+           texlive-multirow
+           texlive-nomencl
+           texlive-patgen
+           texlive-pst-pdf
+           texlive-rsfs
+           texlive-seetexk
+           texlive-siunits
+           texlive-subfigure
+           texlive-supertabular
+           texlive-tamethebeast
+           texlive-tds
+           texlive-tex-refs
+           texlive-tie
+           texlive-web
+           texlive-xpdfopen))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "teTeX scheme (more than medium, but nowhere near full)")
+    (description
+     "Larger than medium, this TeX Live scheme is nearly equivalent to the
+teTeX distribution that was maintained by Thomas Esser.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
 ;; This package must be located before any package adding it to its native
 ;; inputs.
 (define-public texlive-updmap.cfg
@@ -1089,6 +1247,50 @@ TGA. Accepted output formats are: EPS, PCL5, PDF, PDF1, PBM, PGM, PPM, PS,
 markedEPS, markedPS, PNG, XWD, BMP, TIFF, JPEG, GIF, XPM.")
     (license license:gpl3+)))
 
+(define-public texlive-aalok
+  (package
+    (name "texlive-aalok")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/aalok/" "source/latex/aalok/"
+                   "tex/latex/aalok/")
+             (base32
+              "0vpvqv60p5v3frdqa5r8k9k4zxk0icma5blw9dr6jhqfzf6lc3jy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/aalok")
+    (synopsis "LaTeX class file for the Marathi journal @emph{Aalok}")
+    (description
+     "This package provides the class file for typesetting @emph{Aalok},
+a Marathi journal, with LaTeX.")
+    (license (list license:gpl3+
+                   ;; Aalok (आलोक) copyleft license v1.0+.
+                   (license:fsf-free "file://doc/latex/aalok/README.txt")
+                   license:fdl1.3+))))
+
+(define-public texlive-abc
+  (package
+    (name "texlive-abc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/abc/" "source/latex/abc/"
+                   "tex/latex/abc/")
+             (base32
+              "1vywrv35h65gkxipc7d26k32r04fk61kfkkk9bj3zsmxsw1v3r8d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/abc")
+    (synopsis "Support ABC music notation in LaTeX")
+    (description
+     "The abc package lets you include lines of music written in the ABC Plus
+language.  The package will then employ the @code{\\write18} facility to
+convert your notation to PostScript (using the established utility
+@command{abcm2ps}) and hence to the format needed for inclusion in your
+document.")
+    (license license:lppl1.2+)))
+
 (define-public texlive-accents
   (package
     (name "texlive-accents")
@@ -1201,6 +1403,41 @@ adaptation for working with Babel.")
 controlling the searches that the package does.")
     (license license:lppl)))
 
+(define-public texlive-adtrees
+  (package
+    (name "texlive-adtrees")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/adtrees/" "tex/latex/adtrees/")
+             (base32
+              "0ypb609wvw3mvs7bf2mwa7r7v4frxjhfll8d1sqfry3dv3kr13pq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/adtrees")
+    (synopsis "Macros for drawing adpositional trees")
+    (description
+     "This package provides a means to write adpositional trees, a formalism
+devoted to representing natural language expressions.")
+    (license license:gpl3+)))
+
+(define-public texlive-adobemapping
+  (package
+    (name "texlive-adobemapping")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "fonts/cmap/adobemapping/")
+             (base32
+              "1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/adobemapping")
+    (synopsis "Adobe CMap and PDF mapping files")
+    (description
+     "The package comprises the collection of CMap and PDF mapping files made
+available for distribution by Adobe.")
+    (license license:bsd-3)))
+
 (define-public texlive-afm2pl
   (package
     (name "texlive-afm2pl")
@@ -1224,6 +1461,25 @@ a @file{.tfm} (TeX Font Metric) file.  It normally preserves kerns and
 ligatures, but also offers additional control over them.")
     (license license:gpl2)))
 
+(define-public texlive-akshar
+  (package
+    (name "texlive-akshar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/akshar/" "source/latex/akshar/"
+                   "tex/latex/akshar/")
+             (base32
+              "17xiqalqpw64pgvmpsa41qf6y5fhg720rpbr57kv8ipvvm1fn3n5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/akshar")
+    (synopsis "Support for syllables in the Devanagari script")
+    (description
+     "This LaTeX3 package provides macros and interfaces to work with
+Devanagari characters and syllables in a more correct way.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-albatross
   (package
     (name "texlive-albatross")
@@ -1247,6 +1503,33 @@ ligatures, but also offers additional control over them.")
 a given (Unicode) glyph.  It relies on Fontconfig.")
     (license license:bsd-3)))
 
+(define-public texlive-aleph
+  (package
+    (name "texlive-aleph")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/aleph/base/" "doc/man/man1/aleph.1"
+                   "doc/man/man1/aleph.man1.pdf")
+             (base32
+              "0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "aleph")))
+    (propagated-inputs
+     (list texlive-cm
+           texlive-hyphen-base
+           texlive-knuth-lib
+           texlive-lambda
+           texlive-latex
+           texlive-plain))
+    (home-page "https://ctan.org/pkg/aleph")
+    (synopsis "Extended TeX")
+    (description
+     "This package provides a development of Omega, using most of the
+extensions of TeX, itself developed for e-TeX.")
+    (license license:gpl3+)))
+
 (define-public texlive-alg
   (package
     (name "texlive-alg")
@@ -1426,6 +1709,45 @@ text which spans over multiple lines.")
 math environments.")
     (license license:lppl1.3c)))
 
+(define-public texlive-alkalami
+  (package
+    (name "texlive-alkalami")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/alkalami/"
+                   "fonts/truetype/public/alkalami/")
+             (base32
+              "0979xhsjar0gwjp9yqp0kaf4gp4z715gr2kdb8dkqg8zzlkqhgzk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/alkalami")
+    (synopsis "Font for Arabic-based writing systems in Nigeria and Niger")
+    (description
+     "This font is designed for Arabic-based writing systems in the Kano
+region of Nigeria and Niger.")
+    (license license:silofl1.1)))
+
+(define-public texlive-alpha-persian
+  (package
+    (name "texlive-alpha-persian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/alpha-persian/"
+                   "doc/bibtex/alpha-persian/")
+             (base32
+              "15ynmgh3fp6s40c200kgr6v0q84bkzp9cv45yg90mr9d7mq72djv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/alpha-persian")
+    (synopsis "Persian version of @file{alpha.bst}")
+    (description
+     "The package provides a Persian version of the alpha BibTeX style and
+offers several enhancements.  It is compatible with the @code{hyperref},
+@code{url}, @code{natbib}, and @code{cite} packages.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-amscdx
   (package
     (name "texlive-amscdx")
@@ -1451,6 +1773,92 @@ geometry remains.  This nevertheless allows the drawing of a much broader
 class of commutative diagrams and alike.")
     (license license:lppl1.3c)))
 
+(define-public texlive-amscls-doc
+  (package
+    (name "texlive-amscls-doc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amscls-doc/")
+             (base32
+              "0allim05cp20zhn480df2mivd3p9gnc069d7hbjlzv660bw7mapx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amscls-doc")
+    (synopsis "User documentation for AMS document classes")
+    (description
+     "This collection comprises a set of four manuals, or Author Handbooks,
+each documenting the use of a class of publications based on one of the AMS
+document classes @code{amsart}, @code{amsbook}, @code{amsproc} and one hybrid,
+as well as a guide to the generation of the four manuals from a coordinated
+set of LaTeX source files.  The Handbooks comprise the user documentation for
+the pertinent document classes.  As the source for the Handbooks consists of
+a large number of files, and the intended output is multiple different
+documents, the principles underlying this collection can be used as a model
+for similar projects.  The manual @emph{Compiling the AMS Author Handbooks}
+provides information about the structure of and interaction between the
+various components.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-amslatex-primer
+  (package
+    (name "texlive-amslatex-primer")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amslatex-primer/")
+             (base32
+              "1kzayyh1bycmq43s2xn81jf05r18azidbk3gv6igf2vaq37fmxil")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amslatex-primer")
+    (synopsis "Getting up and running with AMS-LaTeX")
+    (description
+     "The document aims to get you up and running with AMS-LaTeX as quickly as
+possible.  These instructions are not a substitute for the full documentation,
+but they may get you started quickly enough so that you will only need to
+refer to the main documentation occasionally.  In addition to AMS-LaTeX out of
+the box, the document contains a section describing how to draw commutative
+diagrams using Xy-pic and a section describing how to use @code{amsrefs} to
+create a bibliography.")
+    (license license:lppl)))
+
+(define-public texlive-amsldoc-it
+  (package
+    (name "texlive-amsldoc-it")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amsldoc-it/")
+             (base32
+              "0d4hwb7hywy56d6934448lcr6fdx7qchkfzs806dr7wfzfy36yix")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amsldoc-it")
+    (synopsis "Italian translation of @code{amsldoc}")
+    (description
+     "This package provides an Italian translation of @code{amsldoc}.")
+    ;; Use same license as `amsmath'.
+    (license license:lppl1.3c)))
+
+(define-public texlive-amsldoc-vn
+  (package
+    (name "texlive-amsldoc-vn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amsldoc-vn/")
+             (base32
+              "1iz0zjn1v7izwbsq0zb6cvpnkbvk0nxw1b24j7dzqwk3m9j43i6x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amslatexdoc-vietnamese")
+    (synopsis "Vietnamese translation of AMSLaTeX documentation")
+    (description
+     "This is a Vietnamese translation of @code{amsldoc}, the users guide to
+@code{amsmath}.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-amstex
   (package
     (name "texlive-amstex")
@@ -1489,6 +1897,47 @@ is the historical basis of @code{amslatex}, which should now be used to
 prepare submissions for the AMS.")
     (license license:lppl)))
 
+(define-public texlive-amsthdoc-it
+  (package
+    (name "texlive-amsthdoc-it")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amsthdoc-it/")
+             (base32
+              "0ic88gs89m3d9ys40c4k7sgx6wy82c8isg2qkmd4snw5yms6fpaz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amsthdoc-it")
+    (synopsis "Italian translation of @code{amsthdoc}")
+    (description
+     "This package provides an Italian translation of @code{amsthdoc}.")
+    ;; Use same license as `amscls'.
+    (license license:lppl1.3c)))
+
+(define-public texlive-annee-scolaire
+  (package
+    (name "texlive-annee-scolaire")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/annee-scolaire/"
+                   "source/latex/annee-scolaire/"
+                   "tex/latex/annee-scolaire/")
+             (base32
+              "1nwm67p4s822d7r4kr3rbvnm9vlkvzjbikqy8hq2fqsc9bdx34ib")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/annee-scolaire")
+    (synopsis "Automatically typeset the academic year (French way)")
+    (description
+     "This package provides a macro @code{\\anneescolaire} to automatically
+write the academic year in the French way, according to the date of
+compilation, two other macros to obtain the first and the second calendar year
+of the academic year, a macro to be redefined to change the presentation of
+the years.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-annotate-equations
   (package
     (name "texlive-annotate-equations")
@@ -1509,6 +1958,63 @@ equations and add annotation labels using TikZ.  It should work with pdfLaTeX
 as well as LuaLaTeX.")
     (license license:expat)))
 
+(define-public texlive-antanilipsum
+  (package
+    (name "texlive-antanilipsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/antanilipsum/"
+                   "source/latex/antanilipsum/"
+                   "tex/latex/antanilipsum/")
+             (base32
+              "1yighrv3nxb266949m8sqvvl5yp8bhjq478h2abfrs1z0r65gpjr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/antanilipsum")
+    (synopsis "Generate sentences in the style of @emph{Amici miei}")
+    (description
+     "This package is an italian blind text generator that ouputs supercazzole,
+mocking nonsense phrases from the movie series @emph{Amici Miei} (``My
+friends'', in English), directed by Mario Monicelli.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-antomega
+  (package
+    (name "texlive-antomega")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/omega/antomega/" "omega/ocp/antomega/"
+                   "omega/otp/antomega/"
+                   "source/lambda/antomega/"
+                   "tex/lambda/antomega/")
+             (base32
+              "02pfjm9y33mjggn9w2lrk1fxfz3m72xgbvyvrq2iri9yf0hk33pf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-build
+            ;; This phase is necessary because the build phase is reluctant to
+            ;; generate "hyphen.cfg" since there is another one among the
+            ;; inputs already.
+            (lambda _
+              (substitute* "source/lambda/antomega/antomega.ins"
+                (("\\\\generateFile\\{hyphen\\.cfg\\}\\{t\\}")
+                 "\\generateFile{hyphen.cfg}{f}")))))))
+    (propagated-inputs (list texlive-omega))
+    (home-page "https://ctan.org/pkg/antomega")
+    (synopsis "Alternative language support for Omega and Lambda")
+    (description
+     "This package provides a language support package for Omega and Lambda.
+This replaces the original Omega package for use with Lambda, and provides
+extra facilities (including Babel-like language switching, which eases porting
+of LaTeX documents to Lambda).")
+    (license license:lppl)))
+
 (define-public texlive-apnum
   (package
     (name "texlive-apnum")
@@ -1529,6 +2035,44 @@ Operands may be numbers with arbitrary numbers of digits; scientific notation
 is allowed.  The expression scanner is also provided.")
     (license license:public-domain)))
 
+(define-public texlive-apprendre-a-programmer-en-tex
+  (package
+    (name "texlive-apprendre-a-programmer-en-tex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/apprendre-a-programmer-en-tex/")
+             (base32
+              "05779lk9v849k712wfjv0mhyzahwpl4n892ydamfdc5yg05bsnyv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/apprendre-a-programmer-en-tex")
+    (synopsis "@emph{Apprendre à programmer en TeX} book")
+    (description
+     "This book explains the basic concepts required for programming in TeX
+and explains the programming methods, providing many examples.  The package
+makes the compileable source code as well as the compiled PDF file accessible
+to everyone.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-apprends-latex
+  (package
+    (name "texlive-apprends-latex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/apprends-latex/")
+             (base32
+              "1xzy7svb2xz6bdfg0f1r3whwda118pl7qdwygx1l7h4d1vqm2rcq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/apprends-latex")
+    (synopsis "@emph{Apprends LaTeX!} book")
+    (description
+     "@emph{Apprends LaTeX!} (``Learn LaTeX'', in English) is French
+documentation for LaTeX beginners.")
+    (license license:lppl)))
+
 (define-public texlive-apxproof
   (package
     (name "texlive-apxproof")
@@ -1555,6 +2099,145 @@ the main text, and supports a separate bibliography for the appendix
 material.")
     (license license:lppl1.3+)))
 
+(define-public texlive-arabi
+  (package
+    (name "texlive-arabi")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/arabi/"
+                   "fonts/afm/arabi/arabeyes/"
+                   "fonts/enc/dvips/arabi/"
+                   "fonts/map/dvips/arabi/"
+                   "fonts/tfm/arabi/arabeyes/"
+                   "fonts/tfm/arabi/farsiweb/"
+                   "fonts/type1/arabi/arabeyes/"
+                   "fonts/type1/arabi/farsiweb/"
+                   "tex/latex/arabi/")
+             (base32
+              "19js5lw5r51n97gnf7ggvnvdkaamd0aagx73hnpyfzgzj9nb8pjr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arabi")
+    (synopsis "(La)TeX support for Arabic and Farsi, compliant with Babel")
+    (description
+     "The package provides an Arabic and Farsi script support for TeX without
+the need of any external pre-processor, and in a way that is compatible with
+Babel.  The bi-directional capability supposes that the user has a TeX engine
+that knows the four primitives @code{\\beginR}, @code{\\endR}, @code{\\beginL}
+and @code{\\endL}.  That is the case in both the TeX--XeT and e-TeX engines.
+
+Arabi will accept input in several 8-bit encodings, including UTF-8.  Arabi
+can make use of a wide variety of Arabic and Farsi fonts, and provides one of
+its own.  PDF files generated using Arabi may be searched, and text may be
+copied from them and pasted elsewhere.")
+    (license license:lppl)))
+
+(define-public texlive-arabi-add
+  (package
+    (name "texlive-arabi-add")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/arabi-add/"
+                   "tex/latex/arabi-add/")
+             (base32
+              "1lrr3vr9sv554bvad70rc32x0jgsam2jaflgxw0nid0629rmigdj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arabi-add")
+    (synopsis
+     "Using @code{hyperref} and @code{bookmark} packages with Arabic and Farsi languages")
+    (description
+     "This package takes advantage of some of the possibilities that
+@code{hyperref} and @code{bookmark} packages offer when you create a table of
+contents for Arabic texts created by the @code{arabi} package.")
+    (license license:lppl1.3)))
+
+(define-public texlive-arabic-book
+  (package
+    (name "texlive-arabic-book")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/arabic-book/"
+                   "tex/xelatex/arabic-book/")
+             (base32
+              "070agzwpgdfvjqn2klxw2m1bavy0l9b9pqqikc7il3wx107m4ni1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arabic-book")
+    (synopsis "Arabic @code{book} class")
+    (description
+     "This document class provides both Arabic and English support for TeX and
+LaTeX.  Input may be in ASCII transliteration or other encodings
+(including UTF-8), and output may be Arabic, Hebrew, or any of several
+languages that use the Arabic script, as can be specified by the Polyglossia
+package.  The Arabic font is presently available in any Arabic fonts style.
+In order to use Amiri font style, the user needs to install the amiri package.
+This document class runs with the XeTeX engine.  PDF files generated using
+this class can be searched, and text can be copied from them and pasted
+elsewhere.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-arabluatex
+  (package
+    (name "texlive-arabluatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/lualatex/arabluatex/"
+                   "source/lualatex/arabluatex/"
+                   "tex/lualatex/arabluatex/")
+             (base32
+              "1g1ai0inai3jniq49avfswyaysxlk1yp6n97l94pq8v3vszx0k8i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arabluatex")
+    (synopsis "ArabTeX for LuaLaTeX")
+    (description
+     "This package provides for LuaLaTeX an ArabTeX-like interface to generate
+Arabic writing from an ascii transliteration.  It is particularly well-suited
+for complex documents such as technical documents or critical editions where
+a lot of left-to-right commands intertwine with Arabic writing.
+@code{arabluatex} is able to process any ArabTeX input notation.  Its output
+can be set in the same modes of vocalization as ArabTeX, or in different roman
+transliterations.  It further allows many typographical refinements.  It will
+eventually interact with some other packages yet to come to produce from
+@file{.tex} source files, in addition to printed books, TEI XML compliant
+critical editions and/or lexicons that can be searched, analyzed and
+correlated in various ways.")
+    (license (list license:gpl3+ license:cc-by-sa4.0))))
+
+(define-public texlive-arabtex
+  (package
+    (name "texlive-arabtex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/arabtex/"
+                   "fonts/map/dvips/arabtex/"
+                   "fonts/source/public/arabtex/"
+                   "fonts/tfm/public/arabtex/"
+                   "fonts/type1/public/arabtex/"
+                   "tex/latex/arabtex/")
+             (base32
+              "1z1iaj59lawilydp31d3zxbd5jbny4szpdnkbwl6lrnki4c0s51c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/arabtex")
+    (synopsis "Macros and fonts for typesetting Arabic")
+    (description
+     "ArabTeX is a package extending the capabilities of TeX and LaTeX to
+generate Arabic and Hebrew text.  Input may be in ASCII transliteration or
+other encodings (including UTF-8); output may be Arabic, Hebrew, or any of
+several languages that use the Arabic script.  ArabTeX consists of a TeX macro
+package and Arabic and Hebrew fonts (provided both in Metafont format and
+Adobe Type 1).  The Arabic font is presently only available in the Naskhi
+style.  ArabTeX will run with Plain TeX and also with LaTeX.")
+    (license license:lppl)))
+
 (define-public texlive-arara
   (package
     (name "texlive-arara")
@@ -1589,6 +2272,285 @@ on indirect resources, such as log file analysis.  Arara requires a Java
 virtual machine.")
     (license license:bsd-3)))
 
+(define-public texlive-aramaic-serto
+  (package
+    (name "texlive-aramaic-serto")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/aramaic-serto/"
+                   "fonts/afm/public/aramaic-serto/"
+                   "fonts/map/dvips/aramaic-serto/"
+                   "fonts/source/public/aramaic-serto/"
+                   "fonts/tfm/public/aramaic-serto/"
+                   "fonts/type1/public/aramaic-serto/"
+                   "tex/latex/aramaic-serto/")
+             (base32
+              "154bicknhsj8nypnyzr999wj34xli0kfpic9vym805abxbpwrmsw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/aramaic-serto")
+    (synopsis "Fonts and LaTeX for Syriac written in Serto")
+    (description
+     "This package enables (La)TeX users to typeset words or phrases (e-TeX
+extensions are needed) in Syriac (Aramaic) using the Serto-alphabet.  The
+package includes a preprocessor written in Python in order to deal with
+right-to-left typesetting for those who do not want to use e-LaTeX and to
+choose the correct letter depending on word context (initial/medial/final
+form).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-armtex
+  (package
+    (name "texlive-armtex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/armenian/"
+                   "fonts/afm/public/armenian/"
+                   "fonts/map/dvips/armenian/"
+                   "fonts/source/public/armenian/"
+                   "fonts/tfm/public/armenian/"
+                   "fonts/type1/public/armenian/"
+                   "tex/latex/armenian/"
+                   "tex/plain/armenian/")
+             (base32
+              "161c66av2zkxp9r32dr449sa9crmyjkjijrvx5a56avkyyr1s0kp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/armtex")
+    (synopsis "System for writing in Armenian with TeX and LaTeX")
+    (description
+     "ArmTeX is a system for typesetting Armenian text with Plain TeX or LaTeX(2e).
+It may be used with input: from a standard Latin keyboard without any special
+encoding or support for Armenian letters, from any keyboard which uses an
+encoding that has Armenian letters in the second half (characters 128-255) of
+the extended ASCII table (for example ArmSCII8 Armenian standard), or from an
+Armenian keyboard using UTF-8 encoding.")
+    (license license:lppl)))
+
+(define-public texlive-around-the-bend
+  (package
+    (name "texlive-around-the-bend")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/around-the-bend/")
+             (base32
+              "00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/around-the-bend")
+    (synopsis "Typeset exercises in TeX, with answers")
+    (description
+     "This is a typeset version of the files of the @code{aro-bend}, plus
+three extra questions (with their answers) that Michael Downes didn't manage
+to get onto CTAN.")
+    (license license:lppl)))
+
+(define-public texlive-arphic
+  (package
+    (name "texlive-arphic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/arphic/"
+                   "dvips/arphic/"
+                   "fonts/afm/arphic/bkaiu/"
+                   "fonts/afm/arphic/bsmiu/"
+                   "fonts/afm/arphic/gbsnu/"
+                   "fonts/afm/arphic/gkaiu/"
+                   "fonts/map/dvips/arphic/"
+                   "fonts/tfm/arphic/bkaimp/"
+                   "fonts/tfm/arphic/bkaiu/"
+                   "fonts/tfm/arphic/bsmilp/"
+                   "fonts/tfm/arphic/bsmiu/"
+                   "fonts/tfm/arphic/gbsnlp/"
+                   "fonts/tfm/arphic/gbsnu/"
+                   "fonts/tfm/arphic/gkaimp/"
+                   "fonts/tfm/arphic/gkaiu/"
+                   "fonts/type1/arphic/bkaiu/"
+                   "fonts/type1/arphic/bsmiu/"
+                   "fonts/type1/arphic/gbsnu/"
+                   "fonts/type1/arphic/gkaiu/"
+                   "fonts/vf/arphic/bkaimp/"
+                   "fonts/vf/arphic/bsmilp/"
+                   "fonts/vf/arphic/gbsnlp/"
+                   "fonts/vf/arphic/gkaimp/")
+             (base32
+              "1sqsgw9xjgd3ss2q7hwnb3vv38sg7l9i8bvsy79m5hyg29wn973x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arphic")
+    (synopsis "Arphic (Chinese) font packages")
+    (description
+     "These are font bundles for the Chinese Arphic fonts which work with the
+CJK package.  TrueType versions of these fonts for use with XeLaTeX and
+LuaLaTeX are provided by the @code{arphic-ttf} package.")
+    ;; The files are generated from `chinese-fonts-truetype', located in
+    ;; non-GNU FTP site, using the license below.
+    (license license:arphic-1999)))
+
+(define-public texlive-arphic-ttf
+  (package
+    (name "texlive-arphic-ttf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/arphic-ttf/"
+                   "fonts/truetype/public/arphic-ttf/")
+             (base32
+              "141hsz7lhqpbz3k10kl57bg21yslrb562alk1a6q129i56zb7jby")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/arphic-ttf")
+    (synopsis "TrueType version of Chinese Arphic fonts")
+    (description
+     "This package provides TrueType versions of the Chinese Arphic fonts for
+use with XeLaTeX and LuaLaTeX.  Type1 versions of these fonts, for use with
+pdfLaTeX and the @code{cjk} package, are provided by the @code{arphic}
+package.")
+    (license license:arphic-1999)))
+
+(define-public texlive-ascii-chart
+  (package
+    (name "texlive-ascii-chart")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/ascii-chart/")
+             (base32
+              "1m2x7iwz80plq6hbhp9xia6bp8wbi03iifs0pkr7ji3gn8hqgh1r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ascii-chart")
+    (synopsis "ASCII wall chart")
+    (description
+     "This package contains an ASCII wall chart.  The document may be
+converted between Plain TeX and LaTeX by a simple editing action.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-ascmac
+  (package
+    (name "texlive-ascmac")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ascmac/"
+                   "fonts/map/dvips/ascmac/"
+                   "fonts/source/public/ascmac/"
+                   "fonts/tfm/public/ascmac/"
+                   "fonts/type1/public/ascmac/"
+                   "source/latex/ascmac/"
+                   "tex/latex/ascmac/")
+             (base32
+              "1d388nqyjipqsgd0pd4zrskaf3wddacg6rrmy3q1n8pvmna4gmz1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/ascmac")
+    (synopsis "Boxes and picture macros with Japanese vertical writing support")
+    (description
+     "The bundle provides boxes and picture macros with Japanese vertical
+writing support.  It uses only native picture macros and fonts for drawing
+boxes and is thus driver independent.")
+    (license license:bsd-3)))
+
+(define-public texlive-asternote
+  (package
+    (name "texlive-asternote")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/asternote/"
+                   "tex/latex/asternote/")
+             (base32
+              "1a53pmw237lm1yjx55qwq3fq6jq34vlw03w62vrq3ksw9346dg5r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/asternote")
+    (synopsis "Annotation symbols enclosed in square brackets with an asterisk")
+    (description
+     "This LaTeX package can output annotation symbols enclosed in square
+brackets and marked with an asterisk.")
+    (license license:expat)))
+
+(define-public texlive-asymptote-by-example-zh-cn
+  (package
+    (name "texlive-asymptote-by-example-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/asymptote-by-example-zh-cn/")
+             (base32
+              "0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/asymptote-by-example-zh-cn")
+    (synopsis "Asymptote by example")
+    (description "This is an Asymptote tutorial written in Simplified
+Chinese.")
+    (license license:gpl3+)))
+
+(define-public texlive-asymptote-faq-zh-cn
+  (package
+    (name "texlive-asymptote-faq-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/asymptote-faq-zh-cn/")
+             (base32
+              "0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/asymptote-faq-zh-cn")
+    (synopsis "Asymptote FAQ (Chinese translation)")
+    (description "This is a Chinese translation of the Asymptote FAQ.")
+    (license license:lppl)))
+
+(define-public texlive-asymptote-manual-zh-cn
+  (package
+    (name "texlive-asymptote-manual-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/asymptote-manual-zh-cn/")
+             (base32
+              "047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/asymptote-manual-zh-cn")
+    (synopsis "Chinese translation of the Asymptote manual")
+    (description
+     "This is an (incomplete, simplified) Chinese translation of the Asymptote
+manual.")
+    (license license:lgpl3+)))
+
+(define-public texlive-auto-pst-pdf
+  (package
+    (name "texlive-auto-pst-pdf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/auto-pst-pdf/"
+                   "source/latex/auto-pst-pdf/"
+                   "tex/latex/auto-pst-pdf/")
+             (base32
+              "1lpjwqd0rhdzz3kywl54pjlpj1qsj7kflj0336vj2zb20rxl0hqp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-ifplatform texlive-iftex texlive-xkeyval))
+    (home-page "https://ctan.org/pkg/auto-pst-pdf")
+    (synopsis "Wrapper for @code{pst-pdf} (with some PSfrag features)")
+    (description
+     "The package uses @samp{--shell-escape} to execute @code{pst-pdf} when necessary.
+Wrappers are provided for various psfrag-related features so that Matlab
+figures via @code{laprint}, Mathematica figures via MathPSfrag, and regular
+PSfrag figures can all be input consistently and easily.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-autoaligne
   (package
     (name "texlive-autoaligne")
@@ -1631,6 +2593,34 @@ package tries to put breaks at adequate places.  It is suitable for
 computer-generated long formulae with many terms.")
     (license license:lppl1.3+)))
 
+(define-public texlive-autosp
+  (package
+    (name "texlive-autosp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/autosp/"
+                   "doc/man/man1/autosp.1"
+                   "doc/man/man1/autosp.man1.pdf"
+                   "doc/man/man1/tex2aspc.1"
+                   "doc/man/man1/tex2aspc.man1.pdf")
+             (base32
+              "16szmbffp9pwzv7zq3l4yvnsfk4m7w57wib7pqpgv1v5fzhlaahs")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/autosp")
+    (synopsis
+     "Preprocessor generating note-spacing commands for MusiXTeX scores")
+    (description
+     "This program simplifies the creation of MusiXTeX scores by converting
+(non-standard) commands of the form @code{\\anotes ... \\en} into one or more
+conventional note-spacing commands, as determined by the note values
+themselves, with @code{\\sk} spacing commands inserted as necessary.  The
+coding for an entire measure can be entered one part at a time, without
+concern for note-spacing changes within the part or spacing requirements of
+other parts.")
+    (license license:gpl2+)))
+
 (define-public texlive-axodraw2
   (package
     (name "texlive-axodraw2")
@@ -1711,6 +2701,88 @@ formatted lists of productions, with numbers if required.  It can also print
 in-line BNF expressions using math mode.")
     (license license:lppl1.3c)))
 
+(define-public texlive-baekmuk
+  (package
+    (name "texlive-baekmuk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/baekmuk/"
+                   "fonts/truetype/public/baekmuk/")
+             (base32
+              "0nc6sfjbimh1g8zhcl58ag6kqskhwd3h0m68y7k2v3v5i9n5g5yr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/baekmuk")
+    (synopsis "Baekmuk Korean TrueType fonts")
+    (description
+     "This bundle consists of four Korean fonts: @file{batang.ttf} (serif),
+@file{dotum.ttf} (sans-serif), @file{gulim.ttf} (sans-serif rounded) and
+@file{hline.ttf} (headline).")
+    (license license:expat)))
+
+(define-public texlive-bagpipe
+  (package
+    (name "texlive-bagpipe")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/bagpipe/"
+                   "tex/generic/bagpipe/")
+             (base32
+              "0zybnikkj00hmlzfaaljcq1ml5vi6qfhl1hfrjq9vjc409vzzvka")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bagpipe")
+    (synopsis "Support for typesetting bagpipe music")
+    (description
+     "Typesetting bagpipe music in MusixTeX is needlessly tedious.  This
+package provides specialized and re-defined macros to simplify this task.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bangla
+  (package
+    (name "texlive-bangla")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bangla/"
+                   "fonts/truetype/public/bangla/"
+                   "tex/latex/bangla/")
+             (base32
+              "0basibrsbns9s2ny6ny95hl6dj4rjf6q4z9bqn2kc9945akxg8af")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-charissil texlive-doulossil))
+    (home-page "https://ctan.org/pkg/bangla")
+    (synopsis "Comprehensive Bangla LaTeX package")
+    (description
+     "This package provides all the necessary LaTeX frontends for the Bangla
+language and comes with some fonts of its own.")
+    (license (list license:lppl1.3c license:silofl1.1))))
+
+(define-public texlive-bangtex
+  (package
+    (name "texlive-bangtex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bangtex/"
+                   "fonts/source/public/bangtex/"
+                   "fonts/tfm/public/bangtex/"
+                   "tex/latex/bangtex/")
+             (base32
+              "1hmv27wpnwv70gipvfvxs1rwfjqbcy0lgn09hs2ah6ayqgr740im")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/bangtex")
+    (synopsis "Writing Bangla and Assamese with LaTeX")
+    (description
+     "The bundle provides class files for writing Bangla and Assamese with LaTeX,
+and Metafont sources for fonts.")
+    (license license:lppl)))
+
 (define-public texlive-barr
   (package
     (name "texlive-barr")
@@ -1729,6 +2801,91 @@ in-line BNF expressions using math mode.")
 of mathematical disciplines.")
     (license license:lppl1.3+)))
 
+(define-public texlive-basque-book
+  (package
+    (name "texlive-basque-book")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/basque-book/"
+                   "source/latex/basque-book/"
+                   "tex/latex/basque-book/")
+             (base32
+              "16jgn4pxqbmq2dx5gfyy4p04ykaijkjyy9banp3l3a6ykm2xn8w7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/basque-book")
+    (synopsis "Class for book-type documents written in Basque")
+    (description
+     "The class is derived from the LaTeX @code{book} class.  The extensions
+solve grammatical and numeration issues that occur when book-type documents
+are written in Basque.  The class is useful for writing books, PhD and Master
+Theses, etc., in Basque.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-basque-date
+  (package
+    (name "texlive-basque-date")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/basque-date/"
+                   "source/latex/basque-date/"
+                   "tex/latex/basque-date/")
+             (base32
+              "0n1nc2nrwl3ajk1n7xbnf49mvg8dlqlyndsyywgs46dnv55b7gs5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/basque-date")
+    (synopsis "Print the date in Basque")
+    (description
+     "The package provides two LaTeX commands to print the current date in
+Basque according to the correct forms ruled by The Basque Language Academy
+(Euskaltzaindia).  The commands automatically solve the complex declination
+issues of numbers in Basque.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-bclogo
+  (package
+    (name "texlive-bclogo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bclogo/" "metapost/bclogo/"
+                   "tex/latex/bclogo/")
+             (base32
+              "1hdg99xkmdca23s7i63099r9jvgw2larv8aawjllj9mw18195jr9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bclogo")
+    (synopsis "Creating colourful boxes with logos")
+    (description
+     "The package facilitates the creation of colorful boxes with a title and logo.
+It may use either TikZ or PSTricks as graphics engine.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-begingreek
+  (package
+    (name "texlive-begingreek")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/begingreek/"
+                   "source/latex/begingreek/"
+                   "tex/latex/begingreek/")
+             (base32
+              "1amzzc96pqxjicrgl4fnl2j7b65vvpxl32ckl308nbwfhd56fz6l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/begingreek")
+    (synopsis "Greek environment to be used with pdfLaTeX only")
+    (description
+     "This simple package defines a greek environment to be used with pdfLaTeX
+only, that accepts an optional Greek font family name to type its contents
+with.  A similar @code{\\greektxt} command does a similar action for shorter
+texts.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-begriff
   (package
     (name "texlive-begriff")
@@ -1747,6 +2904,213 @@ of mathematical disciplines.")
 @emph{Begriffschrift}.")
     (license license:gpl3+)))
 
+(define-public texlive-bengali
+  (package
+    (name "texlive-bengali")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/bengali/"
+                   "fonts/source/public/bengali/"
+                   "fonts/tfm/public/bengali/"
+                   "source/latex/bengali/" "tex/latex/bengali/")
+             (base32
+              "077rs7rcx592g5m53hy73w6jd39qgb83z5sg2jbymjfwkk7y593h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/bengali-pandey")
+    (synopsis "Support for the Bengali language")
+    (description
+     "The package is based on Velthuis transliteration scheme, with extensions
+to deal with the Bengali letters that are not in Devanagari.  The package also
+supports Assamese.")
+    (license license:lppl)))
+
+(define-public texlive-betababel
+  (package
+    (name "texlive-betababel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/betababel/"
+                   "tex/latex/betababel/")
+             (base32
+              "1lck0wighndd3qrhcks6amc6gm5y50f6a61nfcz31j087r3a7liv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/betababel")
+    (synopsis "Insert ancient greek text coded in Beta Code")
+    (description
+     "The @code{betababel} package extends the Babel @samp{polutonikogreek}
+option to provide a simple way to insert ancient Greek texts with diacritical
+characters into your document using the commonly used Beta Code
+transliteration.")
+    (license license:lppl)))
+
+(define-public texlive-bib-fr
+  (package
+    (name "texlive-bib-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/bib-fr/" "doc/bibtex/bib-fr/")
+             (base32
+              "11af1p52vr16l5gf69ql2zz0328yqd75nbcvik7b0g05pbqc12nv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bib-fr")
+    (synopsis "French translation of classical BibTeX styles")
+    (description
+     "These files are French translations of the classical BibTeX style
+files.")
+    (license license:lppl)))
+
+(define-public texlive-bibleref
+  (package
+    (name "texlive-bibleref")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref/"
+                   "source/latex/bibleref/"
+                   "tex/latex/bibleref/")
+             (base32
+              "1fgb6lljdsdvkbs4i7yvwvgjbpbc8vnki0wv3gdi9yq6s5j6lzv5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref")
+    (synopsis "Format @emph{Bible} citations")
+    (description
+     "The bibleref package offers consistent formatting of references to parts
+of the Christian @emph{Bible}, in a number of well-defined formats.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bibleref-french
+  (package
+    (name "texlive-bibleref-french")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref-french/"
+                   "source/latex/bibleref-french/"
+                   "tex/latex/bibleref-french/")
+             (base32
+              "12y9xdsz0swh3rndmzk7ch9fbszbhcp0ixb21jyy36xnb3x80wa5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref-french")
+    (synopsis "French translations for @code{bibleref}")
+    (description
+     "The package provides translations and alternative typesetting
+conventions for use of @code{bibleref} in French.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bibleref-german
+  (package
+    (name "texlive-bibleref-german")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref-german/"
+                   "tex/latex/bibleref-german/")
+             (base32
+              "0nqky0x9j6w3xg2vaj29db7l0zjw88d7bl6vs8864hqz2i6h2pcw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref-german")
+    (synopsis "German adaptation of @code{bibleref}")
+    (description
+     "The package provides translations and various formats for the use of
+@code{bibleref} in German documents.  The German naming of the Bible books
+complies with the @emph{Loccumer Richtlinien} (Locum guidelines).  In
+addition, the Vulgate (Latin Bible) is supported.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bibleref-lds
+  (package
+    (name "texlive-bibleref-lds")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref-lds/"
+                   "source/latex/bibleref-lds/"
+                   "tex/latex/bibleref-lds/")
+             (base32
+              "0wqmpzml3yyhzv7bx5wkfl2ni0qinz0kjzdanh6rx0bczp29dlfh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref-lds")
+    (synopsis
+     "Bible references, including scriptures of the Church of Jesus Christ of
+Latter Day Saints")
+    (description
+     "The package extends the @code{bibleref-mouth} package to support
+references to the scriptures of The Church of Jesus Christ of Latter-day
+Saints (LDS).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bibleref-mouth
+  (package
+    (name "texlive-bibleref-mouth")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref-mouth/"
+                   "source/latex/bibleref-mouth/"
+                   "tex/latex/bibleref-mouth/")
+             (base32
+              "0dakbx8rnjs9yjnn1xal9y0bmh165lqhbjj3bns974vkyb7nla4m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref-mouth")
+    (synopsis "Consistent formatting of @emph{Bible} references")
+    (description
+     "The package allows @emph{Bible} references to be formatted in
+a consistent way.  It is similar to the @code{bibleref} package, except that
+the formatting macros are all purely expandable --- that is, they are all
+implemented in TeX's mouth.  This means that they can be used in any
+expandable context, such as an argument to a @code{\\url} command.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bibleref-parse
+  (package
+    (name "texlive-bibleref-parse")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bibleref-parse/"
+                   "tex/latex/bibleref-parse/")
+             (base32
+              "01jhic1idgjgv9hsx5gih4230krfqm8pc3j7f4kn22w2jnw7fs68")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bibleref-parse")
+    (synopsis "Specify @emph{Bible} passages in human-readable format")
+    (description
+     "The package parses @emph{Bible} passages that are given in human
+readable format.  It accepts a wide variety of formats.  This allows for
+a simpler and more convenient interface to the functionality of the
+@code{bibleref} package.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-bidihl
+  (package
+    (name "texlive-bidihl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/bidihl/" "tex/xelatex/bidihl/")
+             (base32
+              "021q2qhfl2ww95nbp63p3j7lv9wjj5s9wvn2sj5zyj1pcw75l8ir")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bidihl")
+    (synopsis "Experimental Bidi-aware text highlighting")
+    (description
+     "This package provides experimental Bidi-aware text highlighting.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-binomexp
   (package
     (name "texlive-binomexp")
@@ -1908,6 +3272,42 @@ convert atomic numbers to element symbols or element names and vice versa.")
 characters.")
     (license license:gpl3+)))
 
+(define-public texlive-booktabs-de
+  (package
+    (name "texlive-booktabs-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/booktabs-de/")
+             (base32
+              "1ld7zdr88xjhnnl2x734rxr7h0fz84awapmv50p1kzn6fczrwyam")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/booktabs-de")
+    (synopsis "German version of @code{booktabs}")
+    (description
+     "This is a German translation of the @code{booktabs} package
+documentation.")
+    (license license:gpl3+)))
+
+(define-public texlive-booktabs-fr
+  (package
+    (name "texlive-booktabs-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/booktabs-fr/")
+             (base32
+              "1xkqh6r2q835xaa92b24fzf61jsm85280570hivvwnch96i4fnh3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/booktabs-fr")
+    (synopsis "French translation of @code{booktabs} documentation")
+    (description
+     "This package provides a French translation of @code{booktabs}
+documentation.")
+    (license license:lppl)))
+
 (define-public texlive-borceux
   (package
     (name "texlive-borceux")
@@ -1998,6 +3398,44 @@ involving brackets and allow partial differentials to be expressed in an
 alternate form.")
     (license license:lppl1.3+)))
 
+(define-public texlive-burmese
+  (package
+    (name "texlive-burmese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/burmese/"
+                   "fonts/map/dvips/burmese/"
+                   "fonts/tfm/public/burmese/"
+                   "fonts/type1/public/burmese/"
+                   "source/fonts/burmese/"
+                   "tex/latex/burmese/")
+             (base32
+              "04d022k7bqc7092xhsda0h5ma18b24hkmn0b7mlblpd3zf4qhs79")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; The "birm.pl" script is located in the "source" part, and
+          ;; therefore will not appear in any output.  This phase forces its
+          ;; installation in "bin/" directory.
+          (add-after 'install 'install-script
+            (lambda _
+              (install-file "source/fonts/burmese/birm.pl"
+                            (string-append #$output "/bin")))))))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/burmese")
+    (synopsis "Basic support for writing Burmese")
+    (description
+     "This package provides basic support for writing Burmese.  The package
+provides a preprocessor (written in Perl), an Adobe Type 1 font, and LaTeX
+macros.")
+    ;; The package itself is under LPPL terms, but the preprocessor relies on
+    ;; Knuth's.
+    (license (list license:lppl license:knuth))))
+
 (define-public texlive-bussproofs-extra
   (package
     (name "texlive-bussproofs-extra")
@@ -2019,6 +3457,214 @@ alternate form.")
 entire (sub)deductions.")
     (license license:lppl1.3c)))
 
+(define-public texlive-bxbase
+  (package
+    (name "texlive-bxbase")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxbase/" "tex/latex/bxbase/")
+             (base32
+              "19zhvwj55lihlj11mk322735z595al847wsg3p0s3a9zm17b0skk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxbase")
+    (synopsis "BX bundle base components")
+    (description
+     "The main purpose of this bundle is to serve as an underlying library for
+other packages created by the same author.  However @code{bxbase} package
+contains a few user-level commands and is of some use by itself.")
+    (license license:expat)))
+
+(define-public texlive-bxcjkjatype
+  (package
+    (name "texlive-bxcjkjatype")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxcjkjatype/"
+                   "tex/latex/bxcjkjatype/")
+             (base32
+              "1cnh1xdqcapahixzfxrrmadplkfrljh1vcdq7i3p4xdaclrbhzds")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxcjkjatype")
+    (synopsis "Typeset Japanese with pdfLaTeX and CJK")
+    (description
+     "The package provides a working configuration of the CJK package,
+suitable for Japanese typesetting of moderate quality.  Moreover, it
+facilitates use of the CJK package for pLaTeX users, by providing commands
+that are similar to those used by the pLaTeX kernel and some other packages
+used with it.")
+    (license license:expat)))
+
+(define-public texlive-bxghost
+  (package
+    (name "texlive-bxghost")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxghost/" "tex/latex/bxghost/")
+             (base32
+              "11hnnyd6h3r5fl9p23qj1zspwzgnamfah7xqj7l1prp6ygb322mn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxghost")
+    (synopsis "Ghost insertion for proper @code{xkanjiskip}")
+    (description
+     "The package provides two commands to help authors for documents in
+Japanese to insert proper @code{xkanjiskips}.  It supports LuaTeX, XeTeX,
+pTeX, upTeX, and ApTeX (pTeX-ng).")
+    (license license:expat)))
+
+(define-public texlive-bxjaholiday
+  (package
+    (name "texlive-bxjaholiday")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxjaholiday/"
+                   "tex/latex/bxjaholiday/")
+             (base32
+              "1n0h9g5lgaz00gn8wjai8w3pbg7bs02aaw7zi7h8l01i4lc8l1r1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxjaholiday")
+    (synopsis "Support for Japanese holidays")
+    (description
+     "This LaTeX package provides a command to convert dates to names of
+Japanese holidays.  Another command, converting dates to the day of the week
+in Japanese, is available as a free gift.")
+    (license license:expat)))
+
+(define-public texlive-bxjalipsum
+  (package
+    (name "texlive-bxjalipsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxjalipsum/"
+                   "tex/latex/bxjalipsum/")
+             (base32
+              "1d71l9mrqc2lwzri5p97rfy0rdvj6jv2jpfm10grfpbwpln7big8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxjalipsum")
+    (synopsis "Dummy text in Japanese")
+    (description
+     "This package enables users to print some Japanese text that can be used
+as dummy text.  It is a Japanese counterpart of the @code{lipsum} package.
+Since there is no well-known nonsense text like Lipsum in the Japanese
+language, the package uses some real text in public domain.")
+    (license license:expat)))
+
+(define-public texlive-bxjaprnind
+  (package
+    (name "texlive-bxjaprnind")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxjaprnind/"
+                   "tex/latex/bxjaprnind/")
+             (base32
+              "0j2k06y63c7dgpcflrfrjy82g2746fnmpf8dk445lbqkbn1jypr5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxjaprnind")
+    (synopsis "Adjust the position of parentheses at paragraph head")
+    (description
+     "In Japanese typesetting, opening parentheses placed at the beginning of
+paragraphs or lines are treated specially.  This package adjusts the position
+of parentheses accordingly.")
+    (license license:expat)))
+
+(define-public texlive-bxjatoucs
+  (package
+    (name "texlive-bxjatoucs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxjatoucs/"
+                   "fonts/tfm/public/bxjatoucs/"
+                   "tex/latex/bxjatoucs/")
+             (base32
+              "1032lfp9qy4arzy06s5hkqlva7y182763wxfdql93yn68hcn85vd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxjatoucs")
+    (synopsis "Convert Japanese character code to Unicode")
+    (description
+     "This package is meant for macro or package developers: it provides
+function-like macros that convert a character code value in one of several
+Japanese encodings to a Unicode value.  Supported source encodings are:
+ISO-2022-JP (jis), EUC-JP (euc), Shift_JIS (sjis), and the Adobe-Japan1 glyph
+set.")
+    (license license:expat)))
+
+(define-public texlive-bxjscls
+  (package
+    (name "texlive-bxjscls")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxjscls/" "source/latex/bxjscls/"
+                   "tex/latex/bxjscls/")
+             (base32
+              "0bm9ab1j949v3ygnml8w0isx7yydq6jfq4ws3i0pf1rhs56m6rm0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxjscls")
+    (synopsis "Japanese document class collection for all major engines")
+    (description
+     "This package provides an extended version of the Japanese document class
+collection provided by @code{jsclasses}.  While the original version supports
+only pLaTeX and upLaTeX, the extended version also supports pdfLaTeX, XeLaTeX
+and LuaLaTeX, with the aid of suitable packages that provide capability of
+Japanese typesetting.")
+    (license license:bsd-2)))
+
+(define-public texlive-bxorigcapt
+  (package
+    (name "texlive-bxorigcapt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxorigcapt/"
+                   "tex/latex/bxorigcapt/")
+             (base32
+              "1gj61hjmyxsbfkrs1sh604b6dfl00kp39fcamlfzb8s197wsl9fv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxorigcapt")
+    (synopsis "Retain the original caption names when using Babel")
+    (description
+     "This package forces the caption names declared by the document class in
+use to be used as the caption names for a specific language introduced by the
+Babel package.")
+    (license license:expat)))
+
+(define-public texlive-bxwareki
+  (package
+    (name "texlive-bxwareki")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bxwareki/" "tex/latex/bxwareki/")
+             (base32
+              "0qy1nsxi8ihhxdz5grp3nymsm2lfj5gf6wmky30fxizxya92ml2b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bxwareki")
+    (synopsis "Convert dates from Gregorian to Japanese calender")
+    (description
+     "This LaTeX package provides commands to convert from the Gregorian
+calendar to the Japanese rendering of the Japanese calendar.  You can choose
+whether the numbers are written in Western numerals or kanji numerals.  Note
+that the package only deals with dates in the year 1873 or later, where the
+Japanese calendar is really a Gregorian calendar with a different notation of
+years.")
+    (license license:expat)))
+
 (define-public texlive-bytefield
   (package
     (name "texlive-bytefield")
@@ -2060,6 +3706,23 @@ a packet or in memory.")
 in Python, C and Pascal.  Program source files may also be input.")
     (license license:public-domain)))
 
+(define-public texlive-c90
+  (package
+    (name "texlive-c90")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/enc/c90/" "fonts/enc/dvips/c90/"
+                   "source/fonts/enc/c90/")
+             (base32
+              "0g4rwimlqqzbbs8ar15nsf8qcr8bbyjacmklbgv4pmsls5ka9n3n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/c90")
+    (synopsis "C90 font encoding for Thai")
+    (description "This package provides C90 font encoding for Thai.")
+    (license license:gpl2+)))
+
 (define-public texlive-calculation
   (package
     (name "texlive-calculation")
@@ -2505,6 +4168,70 @@ formatting chemistry documents according to the conventions of a number of
 leading journals.  It also provides some handy chemistry-related macros.")
     (license license:lppl1.3+)))
 
+(define-public texlive-chhaya
+  (package
+    (name "texlive-chhaya")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/chhaya/" "source/latex/chhaya/"
+                   "tex/latex/chhaya/")
+             (base32
+              "1if47icrsy56sjza170cxcpcczwfh9k8jl7j22gwwam4msa4d1if")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/chhaya")
+    (synopsis "Linguistic glossing in Marathi language")
+    (description
+     "This package provides macros for linguistic glossing as per the rules
+given by Mumbai University.")
+    (license (list license:gpl3+
+                   ;; Aalok (आलोक) copyleft license v1.0+.
+                   (license:fsf-free "file://doc/latex/aalok/README.txt")
+                   license:fdl1.3+))))
+
+(define-public texlive-chordbars
+  (package
+    (name "texlive-chordbars")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/chordbars/"
+                   "tex/latex/chordbars/")
+             (base32
+              "0pyxnjalrmkan3mjir6w3g3xhgyzzbjkjhxz460p1nm8n5ng05xq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/chordbars")
+    (synopsis "Print chord grids for pop/jazz tunes")
+    (description
+     "This Tikz-based music-related package is targeted at pop/jazz
+guitar/bass/piano musicians.  They usually need only the chords and the song
+structure.  This package produces rectangular song patterns with one square
+per bar, with the chord shown inside the square.  It also handles the song
+structure by showing the bar count and the repetitions of the patterns.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-chordbox
+  (package
+    (name "texlive-chordbox")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/chordbox/" "tex/latex/chordbox/")
+             (base32
+              "01css8dnzss7s711ry2rs2fi3bw70s0lgj0cwwdicjgi331zbq70")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/chordbox")
+    (synopsis "Draw chord diagrams")
+    (description
+     "This package provides two macros for drawing chord diagrams, as may be
+found for example in chord charts/books and educational materials.  They are
+composed as TikZ pictures and have several options to modify their
+appearance.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-chronosys
   (package
     (name "texlive-chronosys")
@@ -2524,6 +4251,196 @@ leading journals.  It also provides some handy chemistry-related macros.")
 Interfaces for Plain TeX, ConTeXt and LaTeX are provided.")
     (license license:lppl1.3+)))
 
+(define-public texlive-churchslavonic
+  (package
+    (name "texlive-churchslavonic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/churchslavonic/"
+                   "tex/latex/churchslavonic/")
+             (base32
+              "1qyxyp0ckizrryvqyz8cz066g9vvz01ki6b50sm5hk44b6b4v3ri")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs
+     (list texlive-etoolbox
+           texlive-fonts-churchslavonic
+           texlive-hyphen-complete
+           texlive-oberdiek
+           texlive-xcolor))
+    (home-page "https://ctan.org/pkg/churchslavonic")
+    (synopsis "Typeset documents in Church Slavonic language using Unicode")
+    (description
+     "The package provides fonts, hyphenation patterns, and supporting macros
+to typeset Church Slavonic texts.")
+    (license license:expat)))
+
+(define-public texlive-cjhebrew
+  (package
+    (name "texlive-cjhebrew")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/cjhebrew/"
+                   "fonts/afm/public/cjhebrew/"
+                   "fonts/enc/dvips/cjhebrew/"
+                   "fonts/map/dvips/cjhebrew/"
+                   "fonts/tfm/public/cjhebrew/"
+                   "fonts/type1/public/cjhebrew/"
+                   "fonts/vf/public/cjhebrew/"
+                   "tex/latex/cjhebrew/")
+             (base32
+              "00rf55ck8y1ny1v242sbhcfchnq7q5mlsmmqppgqspd892ymlxh0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cjhebrew")
+    (synopsis "Typeset Hebrew with LaTeX")
+    (description
+     "The @code{cjhebrew} package provides Adobe Type 1 fonts for Hebrew, and
+LaTeX macros to support their use.  Hebrew text can be vocalised, and a few
+accents are also available.  The package makes it easy to include Hebrew text
+in other-language documents.")
+    (license license:lppl)))
+
+(define-public texlive-cjk
+  (package
+    (name "texlive-cjk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/cjk/"
+                   "source/latex/cjk/contrib/wadalab/"
+                   "source/latex/cjk/texinput/KS/HLaTeX/"
+                   "source/latex/cjk/utils/"
+                   "tex/latex/cjk/contrib/wadalab/"
+                   "tex/latex/cjk/texinput/"
+                   "tex/latex/cjk/utils/pyhyphen/")
+             (base32
+              "044r1mmszq3hjmlck87vmqp62j2z02bm7lda8wb17phs0grkws5z")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs
+     (list texlive-arphic
+           texlive-cns
+           texlive-garuda-c90
+           texlive-norasi-c90
+           texlive-uhc
+           texlive-wadalab))
+    (home-page "https://ctan.org/pkg/cjk")
+    (synopsis "CJK language support")
+    (description
+     "CJK is a macro package for LaTeX, providing simultaneous support for
+various Asian scripts in many encodings (including Unicode): Chinese (both
+traditional and simplified), Japanese, Korean and Thai.  A special add-on
+feature is an interface to the Emacs editor (@file{cjk-enc.el}) which gives
+simultaneous, easy-to-use support to a bunch of other scripts in addition to
+the above -- Cyrillic, Greek, Latin-based scripts, Russian and Vietnamese are
+supported.")
+    (license license:gpl2)))
+
+(define-public texlive-cjk-gs-integrate
+  (package
+    (name "texlive-cjk-gs-integrate")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cjk-gs-integrate/"
+                   "fonts/misc/cjk-gs-integrate/"
+                   "scripts/cjk-gs-integrate/"
+                   "source/fonts/cjk-gs-integrate/")
+             (base32
+              "0ml35bs1pr3kbdqnbclyy31ln8yigy609rsm9rc2y3j5ngmw2y8y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "cjk-gs-integrate.pl")))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/cjk-gs-integrate")
+    (synopsis "Tools to integrate CJK fonts into Ghostscript")
+    (description
+     "This script searches a list of directories for CJK fonts, and makes them
+available to an installed Ghostscript.  In the simplest case, with sufficient
+privileges, a run without arguments should result in a complete setup of
+Ghostscript.")
+    (license license:gpl3)))
+
+(define-public texlive-cjk-ko
+  (package
+    (name "texlive-cjk-ko")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/cjk-ko/" "tex/latex/cjk-ko/")
+             (base32
+              "0z94rrbr56kybvxx37hpncc0rj4v4i44kyb9nc42nb7854y8zl0a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-cjk))
+    (home-page "https://ctan.org/pkg/cjk-ko")
+    (synopsis "Extension of the CJK package for Korean typesetting")
+    (description
+     "The package supports typesetting UTF-8-encoded modern Korean documents
+with the help of the LaTeX2e CJK package.  It provides some enhanced features
+focused on Korean typesetting culture, one of them being allowing line-break
+between Latin and CJK characters.")
+    (license (list license:gpl3+ license:lppl license:public-domain))))
+
+(define-public texlive-cjkpunct
+  (package
+    (name "texlive-cjkpunct")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/cjkpunct/"
+                   "source/latex/cjkpunct/"
+                   "tex/latex/cjkpunct/")
+             (base32
+              "0l4jnawgcsq7lzsrky7259diswxm06mn9mvgxgw8j0za10kvv4vb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cjkpunct")
+    (synopsis "Adjust locations and kerning of CJK punctuation marks")
+    (description "The package serves as a companion package for CJK.  It
+adjust locations and kerning of CJK punctuation marks.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-cjkutils
+  (package
+    (name "texlive-cjkutils")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/bg5conv.1"
+                   "doc/man/man1/bg5conv.man1.pdf"
+                   "doc/man/man1/cef5conv.1"
+                   "doc/man/man1/cef5conv.man1.pdf"
+                   "doc/man/man1/cefconv.1"
+                   "doc/man/man1/cefconv.man1.pdf"
+                   "doc/man/man1/cefsconv.1"
+                   "doc/man/man1/cefsconv.man1.pdf"
+                   "doc/man/man1/extconv.1"
+                   "doc/man/man1/extconv.man1.pdf"
+                   "doc/man/man1/hbf2gf.1"
+                   "doc/man/man1/hbf2gf.man1.pdf"
+                   "doc/man/man1/sjisconv.1"
+                   "doc/man/man1/sjisconv.man1.pdf"
+                   "hbf2gf/")
+             (base32
+              "0by2g05xv5dndnd78jz9y73fyswqhfvcbzcw8rzhvpvd6inrcdq8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cjk")
+    (synopsis "CJK language support")
+    (description
+     "CJK is a macro package for LaTeX, providing simultaneous support for
+various Asian scripts in many encodings (including Unicode): Chinese (both
+traditional and simplified), Japanese, Korean and Thai.  A special add-on
+feature is an interface to the Emacs editor (cjk-enc.el) which gives
+simultaneous, easy-to-use support to a bunch of other scripts in addition to
+the above --- Cyrillic, Greek, Latin-based scripts, Russian and Vietnamese are
+supported.")
+    (license license:gpl2)))
+
 (define-public texlive-clrscode
   (package
     (name "texlive-clrscode")
@@ -2589,6 +4506,28 @@ this idea are code illustrations from the book @emph{Computer Science: An
 Interdisciplinary Approach} from Robert Sedgewick and Kevin Wayne.")
     (license license:lppl1.3c)))
 
+(define-public texlive-codicefiscaleitaliano
+  (package
+    (name "texlive-codicefiscaleitaliano")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/codicefiscaleitaliano/"
+                   "source/latex/codicefiscaleitaliano/"
+                   "tex/latex/codicefiscaleitaliano/")
+             (base32
+              "1ij3vcikhwx1d55z2gsx4yb9fin9dhm8yjwc6apiwg353ipxwibw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/codicefiscaleitaliano")
+    (synopsis "Test the consistency of the Italian personal Fiscal Code")
+    (description
+     "The alphanumeric string that forms the Italian personal Fiscal Code is
+prone to be misspelled thus rendering a legal document invalid.  The package
+quickly verifies the consistency of the fiscal code string, and can therefore
+be useful for lawyers and accountants that use fiscal codes very frequently.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-colorsep
   (package
     (name "texlive-colorsep")
@@ -2777,6 +4716,27 @@ systems of continued equalities (or inequalities).  Several variant layouts of
 the equalities are provided, and the user may define their own.")
     (license license:lppl1.3+)))
 
+(define-public texlive-convbkmk
+  (package
+    (name "texlive-convbkmk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/convbkmk/" "scripts/convbkmk/")
+             (base32
+              "0w4fm4az1smrw002sqjkiiz94x01z6jkrb0mf9wb8qxdwrxriql9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "convbkmk.rb")))
+    (inputs (list ruby))
+    (home-page "https://ctan.org/pkg/convbkmk")
+    (synopsis
+     "Correct pLaTeX/upLaTeX bookmarks in PDF created with @code{hyperref}")
+    (description
+     "The package provides a small Ruby script that corrects bookmarks in PDF
+files created by pLaTeX or upLaTeX, using @code{hyperref}.")
+    (license license:expat)))
+
 (define-public texlive-correctmathalign
   (package
     (name "texlive-correctmathalign")
@@ -2796,6 +4756,26 @@ the equalities are provided, and the user may define their own.")
 mathematical environments.")
     (license license:bsd-2)))
 
+(define-public texlive-covington
+  (package
+    (name "texlive-covington")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/covington/"
+                   "tex/latex/covington/")
+             (base32
+              "0h47zgbiylnirwcjprh31q2n8g842qlhlddd733xn1zal3n5alsz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/covington")
+    (synopsis "LaTeX macros for Linguistics")
+    (description
+     "This package provides numerous minor LaTeX enhancements for linguistics,
+including multiple accents on the same letter, interline glosses (word-by-word
+translations), Discourse Representation Structures, and example numbering.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-crossrefenum
   (package
     (name "texlive-crossrefenum")
@@ -2919,6 +4899,34 @@ Environmental scores will be part of a future release.")
      "This package contains parts of CWEB that are no longer useful.")
     (license license:knuth)))
 
+(define-public texlive-dad
+  (package
+    (name "texlive-dad")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/dad/"
+                   "fonts/afm/public/dad/"
+                   "fonts/map/dvips/dad/"
+                   "fonts/ofm/public/dad/"
+                   "fonts/ovf/public/dad/"
+                   "fonts/tfm/public/dad/"
+                   "fonts/type1/public/dad/"
+                   "tex/lualatex/dad/")
+             (base32
+              "0mkfhdai5m1fwj9x0rkpklvcrp3synfxl67dp6cb0bfz3w8nmis0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dad")
+    (synopsis "Simple typesetting system for mixed Arabic/Latin documents")
+    (description
+     "This package allows simple typesetting in Arabic script, intended for
+mixed Arabic/Latin script usage in situations where heavy-duty solutions are
+discouraged.  The system operates with both Unicode and transliterated input,
+allowing the user to choose the most appropriate approach for every
+situation.")
+    (license license:lppl)))
+
 (define-public texlive-decision-table
   (package
     (name "texlive-decision-table")
@@ -3038,6 +5046,56 @@ custom derivatives and differential operators.  The options follow
 a consistent naming scheme making them easy to use and understand.")
     (license license:lppl1.3+)))
 
+(define-public texlive-diadia
+  (package
+    (name "texlive-diadia")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/diadia/" "scripts/diadia/"
+                   "tex/latex/diadia/")
+             (base32
+              "1sjnjabgqsv6v45sffkkzm78fnx89vmk836dajsvck5pd5nvkzxv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "diadia.lua")))
+    (home-page "https://ctan.org/pkg/diadia")
+    (synopsis "Package to keep a diabetes diary")
+    (description
+     "The @code{diadia} package allows you to keep a diabetes diary.  Usually,
+this means keeping record of certain medical values like blood sugar, blood
+pressure, pulse or weight.  It might also include other medical,
+pharmaceutical or nutritional data (HbA1c, insulin doses, carbohydrate units).
+
+The @code{diadia} package supports all of this plus more --- simply by adding
+more columns to the data file!  It is able to evaluate the data file and
+typesets formatted tables and derived plots.  Furthermore, it supports
+medication charts and info boxes.")
+    (license license:lppl)))
+
+(define-public texlive-diagbox
+  (package
+    (name "texlive-diagbox")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/diagbox/" "source/latex/diagbox/"
+                   "tex/latex/diagbox/")
+             (base32
+              "0zr7ih8jr56j727gf3l1q87rlrqn3zfz8cm7hs2q5l1f3y1gmcgh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/diagbox")
+    (synopsis "Table heads with diagonal lines")
+    (description
+     "The package's principal command, @code{\\diagbox}, takes two
+arguments (texts for the slash-separated parts of the box), and an optional
+argument with which the direction the slash will go, the box dimensions, etc.,
+may be controlled.  The package also provides @code{\\slashbox} and
+@code{\\backslashbox} commands for compatibility with the now removed slashbox
+package, which it supersedes.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-diffcoeff
   (package
     (name "texlive-diffcoeff")
@@ -3146,6 +5204,45 @@ displaying one step in to the right.  The macros work equally well with Plain
 TeX and with LaTeX.")
     (license license:lppl)))
 
+(define-public texlive-disser
+  (package
+    (name "texlive-disser")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/disser/" "makeindex/disser/"
+                   "source/latex/disser/" "tex/latex/disser/")
+             (base32
+              "0sxvj4cka9xqzl2s3c465fm19lc1b8hyar1chjb51y42q4mx2bmg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/disser")
+    (synopsis "Class and templates for typesetting dissertations in Russian")
+    (description
+     "Disser comprises a document class and set of templates for typesetting
+dissertations in Russian.  One of its primary advantages is a simplicity of
+format specification for titlepage, headers and elements of automatically
+generated lists (table of contents, list of figures, etc).  Bibliography
+styles, that conform to the requirements of the Russian standard GOST
+R 7.0.11-2011, are provided.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-dnp
+  (package
+    (name "texlive-dnp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "fonts/sfd/dnp/")
+             (base32
+              "0jlvb0nps1ij4sgbg3clgbk34p80la1fhh9zihn9fhl9nrqk637r")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dnp")
+    (synopsis "Subfont numbers for DNP font encoding")
+    (description "This package provides subfont numbers for DNP font encoding.")
+    ;; This is part of the CJK package, use the same GPL license.
+    (license license:gpl2)))
+
 (define-public texlive-docbytex
   (package
     (name "texlive-docbytex")
@@ -3219,6 +5316,29 @@ such lists.  Applications in mind belonged to LaTeX, but the package should
 work with other formats as well.")
     (license license:lppl1.3+)))
 
+(define-public texlive-dramatist
+  (package
+    (name "texlive-dramatist")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dramatist/"
+                   "source/latex/dramatist/"
+                   "tex/latex/dramatist/")
+             (base32
+              "17x10jaa7f9rnqfrnvgw225n5ypqrmacbpsfpl5zdhx9abbjh793")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dramatist")
+    (synopsis "Typeset dramas, both in verse and in prose")
+    (description
+     "This package is intended for typesetting drama of any length.  It
+provides two environments for typesetting dialogues in prose or in verse; new
+document divisions corresponding to acts and scenes; macros that control the
+appearance of characters and stage directions; and automatic generation of
+a ``dramatis personae'' list.")
+    (license license:gpl3+)))
+
 (define-public texlive-drawmatrix
   (package
     (name "texlive-drawmatrix")
@@ -3260,6 +5380,70 @@ triangular, or banded matrices.")
 top of TikZ.")
     (license license:lppl1.3+)))
 
+(define-public texlive-droit-fr
+  (package
+    (name "texlive-droit-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/droit-fr/" "tex/latex/droit-fr/")
+             (base32
+              "0lx4k3w7mzldhwykpfvhv05v7fhd1jibra80kz0zf9s0jga8sq4a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/droit-fr")
+    (synopsis "Document class and bibliographic style for French law")
+    (description
+     "The bundle provides a toolkit intended for students writing a thesis in
+French law.  It features a LaTeX document class, a bibliographic style for
+BibLaTeX package, a practical example of french thesis document, and
+documentation.  The class assumes use of Biber and BibLaTeX.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-dsptricks
+  (package
+    (name "texlive-dsptricks")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dsptricks/"
+                   "tex/latex/dsptricks/")
+             (base32
+              "03ykpbvmb95n6j5071c5hrja4x6x3cpdnmppj9gjjjh63ddv40m6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dsptricks")
+    (synopsis "Macros for Digital Signal Processing (DSP) plots")
+    (description
+     "The package provides a set of @code{LaTeX} macros (based on PSTricks)
+for plotting the kind of graphs and figures that are usually employed in
+digital signal processing publications.  DSPTricks provides facilities for
+standard discrete-time lollipop plots, continuous-time and frequency plots,
+and pole-zero plots.  The companion package
+DSPFunctions (@file{dspfunctions.sty}) provides macros for computing frequency
+responses and DFTs, while the package DSPBlocks (@file{dspblocks.sty})
+supports DSP block diagrams.")
+    (license license:lppl)))
+
+(define-public texlive-dvgloss
+  (package
+    (name "texlive-dvgloss")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dvgloss/" "source/latex/dvgloss/"
+                   "tex/latex/dvgloss/")
+             (base32
+              "1fs5ghbyl3qhg1v0iljjqn723a93m4l7f873h3h81pcga75mng4s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dvgloss")
+    (synopsis "Facilities for setting interlinear glossed text")
+    (description
+     "The package provides extensible macros for setting interlinear glossed
+text --- useful, for instance, for typing linguistics papers.")
+    (license license:lppl)))
+
 (define-public texlive-dyntree
   (package
     (name "texlive-dyntree")
@@ -3284,6 +5468,28 @@ simple roots.")
     ;; LGPL 2.1+.
     (license license:lgpl2.1+)))
 
+(define-public texlive-e-french
+  (package
+    (name "texlive-e-french")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/e-french/"
+                   "makeindex/e-french/"
+                   "tex/generic/e-french/")
+             (base32
+              "14qxxfjlxygprs1ndhnn9mhz9hkb4j2dqikni5cvva457bivm4l9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/e-french")
+    (synopsis "Comprehensive LaTeX support for French-language typesetting")
+    (description
+     "E-french is a distribution that keeps alive the work of Bernard
+Gaulle (now deceased), under a free licence.  It replaces the old full
+@code{frenchpro} (the professional distribution) and the light-weight
+@code{frenchle} packages.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-easing
   (package
     (name "texlive-easing")
@@ -3302,6 +5508,25 @@ simple roots.")
 to the PGF mathematical engine.")
     (license license:lppl1.3+)))
 
+(define-public texlive-ecltree
+  (package
+    (name "texlive-ecltree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ecltree/" "tex/latex/ecltree/")
+             (base32
+              "0ki5zzpl8dkz7zwyccmsxfnfq7vl5vlx3gi1py64mgqxfxp0rivw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ecltree")
+    (synopsis "Trees using Epic and Eepic macros")
+    (description
+     "The package recursively draws trees: each subtree is defined in
+a @code{bundle} environment, with a set of leaves described by @code{\\chunk}
+macros.  A chunk may have a @code{bundle} environment inside it.")
+    (license license:lppl)))
+
 (define-public texlive-econometrics
   (package
     (name "texlive-econometrics")
@@ -3325,6 +5550,88 @@ letters statistical distributions constants and symbols matrix operators and
 statistical operators.")
     (license license:lppl1.3+)))
 
+(define-public texlive-edfnotes
+  (package
+    (name "texlive-edfnotes")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/edfnotes/"
+                   "source/latex/edfnotes/"
+                   "tex/latex/edfnotes/")
+             (base32
+              "074db5fanasjzk7clj0l4ka3x1qpmvczwxix0l2v6sjjmyb4xfz4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/edfnotes")
+    (synopsis "Critical annotations to footnotes with @code{ednotes}")
+    (description
+     "The package modifies the annotation commands and label-test mechanism of
+the ednotes package so that critical notes appear on the pages and in the
+order that one would expect.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-edmac
+  (package
+    (name "texlive-edmac")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/edmac/" "source/latex/edmac/"
+                   "tex/generic/edmac/")
+             (base32
+              "1pflqzrzfyw725ypc6lcryzzbizk13j69h4875r6q4fs763kv3w1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/edmac")
+    (synopsis "Typeset critical editions")
+    (description
+     "This is the type example package for typesetting scholarly critical
+editions.")
+    (license license:gpl2)))
+
+(define-public texlive-eledform
+  (package
+    (name "texlive-eledform")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/eledform/"
+                   "source/latex/eledform/"
+                   "tex/latex/eledform/")
+             (base32
+              "1sslbwabzpvx314bfmr6gy1p8nrh89v5mnkgdcby9w42hnfqiw2n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/eledform")
+    (synopsis "Define textual variants")
+    (description
+     "The package provides commands to formalize textual variants in critical
+editions typeset using @code{eledmac}.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-eledmac
+  (package
+    (name "texlive-eledmac")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/eledmac/" "source/latex/eledmac/"
+                   "tex/latex/eledmac/")
+             (base32
+              "1a4579g3rykcgbwjqbky260lx6x7mc41i6cqhi83anf3zilsii0r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/eledmac")
+    (synopsis "Typeset scholarly editions")
+    (description
+     "This package provides a package for typesetting scholarly critical editions,
+replacing the established @code{ledmac} package.  The package supports
+indexing by page and by line numbers, and simple @code{tabular}- and
+@code{array}-style environments.  The package is distributed with the related
+@code{eledpar} package.  The package is now superseded by @code{reledmac}.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-eltex
   (package
     (name "texlive-eltex")
@@ -3451,6 +5758,72 @@ you use any special symbols inside your command.")
 @url{https://www.eolang.org, EO} programming language.")
     (license license:expat)))
 
+(define-public texlive-eplain
+  (package
+    (name "texlive-eplain")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/eplain/"
+                   "doc/info/eplain.info"
+                   "doc/man/man1/eplain.1"
+                   "doc/man/man1/eplain.man1.pdf"
+                   "source/eplain/"
+                   "tex/eplain/")
+             (base32
+              "00nmqhfckrf8ygw6i93d5xnf85i8a88ryadb5ml73w4rllwjxr72")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "eplain")))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-babel
+           texlive-cm
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-complete
+           texlive-knuth-lib
+           texlive-l3backend
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-pdftex
+           texlive-plain
+           texlive-tex-ini-files
+           texlive-unicode-data))
+    (home-page "https://ctan.org/pkg/eplain")
+    (synopsis "Extended plain TeX macros")
+    (description
+     "This package provides an extended version of the plain TeX format,
+adding support for bibliographies, tables of contents, enumerated lists,
+verbatim input of files, numbered equations, tables, two-column output,
+footnotes, hyperlinks in PDF output and commutative diagrams.  Eplain can also
+load some of the more useful LaTeX packages, notably @code{graphics},
+@code{graphicx} (an extended version of graphics), @code{color},
+@code{autopict} (a package instance of the LaTeX picture code), @code{psfrag},
+and @code{url}.")
+    (license license:gpl2+)))
+
+(define-public texlive-epslatex-fr
+  (package
+    (name "texlive-epslatex-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/epslatex-fr/")
+             (base32
+              "1xs9977g9g3i6sipkf7i9jdl8sdm69ci3161a4p7k66qbizi7zvb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fepslatex")
+    (synopsis "French version of @emph{Graphics in LaTeX}")
+    (description
+     "This is the French translation of @code{epslatex}, and describes how to
+use imported graphics in LaTeX(2e) documents.")
+    (license license:gpl3+)))
+
 (define-public texlive-eqexpl
   (package
     (name "texlive-eqexpl")
@@ -3537,6 +5910,69 @@ ellipsograph.  This package extends the functionalities of the @code{curve2e}
 package.")
     (license license:lppl1.3c)))
 
+(define-public texlive-evangelion-jfm
+  (package
+    (name "texlive-evangelion-jfm")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/luatex/evangelion-jfm/"
+                   "tex/luatex/evangelion-jfm/")
+             (base32
+              "1wr55p96v9x58l0bqcnrbs1q47pf5v0rj8pmclfv0jx9mzc3d5j7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/evangelion-jfm")
+    (synopsis "Japanese font metric supporting many advanced features")
+    (description
+     "This package provides a Japanese font metric supporting vertical and
+horizontal typesetting, linegap punctuations, extended fonts, and more
+interesting and helpful features using traditional and simplified Chinese or
+Japanese fonts under LuaTeX-ja.  It also makes full use of the priority
+feature, meeting the standards, and allows easy customisation.")
+    (license license:expat)))
+
+(define-public texlive-expex
+  (package
+    (name "texlive-expex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/expex/" "tex/generic/expex/")
+             (base32
+              "0is4cdpsqycaw8xzc6x1gkg4ldk8v6a1i52qmxw13q8k10qh6b95")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/expex")
+    (synopsis "Linguistic examples and glosses, with reference capabilities")
+    (description
+     "The package provides macros for typesetting linguistic examples and
+glosses, with a refined mechanism for referencing examples and parts of
+examples.  The package can be used with LaTeX or with Plain TeX.")
+    (license license:lppl)))
+
+(define-public texlive-expose-expl3-dunkerque-2019
+  (package
+    (name "texlive-expose-expl3-dunkerque-2019")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/expose-expl3-dunkerque-2019/")
+             (base32
+              "0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/expose-expl3-dunkerque-2019")
+    (synopsis "Using @code{expl3} to implement some numerical algorithms")
+    (description
+     "This is an article, in French, based on a presentation made in Dunkerque
+for the @emph{Stage LaTeX} on 12 June 2019.  The article gives three examples
+of code in @code{expl3} with (lots of) comments: Knuth's algorithm to create
+a list of primes, the sieve of Eratosthenes, Kaprekar sequences.  The package
+contains the code itself, the documentation as a PDF file, and all the files
+needed to produce it.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-extarrows
   (package
     (name "texlive-extarrows")
@@ -3579,6 +6015,27 @@ as @code{\\xleftarrow} from @code{amsmath}), and a simple command to create
 new ones.")
     (license license:lppl1.3+)))
 
+(define-public texlive-facture
+  (package
+    (name "texlive-facture")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/facture/"
+                   "source/xelatex/facture/"
+                   "tex/xelatex/facture/")
+             (base32
+              "1f7w697g12wx1kc7j84yyvxarkwlvmxr10nxcg93dnqz7lpfwvng")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/facture")
+    (synopsis "Generate an invoice")
+    (description
+     "This package provides a simple class that allows production of an invoice,
+with or without VAT; different addresses for delivery and for billing are
+permitted.")
+    (license license:cc-by-sa2.0)))
+
 (define-public texlive-faktor
   (package
     (name "texlive-faktor")
@@ -3624,6 +6081,50 @@ the chapters.  Each chapter can consist of three sections: the lesson, the
 exercises and the activities.")
     (license license:lppl)))
 
+(define-public texlive-fduthesis
+  (package
+    (name "texlive-fduthesis")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/fduthesis/"
+                   "source/latex/fduthesis/"
+                   "tex/latex/fduthesis/")
+             (base32
+              "1imgp79fa048nyvyjzfky1fzzmak4h4j7xa4168ak07qgr5gdq87")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fduthesis")
+    (synopsis "LaTeX thesis template for Fudan University")
+    (description
+     "This package is a LaTeX thesis template package for Fudan University.
+It can make it easy to write theses both in Chinese and English.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-figbas
+  (package
+    (name "texlive-figbas")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/figbas/"
+                   "fonts/afm/public/figbas/"
+                   "fonts/map/dvips/figbas/"
+                   "fonts/tfm/public/figbas/"
+                   "fonts/type1/public/figbas/")
+             (base32
+              "07dc19989sx968hbn3h2m1bbplp8zqh1yj9v92mcp54876rk8bbp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/figbas")
+    (synopsis "Mini-fonts for figured-bass notation in music")
+    (description
+     "This package consists of three mini-fonts (and associated metrics) of
+conventional ligatures for the figured-bass notations 2+, 4+, 5+, 6+ and 9+ in
+music manuscripts.  The fonts are usable with Computer Modern Roman and Sans,
+and Palatino/Palladio, respectively.")
+    (license license:lppl)))
+
 (define-public texlive-filecontentsdef
   (package
     (name "texlive-filecontentsdef")
@@ -3672,6 +6173,47 @@ with pdfTeX, XeTeX and LuaTeX, and can also be used with the
 @code{unicode-math} package.")
     (license license:lppl1.3c)))
 
+(define-public texlive-fixjfm
+  (package
+    (name "texlive-fixjfm")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/fixjfm/" "tex/generic/fixjfm/")
+             (base32
+              "0x3wf7v03jqczvxaslqw422bvccvna31jl5sgld6llvfh7b0ziyx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fixjfm")
+    (synopsis "Fix JFM (for *pTeX)")
+    (description
+     "This package fixes several bugs in the JFM format.  Both LaTeX and plain
+TeX are supported.")
+    (license license:knuth)))
+
+(define-public texlive-fixltxhyph
+  (package
+    (name "texlive-fixltxhyph")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/fixltxhyph/"
+                   "source/latex/fixltxhyph/"
+                   "tex/latex/fixltxhyph/")
+             (base32
+              "1wjrq2gplal5hpij758c4mk6s6aidqp2h25mvf7jmbbzq2nfsyq1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fixltxhyph")
+    (synopsis "Allow hyphenation of partially-emphasised substrings")
+    (description
+     "The package fixes the problem of TeX failing to hyphenate letter strings
+that seem (to TeX} to be words, but which are followed by an apostrophe and
+then an emphasis command.  The cause of the problem is not the apostrophe, but
+the font change in the middle of the string.  The problem arises in Catalan,
+French, Italian and Romansh.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-fixmath
   (package
     (name "texlive-fixmath")
@@ -3742,6 +6284,26 @@ therefore, there are macros to emphasize or downplay some parts of the
 grammar (which is the main novelty compared to other BNF packages).")
     (license license:lppl1.3+)))
 
+(define-public texlive-formation-latex-ul
+  (package
+    (name "texlive-formation-latex-ul")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/formation-latex-ul/"
+                   "source/latex/formation-latex-ul/")
+             (base32
+              "1cvicnjx5ayyj66f18pglz55bajxpqnkgygw3vmvca5ixg8aiwxm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/formation-latex-ul")
+    (synopsis "Introductory LaTeX course in French")
+    (description
+     "This package contains the supporting documentation, slides, exercise files,
+and templates for an introductory LaTeX course (in French) prepared for
+Universite Laval, Quebec, Canada.")
+    (license license:cc-by4.0)))
+
 (define-public texlive-fouridx
   (package
     (name "texlive-fouridx")
@@ -3764,6 +6326,102 @@ level, as appropriate.  The package provides an alternative to the use of the
 @code{\\sideset} command in the @code{amsmath} package.")
     (license license:lppl)))
 
+(define-public texlive-frenchmath
+  (package
+    (name "texlive-frenchmath")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/frenchmath/"
+                   "source/latex/frenchmath/"
+                   "tex/latex/frenchmath/")
+             (base32
+              "0f6x5glpvjxvl5l8nvrjcbc6mfqpyv77y4qyxaaqxcwyhbkp5fw7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/frenchmath")
+    (synopsis "Typesetting mathematics according to French rules")
+    (description
+     "The package provides:
+
+@itemize
+@item capital letters in roman (upright shape) in mathematical mode according
+to French rule (can be optionally disabled),
+@item optionally lowercase Greek letters in upright shape,
+@item correct spacing in math mode after commas, before a semicolon and around
+square brackets,
+@item some useful macros and aliases for symbols used in France such as
+@code{\\infeg}, @code{\\supeg}, @code{\\paral}, @item several macros for
+writing french operator names like @emph{pgcd}, @emph{ppcm}, @emph{Card},
+@emph{rg}, @emph{Vect}.
+@end itemize")
+    (license license:lppl1.3+)))
+
+(define-public texlive-frletter
+  (package
+    (name "texlive-frletter")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/frletter/" "tex/latex/frletter/")
+             (base32
+              "0h8lsfmv0icb616kwhkqqbfh64l43vwc63p4bl8sw9xy2lfal5xm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/frletter")
+    (synopsis "Typeset letters in the French style")
+    (description
+     "This package provides a small class for typesetting letters in France.
+No assumption is made about the language in use.  The class represents a small
+modification of the @code{beletter} class, which is itself a modification of
+the standard LaTeX @code{letter} class.")
+    (license license:public-domain)))
+
+(define-public texlive-frontespizio
+  (package
+    (name "texlive-frontespizio")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/frontespizio/"
+                   "source/latex/frontespizio/"
+                   "tex/latex/frontespizio/")
+             (base32
+              "17xqq0n2b0acpqq2hd5c5qi5fsrhyjwm1c452i3rbdmf1xkqvkvy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/frontespizio")
+    (synopsis "Create a frontispiece for Italian theses")
+    (description
+     "Typesetting a frontispiece independently of the layout of the main
+document is difficult.  This package provides a solution by producing an
+auxiliary TeX file to be typeset on its own and the result is automatically
+included at the next run.  The markup necessary for the frontispiece is
+written in the main document in a @code{frontespizio} environment.
+Documentation is mainly in Italian, as the style is probably apt only to
+theses in Italy.")
+    (license license:lppl)))
+
+(define-public texlive-frpseudocode
+  (package
+    (name "texlive-frpseudocode")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/frpseudocode/"
+                   "tex/latex/frpseudocode/")
+             (base32
+              "1jsrx1slbbqx9hg0a3f7xylxfly2cinw2g5vhhvvgxpp356v6ick")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/frpseudocode")
+    (synopsis "French translation for the @code{algorithmicx} package")
+    (description
+     "This package is intended for use alongside @code{algorithmicx} package.
+Its aim is to provide a French translation of terms and words used in
+algorithms to make it integrate seamlessly in a French written document.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-functan
   (package
     (name "texlive-functan")
@@ -3805,6 +6463,45 @@ possibility to override the standard behavior of norms, ...).")
 nets, diagrams, etc., very easily, in the LaTeX @code{picture} environment.")
     (license license:lppl)))
 
+(define-public texlive-gb4e
+  (package
+    (name "texlive-gb4e")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gb4e/" "tex/latex/gb4e/")
+             (base32
+              "1pi6n59v8vrrm2qaff8z28kwb0xa6nykgrfi9r0lxc8f1d2r5k7f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gb4e")
+    (synopsis "Linguistic tools")
+    (description
+     "This package provides an environment for linguistic examples, tools for
+glosses, and various other goodies.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-gchords
+  (package
+    (name "texlive-gchords")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gchords/" "tex/latex/gchords/")
+             (base32
+              "0wchfk25v6rh5nffjyn8bypwjsqc9pi2rjrw3np65a0sxxc0sl1v")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gchords")
+    (synopsis "Typeset guitar chords")
+    (description
+     "This package provides a LaTeX package for typesetting of guitar chord
+diagrams, including options for chord names, finger numbers and typesetting
+above lyrics.  The bundle also includes a TCL script (@file{chordbox.tcl})
+that provides a graphical application which creates LaTeX files that use
+@file{gchords.sty}.")
+    (license license:gpl3+)))
+
 (define-public texlive-gene-logic
   (package
     (name "texlive-gene-logic")
@@ -3825,6 +6522,27 @@ provides an environment like @code{eqnarray}, a @code{newtheorem}-like
 environment (NewTheorem), and several macros.")
     (license license:isc)))
 
+(define-public texlive-ghab
+  (package
+    (name "texlive-ghab")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ghab/"
+                   "fonts/source/public/ghab/"
+                   "tex/latex/ghab/")
+             (base32
+              "0jknnlcigk6aa48xqvxd67015fxjlmmp36p52c95xrii4lv3m0zk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ghab")
+    (synopsis "Typeset ghab boxes in LaTeX")
+    (description
+     "The package defines a command @code{\\darghab} that will typeset its
+argument in a box with a decorated frame.  The width of the box may be set
+using an optional argument.")
+    (license license:lppl)))
+
 (define-public texlive-ghsystem
   (package
     (name "texlive-ghsystem")
@@ -3875,6 +6593,68 @@ package.  Its main features are:
 @end itemize")
     (license license:lppl1.3c)))
 
+(define-public texlive-gloss-occitan
+  (package
+    (name "texlive-gloss-occitan")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gloss-occitan/"
+                   "source/latex/gloss-occitan/")
+             (base32
+              "0h9w7gk7klwhackx30c7wa2xv23jy2r75zvgs22crhv40h8blj3f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gloss-occitan")
+    (synopsis "Polyglossia support for Occitan")
+    (description
+     "This package provides Occitan language description file for
+Polyglossia.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-gmverse
+  (package
+    (name "texlive-gmverse")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gmverse/" "tex/latex/gmverse/")
+             (base32
+              "13vs1w9pfl4is5f5papwqqm83kmb17d4z7gv8nxkswnav9v5cl56")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gmverse")
+    (synopsis "Package for typesetting (short) poems")
+    (description
+     "This package provides a redefinition of the @code{verse} environment to
+make the @code{\\\\} command optional for line ends and to give it
+a possibility of optical centering and right-hanging alignment of lines broken
+because of length.")
+    (license license:lppl)))
+
+(define-public texlive-gost
+  (package
+    (name "texlive-gost")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/gost/" "bibtex/csf/gost/"
+                   "doc/bibtex/gost/" "source/bibtex/gost/")
+             (base32
+              "0rsqk4r1r741ggvpgg7g51knlaqrrdq9g8yiix66vx3n5v1arp26")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gost")
+    (synopsis "BibTeX styles to format according to GOST")
+    (description
+     "This package provides BibTeX styles to format bibliographies in English,
+Russian or Ukrainian according to GOST 7.0.5-2008 or GOST 7.1-2003.  Both
+8-bit and Unicode (UTF-8) versions of each @code{BibTeX} style, in each case
+offering a choice of sorted and unsorted.  Further, a set of three
+styles (which do not conform to current standards) are retained for backwards
+compatibility.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-gotoh
   (package
     (name "texlive-gotoh")
@@ -3895,6 +6675,32 @@ The package also provides an interface to control various settings including
 algorithm parameters.")
     (license license:expat)))
 
+(define-public texlive-gregoriotex
+  (package
+    (name "texlive-gregoriotex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/luatex/gregoriotex/"
+                   "fonts/source/gregoriotex/"
+                   "fonts/truetype/public/gregoriotex/"
+                   "scripts/gregoriotex/"
+                   "source/luatex/gregoriotex/"
+                   "tex/lualatex/gregoriotex/"
+                   "tex/luatex/gregoriotex/")
+             (base32
+              "0lnpq6rfdb6dg543cmbsm817ziim6arxnzxzbn0wn8i8aw681idr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gregoriotex")
+    (synopsis "Engraving gregorian chant scores")
+    (description
+     "Gregorio is a software application for engraving gregorian chant scores
+on a computer.  Gregorio's main job is to convert a gabc file (simple text
+representation of a score) into a GregorioTeX file, which makes TeX able to
+create a PDF of your score.")
+    (license license:gpl3)))
+
 (define-public texlive-grundgesetze
   (package
     (name "texlive-grundgesetze")
@@ -3916,6 +6722,27 @@ concept-script in the style of his @emph{Grundgesetze der Arithmetik} (Basic
 Laws of Arithmetic).")
     (license license:gpl2)))
 
+(define-public texlive-gtrcrd
+  (package
+    (name "texlive-gtrcrd")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gtrcrd/" "tex/latex/gtrcrd/")
+             (base32
+              "0ndnzkm84ynn3wcnfg6j6fcl87wmd3g9w5d17g1z6qp340asrkp9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gtrcrd")
+    (synopsis "Add chords to lyrics")
+    (description
+     "The package provides the means to specify guitar chords to be played
+with each part of the lyrics of a song.  The syntax of the macros reduces the
+chance of failing to provide a chord where one is needed, and the structure of
+the macros ensures that the chord specification appears immediately above the
+start of the lyric.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-gu
   (package
     (name "texlive-gu")
@@ -3937,6 +6764,189 @@ Afterwards all necessary dimensions are calculated and the scheme is drawn.
 Currently two steps of symmetry reduction are supported.")
     (license license:lppl)))
 
+(define-public texlive-guide-to-latex
+  (package
+    (name "texlive-guide-to-latex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/guide-to-latex/")
+             (base32
+              "1wc5pclv27af2zr6kjjahjzxxlab31d8970jvxr9lxiqllvkxyab")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/guide-to-latex")
+    (synopsis "Examples and more from @emph{Guide to LaTeX}, by Kopka and Daly")
+    (description
+     "This package contains material presented in the book @emph{Guide to LaTeX},
+4th edition, by Helmut Kopka and Patrick W. Daly as code, sample figures,
+processed files, as well as solutions to the exercices.")
+    (license license:lppl1.3c+)))
+
+(define-public texlive-guitar
+  (package
+    (name "texlive-guitar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/guitar/" "source/latex/guitar/"
+                   "tex/latex/guitar/")
+             (base32
+              "0rywmlz59mjm59n4607qk9fa62w1c9qv9iyyja8k9vb4pc9yijrc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/guitar")
+    (synopsis "Guitar chords and song texts")
+    (description
+     "This package provides (La)TeX macros for typesetting guitar chords over
+song texts.  Note that this package only places arbitrary TeX code over the
+lyrics.  To typeset the chords graphically (and not only by name), the author
+recommends use of an additional package such as @code{gchords}.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-guitarchordschemes
+  (package
+    (name "texlive-guitarchordschemes")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/guitarchordschemes/"
+                   "tex/latex/guitarchordschemes/")
+             (base32
+              "189xx0y549ss4ip8x2f1rpcqyad5njrni785sxmy2cghqbdcgzzn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/guitarchordschemes")
+    (synopsis "Guitar chord and scale tablatures")
+    (description
+     "This package provides two commands (@code{\\chordscheme} and
+@code{\\scales}).  With those commands it is possible to draw schematic
+diagrams of guitar chord tablatures and scale tablatures.  Both commands know
+a range of options that allow wide customization of the output.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-guitartabs
+  (package
+    (name "texlive-guitartabs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/guitartabs/"
+                   "tex/latex/guitartabs/")
+             (base32
+              "1hk5yl7za7mm6cpg9g4z5wnq4m2nwm41sq8w7m8ic38sr85n67zz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/guitartabs")
+    (synopsis "Class for drawing guitar tablatures easily")
+    (description
+     "This package provides is a simple LaTeX2e class that allows guitarists
+to create basic guitar tablatures using LaTeX.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-gustlib
+  (package
+    (name "texlive-gustlib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bib/gustlib/" "bibtex/bst/gustlib/"
+                   "doc/plain/gustlib/" "tex/plain/gustlib/")
+             (base32
+              "1jfmsx5zw9yb8fkhw4fad82m48n7fs1inmx471mr7ys0i7y1l92v")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gustlib")
+    (synopsis "Plain macros for much core and extra functionality, from GUST")
+    (description
+     "This package includes Plain TeX macros adding extra functionalities.
+This comprises bibliography support, token manipulation, cross-references,
+verbatim, determining length of a paragraph's last line, multicolumn output,
+Polish bibliography and index styles, prepress and color separation, graphics
+manipulation, and tables.")
+    (license (list license:knuth license:public-domain))))
+
+(define-public texlive-gustprog
+  (package
+    (name "texlive-gustprog")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/gustprog/")
+             (base32
+              "07qx4xvyqb4p0cx0macjgyg0pcxgcmdxmzfsx9ah5s0dqvminwrc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gustprog")
+    (synopsis "Utility programs for Polish users of TeX")
+    (description
+     "This package provides utility programs for Polish users of TeX.  These
+programs are provided as sources, not installed in the @file{bin}
+directories.")
+    (license license:public-domain)))
+
+(define-public texlive-happy4th
+  (package
+    (name "texlive-happy4th")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/happy4th/")
+             (base32
+              "1x950scxbvcgwycpakflpklc775pknjab620g099dnsfrpb76f4a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/happy4th")
+    (synopsis "Firework display in obfuscated TeX")
+    (description
+     "The output PDF file gives an amusing display, as the reader pages
+through it.")
+    (license license:public-domain)))
+
+(define-public texlive-harmony
+  (package
+    (name "texlive-harmony")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/harmony/" "tex/latex/harmony/")
+             (base32
+              "0ky4aiv3zvykfwalf1md4lzjbr9pc14i93xsxdwl25jcsi2kvjk7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/harmony")
+    (synopsis "Typeset harmony symbols, etc., for musicology")
+    (description
+     "The package @file{harmony.sty} helps typesetting harmony symbols for
+musicology.")
+    (license license:lppl)))
+
+(define-public texlive-hanzibox
+  (package
+    (name "texlive-hanzibox")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/hanzibox/"
+                   "source/xelatex/hanzibox/"
+                   "tex/xelatex/hanzibox/")
+             (base32
+              "1bgbybzz5h79i2l3mbjxm11x9nsxm366c6d2mha9j5qabjghakya")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-ctex))
+    (home-page "https://ctan.org/pkg/hanzibox")
+    (synopsis
+     "Boxed Chinese characters with Pinyin above and translation below")
+    (description
+     "This is a LaTeX package written to simplify the input of Chinese with
+Hanyu Pinyin and translation.  Hanyu Pinyin is placed above Chinese with the
+@code{xpinyin} package, and the translation is placed below.  The package can
+be used as a utility for learning to write and pronounce Chinese characters,
+for Chinese character learning plans, presentations, exercise booklets and
+other documentation work.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-helmholtz-ellis-ji-notation
   (package
     (name "texlive-helmholtz-ellis-ji-notation")
@@ -4116,6 +7126,144 @@ adds a collection of useful @acronym{HEP, High Energy Physics} units to the
 existing SIunits set.")
     (license license:lppl)))
 
+(define-public texlive-hitex
+  (package
+    (name "texlive-hitex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/hitex/base/"
+                   "doc/man/man1/hishrink.1"
+                   "doc/man/man1/hishrink.man1.pdf"
+                   "doc/man/man1/histretch.1"
+                   "doc/man/man1/histretch.man1.pdf"
+                   "doc/man/man1/hitex.1"
+                   "doc/man/man1/hitex.man1.pdf"
+                   "makeindex/hitex/"
+                   "tex/hitex/base/")
+             (base32
+              "19q0sd0mhsamns9i7gr85n2n0jjc6p2n2xcc7s9b65hz8zp0bdbk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "hilatex" "hitex")))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-babel
+           texlive-cm
+           texlive-etex
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-base
+           texlive-knuth-lib
+           texlive-l3backend
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-plain
+           texlive-tex-ini-files
+           texlive-unicode-data))
+    (home-page "https://ctan.org/pkg/hitex")
+    (synopsis "TeX extension writing HINT output for on-screen reading")
+    (description
+     "This package provides a TeX extension that generates HINT output.  The
+HINT file format is an alternative to the DVI and PDF formats which was
+designed specifically for on-screen reading of documents.  Especially on
+mobile devices, reading DVI or PDF documents can be cumbersome.  Mobile
+devices are available in a large variety of sizes but typically are not large
+enough to display documents formated for a4/letter-size paper.  To compensate
+for the limitations of a small screen, users are used to alternating between
+landscape (few long lines) and portrait (more short lines) mode.  The HINT
+format supports variable and varying screen sizes, leveraging the ability of
+TeX to format a document for nearly-arbitrary values of @code{\\hsize} and
+@code{\\vsize}.")
+    (license license:x11)))
+
+(define-public texlive-hrlatex
+  (package
+    (name "texlive-hrlatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/hrlatex/" "source/latex/hrlatex/"
+                   "tex/latex/hrlatex/")
+             (base32
+              "16npkf18gy8clwkzvm0qysfv90wb6979cppj5rykn1x0icsvw2ix")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/hrlatex")
+    (synopsis "LaTeX support for Croatian documents")
+    (description
+     "This package simplifies creation of new documents for the (average)
+Croatian user.  As an example, a class file @code{hrdipl.cls} (designed for
+the graduation thesis at the University of Zagreb) and sample thesis documents
+are included.")
+    (license license:lppl)))
+
+(define-public texlive-huaz
+  (package
+    (name "texlive-huaz")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/huaz/" "tex/latex/huaz/")
+             (base32
+              "103wnzw8401d1ckc31y6ga75bph0ls71hxs0hdkszw719ghm7vjr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/huaz")
+    (synopsis "Automatic Hungarian definite articles")
+    (description
+     "In Hungarian there are two definite articles, @samp{a} and @samp{az},
+which are determined by the pronunciation of the subsequent word.  The
+@code{huaz} package helps the user to insert automatically the correct
+definite article for cross-references and other commands containing text.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-hulipsum
+  (package
+    (name "texlive-hulipsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/hulipsum/"
+                   "source/latex/hulipsum/"
+                   "tex/latex/hulipsum/")
+             (base32
+              "1w62vawh2l49bgm7ivprmz61b71qsf38xdsrq6x2dc2ywzvs4z2f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/hulipsum")
+    (synopsis "Hungarian dummy text (Lorum ipse)")
+    (description
+     "Lorem ipsum is an improper Latin filler dummy text, cf.@: the
+@code{lipsum} package.  It is commonly used for demonstrating the textual
+elements of a document template.  Lorum ipse is a Hungarian variation of Lorem
+ipsum. (Lorum is a Hungarian card game, and ipse is a Hungarian slang word
+meaning bloke.)  With this package you can typeset 150 paragraphs of Lorum
+ipse.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-hvarabic
+  (package
+    (name "texlive-hvarabic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/hvarabic/" "tex/latex/hvarabic/")
+             (base32
+              "0kjx2x3fnpqw6hybw7ifdlqad4mmbacba290qwlhhggpjrxsvp39")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/hvarabic")
+    (synopsis "Macros for RTL typesetting")
+    (description
+     "This package provides some macros for right-to-left typesetting.  It
+uses by default the Arabic fonts Scheherazade and ALM fixed, the only
+monospaced Arabic font.  The package only works with LuaLaTeX or XeLaTeX.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-ibrackets
   (package
     (name "texlive-ibrackets")
@@ -4137,6 +7285,98 @@ existing SIunits set.")
 when using for open intervals.")
     (license license:lppl1.3+)))
 
+(define-public texlive-impatient
+  (package
+    (name "texlive-impatient")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/impatient/")
+             (base32
+              "03cjl3lg7k7p4h8drw7vcbw6ymgmm2clv6sgfs3hdixs8dmab1b2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/impatient")
+    (synopsis "@emph{TeX for the Impatient} book")
+    (description
+     "@emph{TeX for the Impatient} is a book on TeX, Plain TeX and Eplain.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-impatient-cn
+  (package
+    (name "texlive-impatient-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/impatient-cn/")
+             (base32
+              "1pc20pb0las3slam1d9hmqigipmr6r98wwif12m33mm750vmq65i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/impatient")
+    (synopsis "Chinese translation of @emph{TeX for the Impatient} book")
+    (description
+     "@emph{TeX for the Impatient} is a book (of around 350 pages) on TeX,
+Plain TeX and Eplain.  This is its Chinese translation.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-impatient-fr
+  (package
+    (name "texlive-impatient-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/impatient-fr/")
+             (base32
+              "1qwdllmi0ci304smf4yl6g8ah083jrch9clkyav7r5qsxnhwxbxh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/impatient")
+    (synopsis "French translation of @emph{TeX for the Impatient} book")
+    (description
+     "@emph{TeX for the Impatient} is a book (of around 350 pages) on TeX,
+Plain TeX and Eplain.  This is its French translation.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-impnattypo
+  (package
+    (name "texlive-impnattypo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/impnattypo/"
+                   "source/latex/impnattypo/"
+                   "tex/latex/impnattypo/")
+             (base32
+              "05ddbpxvybr0a7sg1ximsifvgjg83qwx5pd9xcc22bliz3j5ixvm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/impnattypo")
+    (synopsis "Support typography of l'Imprimerie Nationale Francaise")
+    (description
+     "The package provides useful macros implementing recommendations by the
+French Imprimerie Nationale.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-imsproc
+  (package
+    (name "texlive-imsproc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/imsproc/"
+                   "tex/xelatex/imsproc/")
+             (base32
+              "1akzdc4nas4fkmlhm6xp97xw65vm5bif73jq2ki5if5kwssxc38z")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/imsproc")
+    (synopsis "Typeset IMS conference proceedings")
+    (description
+     "The class typesets papers for IMS (Iranian Mathematical Society)
+conference proceedings.  The class uses the XePersian package.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-includernw
   (package
     (name "texlive-includernw")
@@ -4157,6 +7397,24 @@ when using for open intervals.")
 installed.")
     (license license:lppl1.3c)))
 
+(define-public texlive-install-latex-guide-zh-cn
+  (package
+    (name "texlive-install-latex-guide-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/install-latex-guide-zh-cn/")
+             (base32
+              "1mb6d92c7llz5cpkir4d1wf0l2yvmskl0kxgch9r5zjmb67qflin")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/install-latex-guide-zh-cn")
+    (synopsis "Short introduction to LaTeX installation written in Chinese")
+    (description
+     "This package will introduce the operations related to installing TeX
+Live and mainly introducing command line operations, in Chinese.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-interval
   (package
     (name "texlive-interval")
@@ -4178,6 +7436,27 @@ The package also supports fence scaling and ensures that the enclosing fences
 will end up having the proper closing and opening types.")
     (license license:lppl1.3+)))
 
+(define-public texlive-intro-scientific
+  (package
+    (name "texlive-intro-scientific")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/intro-scientific/")
+             (base32
+              "0bzgi3zg0lm6zwjnac90ihaqwcvhindfdphjijv7mh11ii0qxlmf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/intro-scientific")
+    (synopsis "Introducing scientific/mathematical documents using LaTeX")
+    (description
+     "@emph{Writing Scientific Documents Using LaTeX} is an article
+introducing the use of LaTeX in typesetting scientific documents.  It covers
+the basics of creating a new LaTeX document, special typesetting
+considerations, mathematical typesetting and graphics.  It also touches on
+bibliographic data and BibTeX.")
+    (license license:lppl)))
+
 (define-public texlive-ionumbers
   (package
     (name "texlive-ionumbers")
@@ -4212,6 +7491,25 @@ Finally, an @emph{e} starts the exponent of the number.  For example,
 @samp{$21e6$} may be output as @samp{$26\\times10\\,^@{6@}$}.")
     (license license:gpl3+)))
 
+(define-public texlive-ipaex
+  (package
+    (name "texlive-ipaex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/ipaex/"
+                   "fonts/truetype/public/ipaex/")
+             (base32
+              "0zpvpdpry4ckgbs79hy0gv8cc98x9c0cizzdqzg2qkx8clp8y1bn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ipaex")
+    (synopsis "IPA (Japanese) fonts")
+    (description
+     "The fonts provide fixed-width glyphs for Kana and Kanji characters,
+proportional width glyphs for Western characters.")
+    (license license:ipa)))
+
 (define-public texlive-isomath
   (package
     (name "texlive-isomath")
@@ -4234,6 +7532,57 @@ characters, and defines macros for markup of vector, matrix and tensor
 symbols.")
     (license license:lppl)))
 
+(define-public texlive-itnumpar
+  (package
+    (name "texlive-itnumpar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/itnumpar/"
+                   "source/latex/itnumpar/"
+                   "tex/latex/itnumpar/")
+             (base32
+              "1jjl1mskg0vsxfjg2wpnqi0y462mv2qrfsg15zjri83zwrilaa6f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/itnumpar")
+    (synopsis "Spell numbers in words (Italian)")
+    (description
+     "Sometimes we need to say ``Capitolo primo'' or ``Capitolo uno'' instead
+of ``Capitolo 1'', that is, spelling the number in words instead of the usual
+digit form.  This package provides support for spelling out numbers in Italian
+words, both in cardinal and in ordinal form.")
+    (license license:lppl)))
+
+(define-public texlive-jfmutil
+  (package
+    (name "texlive-jfmutil")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/jfmutil/" "scripts/jfmutil/")
+             (base32
+              "1c23wak28a1kwgsk6bw1ifa794zywmqzm7a6w5g883nmbfmsq388")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "jfmutil.pl")))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/jfmutil")
+    (synopsis "Utility to process pTeX-extended TFM and VF")
+    (description
+     "This program provides functionality to process data files (JFM and VF) that
+form logical fonts used in (u)pTeX.  The functions currently available
+include:
+@itemize
+@item The mutual conversion between Japanese virtual fonts (pairs of VF and
+JFM) and files in the ZVP format, which is an original text format
+representing data in virtual fonts.  This function can be seen as
+a counterpart to the @code{vftovp} and @code{vptovf} programs.
+@item The mutual conversion between VF files alone and files in the ZVP0
+format, which is a subset of the ZVP format.
+@end itemize")
+    (license license:expat)))
+
 (define-public texlive-jkmath
   (package
     (name "texlive-jkmath")
@@ -4275,6 +7624,90 @@ Notebook format to proper LaTeX so it gets included seamlessly, supporting
 text, LaTeX, images, etc.")
     (license license:asl2.0)))
 
+(define-public texlive-jura
+  (package
+    (name "texlive-jura")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/jura/" "source/latex/jura/"
+                   "tex/latex/jura/")
+             (base32
+              "1lxss00mymcxljzaqmwj9zpy9cpc71a0a4g6bqrzvgspj506jdp7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jura")
+    (synopsis "Document class for German legal texts")
+    (description
+     "This package implements the standard layout for German term papers in law
+(one-and-half linespacing, 7 cm margins, etc.).  It includes @code{alphanum}
+that permits alphanumeric section numbering (e.g., @samp{A. Introduction};
+@samp{III. International Law}).")
+    (license license:gpl3+)))
+
+(define-public texlive-juraabbrev
+  (package
+    (name "texlive-juraabbrev")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/juraabbrev/"
+                   "makeindex/juraabbrev/"
+                   "source/latex/juraabbrev/"
+                   "tex/latex/juraabbrev/")
+             (base32
+              "0xybpc9j3x0gvq8hs5hrbb6ivilmp8ayjp6bq8xd7gsy7awag5d7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/juraabbrev")
+    (synopsis "Abbreviations for typesetting (German) juridical documents")
+    (description
+     "This package should be helpful for people working on (German) law.  It
+helps you to handle abbreviations and creates a list of those (pre-defined)
+abbreviations that have actually been used in the document.")
+    (license license:gpl3+)))
+
+(define-public texlive-juramisc
+  (package
+    (name "texlive-juramisc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/juramisc/" "tex/latex/juramisc/")
+             (base32
+              "0ka6gmlb0vlg0317ihjnlklvaajj4rrbi7c2iisngz69fgjm26iy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/juramisc")
+    (synopsis "Typesetting German juridical documents")
+    (description
+     "This package provides a collection of classes for typesetting court
+sentences, legal opinions, books and dissertations for German lawyers.
+A @code{jurabook} class is also provided, which may not yet be complete.")
+    (license license:lppl)))
+
+(define-public texlive-jurarsp
+  (package
+    (name "texlive-jurarsp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/jurarsp/" "doc/latex/jurarsp/"
+                   "source/latex/jurarsp/" "tex/latex/jurarsp/")
+             (base32
+              "03lwp5v6fmq2zhiwaf4qj52k44grzh119il4pdp2fvgl2q4a39sm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jurarsp")
+    (synopsis
+     "Citations of judgements and official documents in (German) juridical
+documents")
+    (description
+     "This package should be helpful for people working on (German) law.
+It (ab)uses BibTeX for citations of judgements and official documents.  For
+this purpose, a special BibTeX-style is provided.")
+    (license license:gpl3+)))
+
 (define-public texlive-karnaugh
   (package
     (name "texlive-karnaugh")
@@ -4339,6 +7772,187 @@ using TikZ.  Though similar to the @code{karnaugh} macros, it provides
 a key-value system to customize Karnaugh maps and a proper LaTeX package.")
     (license license:lppl1.2+)))
 
+(define-public texlive-kaytannollista-latexia
+  (package
+    (name "texlive-kaytannollista-latexia")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/kaytannollista-latexia/")
+             (base32
+              "12ysr2501m77zjljpi30cxw45drn2hw552yk9asksvrbvavjphm0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/kaytannollista-latexia")
+    (synopsis "Practical manual for LaTeX (Finnish)")
+    (description
+     "@emph{Kaytannollista Latexia} is a practical manual for LaTeX written in
+the Finnish language.  The manual covers most of the topics that a typical
+document author needs.  So it can be a useful guide for beginners as well as
+a reference manual for advanced users.")
+    (license license:cc-by-sa4.0)))
+
+(define-public texlive-kotex-oblivoir
+  (package
+    (name "texlive-kotex-oblivoir")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/kotex-oblivoir/"
+                   "tex/latex/kotex-oblivoir/")
+             (base32
+              "0hq22jdzcg516zx26mkijpnk5i8gdj30lhjldly8plwmfznhzwwa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-kotex-utf texlive-memoir))
+    (home-page "https://ctan.org/pkg/kotex-oblivoir")
+    (synopsis "LaTeX document class for typesetting Korean documents")
+    (description
+     "The class is based on @code{memoir}, and is adapted to typesetting
+Korean documents.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-kotex-plain
+  (package
+    (name "texlive-kotex-plain")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/kotex-plain/"
+                   "tex/plain/kotex-plain/")
+             (base32
+              "0r79cvm7iy1266yvrn60vwq9wjkgmzgfihbz9dqc84lif5q8kmnw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/kotex-plain")
+    (synopsis "Macros for typesetting Korean under Plain TeX")
+    (description
+     "The package provides macros for typesetting Hangul, the native alphabet
+of the Korean language, using Plain TeX.  Korean text should be encoded in
+UTF-8.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-kotex-utf
+  (package
+    (name "texlive-kotex-utf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/kotex-utf/"
+                   "tex/latex/kotex-utf/")
+             (base32
+              "1l3hlav7fihws2ly49fn994sc7mjcdwk3zp4xhkgvm0mqjbxzxzz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-cjk-ko))
+    (home-page "https://ctan.org/pkg/kotex-utf")
+    (synopsis "Typeset Hangul, coded in UTF-8")
+    (description
+     "The package typesets Hangul, which is the native alphabet of the Korean
+language; input Korean text should be encoded in UTF-8.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-kotex-utils
+  (package
+    (name "texlive-kotex-utils")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/kotex-utils/"
+                   "makeindex/kotex-utils/"
+                   "scripts/kotex-utils/")
+             (base32
+              "01qmr50fr3i2gzgjyj69jgj4czf62s22z58kja6hbqygczc1jba3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:link-scripts
+           #~(list "jamo-normalize.pl" "komkindex.pl" "ttf2kotexfont.pl")))
+    (inputs (list perl))
+    (propagated-inputs (list texlive-kotex-utf))
+    (home-page "https://ctan.org/pkg/kotex-utils")
+    (synopsis "Utility scripts and support files for typesetting Korean")
+    (description
+     "The bundle provides scripts and support files for index generation in
+Korean language typesetting.")
+    (license license:lppl)))
+
+(define-public texlive-knuth-errata
+  (package
+    (name "texlive-knuth-errata")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/knuth-errata/")
+             (base32
+              "0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/knuth-errata")
+    (synopsis "Knuth's published errata")
+    (description
+     "These files record details of problems reported in Knuth's Computers and
+Typesetting series of books, for the Computer Modern fonts, and for TeX,
+Metafont and related programs.")
+    (license license:knuth)))
+
+(define-public texlive-knuth-hint
+  (package
+    (name "texlive-knuth-hint")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/knuth-hint/")
+             (base32
+              "13ka3b636vwgwz29bl9mh40incldq6mk6cr6q3by01xj12za41kw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/knuth-hint")
+    (synopsis "HINT collection of typeset C/WEB sources in TeX Live")
+    (description
+     "The @code{knuth-hint} package contains the large collection of HINT
+documents for many of the CWEB amd WEB sources of programs in the TeX Live
+distribution (and, for technical reasons, PDF documents for CTWILL and XeTeX).
+Each program is presented in its original form as written by the respective
+authors, and in the changed form as used in TeX Live.  Care has been taken to
+keep the section numbering intact, so that you can study the codes and the
+changes in parallel.
+
+Also included are the errata for Donald Knuth's @emph{Computers &
+Typesetting}.  HINT is the dynamic document format created by Martin Ruckert's
+HiTeX engine.  The HINT files can be viewed with the @code{hintview}
+application.  The @code{knuth-hint} package is a showcase of HiTeX's
+capabilities.")
+    (license (list license:public-domain license:knuth))))
+
+(define-public texlive-knuth-pdf
+  (package
+    (name "texlive-knuth-pdf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/knuth-pdf/")
+             (base32
+              "14by59b7d1fi4jh5d0xvzb56g9pgd5zi1sdvfgi50vrpn28gfqfw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/knuth-pdf")
+    (synopsis "PDF collection of typeset C/WEB sources in TeX Live")
+    (description
+     "Here you find a large collection of PDF documents for many C/WEB
+programs in TeX Live, both in their original form as written by their
+respective authors, and in the changed form as they are actually used in the
+TeX Live system.  Care has been taken to keep the section numbering intact, so
+that you can study the sources and their changes in parallel.
+
+Also included is the collection of errata for Donald Knuth's @emph{Computers &
+Typesetting series}.  Although not all the texts here are written or
+maintained by Donald Knuth, it is more convenient for everything to be
+collected in one place for reading and searching.  They all stem from the
+system that Knuth created.  The central entry point is the index file, with
+links to the individual documents, either in HTML or in PDF format.")
+    (license license:public-domain)))
+
 (define-public texlive-kvmap
   (package
     (name "texlive-kvmap")
@@ -4361,6 +7975,371 @@ It provides a tabular-like input syntax and support for drawing bundles
 (implicants) around adjacent values.")
     (license license:lppl1.3c)))
 
+(define-public texlive-l2picfaq
+  (package
+    (name "texlive-l2picfaq")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2picfaq/")
+             (base32
+              "0mk8d082gcqlxw2x7d2w85sm6i51928pijybzbsh9fy2rfcv99xz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2picfaq")
+    (synopsis "LaTeX pictures how-to (German)")
+    (description
+     "The document (in German) is a collection of how-to notes about LaTeX and
+pictures.  The aim of the document is to provide a solution, in the form of
+some sample code, for every problem.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-l2tabu
+  (package
+    (name "texlive-l2tabu")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2tabu/")
+             (base32
+              "1jl0n43bqbys0c9v0xb4sjql0gvk4r14ldzp2rbwzjsk8a39q8v8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2tabu")
+    (synopsis "Obsolete packages and commands")
+    (description
+     "This package provides a German translation of the @emph{l2tabu}
+practical guide to LaTeX2e by Mark Trettin.  It focuses on obsolete packages
+and commands.")
+    (license license:gpl3+)))
+
+(define-public texlive-l2tabu-english
+  (package
+    (name "texlive-l2tabu-english")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2tabu-english/")
+             (base32
+              "0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2tabu-english")
+    (synopsis "English translation of @emph{Obsolete packages and commands}")
+    (description
+     "This package provides an English translation of the @emph{l2tabu}
+practical guide to LaTeX2e by Mark Trettin.  It focuses on obsolete packages
+and commands.")
+    (license license:fdl1.2+)))
+
+(define-public texlive-l2tabu-french
+  (package
+    (name "texlive-l2tabu-french")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2tabu-french/")
+             (base32
+              "0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2tabu-french")
+    (synopsis "English translation of @emph{Obsolete packages and commands}")
+    (description
+     "This package provides a French translation of the @emph{l2tabu}
+practical guide to LaTeX2e by Mark Trettin.  It focuses on obsolete packages
+and commands.")
+    (license license:fdl1.2+)))
+
+(define-public texlive-l2tabu-italian
+  (package
+    (name "texlive-l2tabu-italian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2tabu-italian/")
+             (base32
+              "0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2tabu-italian")
+    (synopsis "Italian translation of @emph{Obsolete packages and commands}")
+    (description
+     "This package provides an Italian translation of the @emph{l2tabu}
+practical guide to LaTeX2e by Mark Trettin.  It focuses on obsolete packages
+and commands.")
+    (license license:fdl1.2+)))
+
+(define-public texlive-l2tabu-spanish
+  (package
+    (name "texlive-l2tabu-spanish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/l2tabu-spanish/")
+             (base32
+              "1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/l2tabu-spanish")
+    (synopsis "Spanish translation of @emph{Obsolete packages and commands}")
+    (description
+     "This package provides a Spanish translation of the @emph{l2tabu}
+practical guide to LaTeX2e by Mark Trettin.  It focuses on obsolete packages
+and commands.")
+    (license license:public-domain)))
+
+(define-public texlive-lambda
+  (package
+    (name "texlive-lambda")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "tex/lambda/base/" "tex/lambda/config/")
+             (base32
+              "1ajx5g5cd5s9jqr4b196689k7zmlxmhhksly88qps31s7lzaprvn")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lambda")
+    (synopsis "LaTeX for Omega and Aleph")
+    (description "This is LaTeX for Omega and Aleph.")
+    (license license:lppl1.0+)))
+
+(define-public texlive-langnames
+  (package
+    (name "texlive-langnames")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/langnames/"
+                   "source/latex/langnames/"
+                   "tex/latex/langnames/")
+             (base32
+              "0fi2xfy33d970g8wdnzasqdzgjcj7rkss9y7pzsp89z1hij3d1z2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/langnames")
+    (synopsis "Name languages and their genetic affiliations consistently")
+    (description
+     "This package attempts to make the typing of language names, codes, and
+families slightly easier by providing macros to access pre-defined
+language --- code --- family combinations from two important databases, as
+well as the possibility to create new combinations.  It may be particularly
+useful for large, collaborative projects as well as typologically minded ones
+with a variety of language examples.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-latex-notes-zh-cn
+  (package
+    (name "texlive-latex-notes-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/latex-notes-zh-cn/")
+             (base32
+              "0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-notes-zh-cn")
+    (synopsis "Chinese Introduction to TeX and LaTeX")
+    (description
+     "The document is an introduction to TeX and LaTeX, in Chinese.  It covers
+basic text typesetting, mathematics, graphics, tables, Chinese language &
+fonts, and some miscellaneous features (hyperlinks, long documents,
+bibliographies, indexes and page layout).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-latex2e-help-texinfo-fr
+  (package
+    (name "texlive-latex2e-help-texinfo-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/info/latex2e-fr.info"
+                   "doc/latex/latex2e-help-texinfo-fr/")
+             (base32
+              "13s0zjwk3m95kbx4qrz2xwp8kifzc2zmasp1ks9l2acf1nqfac9p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex2e-help-texinfo-fr")
+    (synopsis "French translation of @code{latex2e-help-texinfo}")
+    (description
+     "This package provides a complete French translation of
+@code{latex2e-help-texinfo}.")
+    (license license:public-domain)))
+
+(define-public texlive-latex2e-help-texinfo-spanish
+  (package
+    (name "texlive-latex2e-help-texinfo-spanish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/info/latex2e-es.info"
+                   "doc/latex/latex2e-help-texinfo-spanish/")
+             (base32
+              "1v3wa99phdmsiajbq0ad4h939cpwjwzpq88h6s0796h5fr34hrvq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex2e-help-texinfo")
+    (synopsis "Spanish translation of @code{latex2e-help-texinfo}")
+    (description
+     "This package provides a complete Spanish translation of
+@code{latex2e-help-texinfo}.")
+    (license license:public-domain)))
+
+(define-public texlive-latex4musicians
+  (package
+    (name "texlive-latex4musicians")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex4musicians/")
+             (base32
+              "1zvy2pa93kyn056d5n0irzdq5xmzki6d35zxacxfy19r0g9rwq6f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex4musicians")
+    (synopsis "Guide for combining LaTeX and music")
+    (description
+     "This guide, @emph{LaTeX for Musicians}, explains how to create LaTeX
+documents that include several kinds of music elements: music symbols, song
+lyrics, guitar chords diagrams, lead sheets, music excerpts, guitar
+tablatures, multi-page scores.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-latexcheat-de
+  (package
+    (name "texlive-latexcheat-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexcheat-de/")
+             (base32
+              "1cpqcvqkkyb2bf87yjvc2migxawnacx5mva8dapma7hmwx0z7rhm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexcheat-de")
+    (synopsis "LaTeX cheat sheet, in German")
+    (description
+     "This is a translation to German of Winston Chang's LaTeX cheat sheet (a
+reference sheet for writing scientific papers).  It has been adapted to German
+standards using the KOMA script document classes.")
+    (license license:lppl)))
+
+(define-public texlive-latexcheat-esmx
+  (package
+    (name "texlive-latexcheat-esmx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexcheat-esmx/")
+             (base32
+              "1d6nk9p9adlhgr28mnnizrxzzqlk20zw2clcddqlaa8pn73dqhcm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexcheat-esmx")
+    (synopsis "LaTeX cheat sheet, in Spanish")
+    (description
+     "This is a translation to Spanish (Castellano) of Winston Chang's LaTeX
+cheat sheet (a reference sheet for writing scientific papers).")
+    (license license:lppl)))
+
+(define-public texlive-latino-sine-flexione
+  (package
+    (name "texlive-latino-sine-flexione")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latino-sine-flexione/"
+                   "tex/latex/latino-sine-flexione/")
+             (base32
+              "0py61xhgg73jlz6f9p7g9r06pn7m648d29068i4d97gqc20i2jvc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latino-sine-flexione")
+    (synopsis "LaTeX support for documents written in Peano's Interlingua")
+    (description
+     "Latino sine Flexione (or Interlingua) is a language constructed by
+Giuseppe Peano at the beginning of the last century.  This simplified Latin is
+designed to be an instrument for international cooperation, especially in the
+academic sphere.  This package provides the necessary translations to use the
+language within a LaTeX document.  It also imports @code{fontenc} in order to
+be able to use ligatures and quotation marks.  Finally, it offers a text in
+Interlingua that can be used as a dummy text: @emph{Fundamento de
+intelligentia}.")
+    (license license:public-domain)))
+
+(define-public texlive-leadsheets
+  (package
+    (name "texlive-leadsheets")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/leadsheets/"
+                   "tex/latex/leadsheets/")
+             (base32
+              "12aly170pf10dw82i6rykiaxl9r5mmva7kvkhlywir4s6gx07gjc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/leadsheets")
+    (synopsis "Typesetting leadsheets and songbooks")
+    (description
+     "This LaTeX package offers support for typesetting simple leadsheets of
+songs, i.e., song lyrics and the corresponding chords.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-ledmac
+  (package
+    (name "texlive-ledmac")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ledmac/" "source/latex/ledmac/"
+                   "tex/latex/ledmac/")
+             (base32
+              "03b23rkhdhvr0rbmp687p76mlq68crsfyh67frxbnh11vccmfgnc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ledmac")
+    (synopsis "Typeset scholarly editions")
+    (description
+     "This package provides a macro package for typesetting scholarly critical
+editions.  The @code{ledmac} package is a LaTeX port of the Plain TeX EDMAC
+macros.  It supports indexing by page and line number and simple
+@code{tabular}- and @code{array}-style environments.  The package is
+distributed with the related @code{ledpar} and @code{ledarab} packages.  The
+package is now superseded by @code{reledmac}.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-letgut
+  (package
+    (name "texlive-letgut")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/lualatex/letgut/"
+                   "source/lualatex/letgut/"
+                   "tex/lualatex/letgut/")
+             (base32
+              "1wk6bibz59jw9vx2syq0hfi2yz69kr3w87839bhnl3svz2x958nn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/letgut")
+    (synopsis
+     "Class for the newsletter @code{La Lettre GUTenberg} of the French TeX User
+Group GUTenberg")
+    (description
+     "The French TeX User Group GUTenberg has been publishing @emph{The
+GUTenberg Letter}, its irregular newsletter, since February 1993.  For this
+purpose, a dedicated, in-house (La)TeX class was gradually created but,
+depending on new needs and on the people who were publishing the Newsletter,
+its development was somewhat erratic; in particular, it would not have been
+possible to publish its code as it was.  In addition, its documentation was
+non-existent.  The Board of Directors of the association, elected in November
+2020, wished to provide a better structured, more perennial and documented
+class, able to be published on the CTAN.  This is now done with the present
+@code{letgut} class.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-letterswitharrows
   (package
     (name "texlive-letterswitharrows")
@@ -4383,6 +8362,44 @@ with the symbols.  While it is possible to set arrows over longer strings of
 symbols, the focus lies on single characters.")
     (license license:lppl1.3+)))
 
+(define-public texlive-lexikon
+  (package
+    (name "texlive-lexikon")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lexikon/" "tex/latex/lexikon/")
+             (base32
+              "0x2h8w3cchzr2lvx5xqs1fn01y7b4lqkky85dard223w2r1dn22m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lexikon")
+    (synopsis "Macros for a two language dictionary")
+    (description "This package provides macros for a two language
+dictionary.")
+    (license license:lppl)))
+
+(define-public texlive-lexref
+  (package
+    (name "texlive-lexref")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lexref/" "tex/latex/lexref/")
+             (base32
+              "0562vjn0vvjsqfi2jqy1yp6mqi8nrs25yc9nr1zc950q421w0vrb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lexref")
+    (synopsis "Convenient and uniform references to legal provisions")
+    (description
+     "The package is aimed at continental lawyers (especially those in
+Switzerland and Germany), allowing the user to make references to legal
+provisions conveniently and uniformly.  The package also allows the user to
+add cited Acts to a nomenclature list (automatically), and to build specific
+indexes for each cited Act.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-lie-hasse
   (package
     (name "texlive-lie-hasse")
@@ -4403,6 +8420,131 @@ simple roots of any complex simple Lie algebra.  It uses the Dynkin diagrams
 package @code{dynkin-diagrams}.")
     (license license:lppl1.3c)))
 
+(define-public texlive-lilyglyphs
+  (package
+    (name "texlive-lilyglyphs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lilyglyphs/"
+                   "fonts/opentype/public/lilyglyphs/"
+                   "scripts/lilyglyphs/"
+                   "source/latex/lilyglyphs/fonts/"
+                   "source/latex/lilyglyphs/glyphimages/definitions/"
+                   "source/latex/lilyglyphs/glyphimages/generated_src/"
+                   "tex/latex/lilyglyphs/")
+             (base32
+              "1g5v2bq7ml9pnh2xlkzf6k9zh3azw7i96iapp8yajyxk8akj0ki2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:link-scripts
+           #~(list "lily-glyph-commands.py"
+                   "lily-image-commands.py"
+                   "lily-rebuild-pdfs.py")))
+    (inputs (list python))
+    (home-page "https://ctan.org/pkg/lilyglyphs")
+    (synopsis "Access Lilypond fragments and glyphs, in LaTeX")
+    (description
+     "The package provides the means to include arbitrary elements of LilyPond
+notation, including symbols from Lilypond's Emmentaler font, in a LaTeX
+document.  The package uses OpenType fonts, and as a result must be compiled
+with LuaLaTeX or XeLaTeX.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-ling-macros
+  (package
+    (name "texlive-ling-macros")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ling-macros/"
+                   "tex/latex/ling-macros/")
+             (base32
+              "0q5l9h5xkd9gkpx2g5inzkcsssqvdicv05r8xvlmmx41mf1ikc88")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ling-macros")
+    (synopsis "Macros for typesetting formal linguistics")
+    (description
+     "This package contains macros for typesetting glosses and formal
+expressions.  It covers a range of subfields in formal linguistics.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-linguex
+  (package
+    (name "texlive-linguex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/linguex/" "tex/latex/linguex/")
+             (base32
+              "0w2rxvjljrl4b7s1dr7k2vk5nifq0zgmjlx68ajpsihjnzal7k8g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/linguex")
+    (synopsis "Format linguists' examples")
+    (description
+     "This bundle comprises two packages: the @code{linguex} package
+facilitates the formatting of linguist examples, automatically taking care of
+example numbering, indentations, indexed brackets, and the @samp{*} in
+grammaticality judgments.  The @code{ps-trees} package provides linguistic
+trees.")
+    (license license:lppl)))
+
+(define-public texlive-lithuanian
+  (package
+    (name "texlive-lithuanian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lithuanian/"
+                   "fonts/enc/dvips/lithuanian/"
+                   "fonts/map/dvips/lithuanian/"
+                   "fonts/tfm/public/lithuanian/"
+                   "tex/latex/lithuanian/")
+             (base32
+              "1iq06vlryl4fj2mzkmmphw9ihm0y7wmi5k8wxniaciw5mm5vrw7x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lithuanian")
+    (synopsis "Lithuanian language support")
+    (description
+     "This language support package provides:
+
+@itemize
+@item extra 8-bit encoding L7x used by @code{fontenc}: @file{l7xenc.def},
+@file{l7xenc.dfu}, @file{l7xenc.sty};
+@item Lithuanian TeX support for URW family Type1 fonts: map, fd, tfm with L7x
+encoding;
+@item extra code page definitions used by @code{inputenc}: @file{cp775.def}
+and @file{latin7.def}.
+@end itemize")
+    (license license:lppl1.3c)))
+
+(define-public texlive-liturg
+  (package
+    (name "texlive-liturg")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/liturg/" "source/latex/liturg/"
+                   "tex/latex/liturg/")
+             (base32
+              "1nmcz7zg27aasczdv3p6ilsmy66cbfjg9yri45d0pml7m7c56din")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    ;; The "liturg.ins" provided by the package does not generate anything.
+    ;; As a consequence, there's nothing to build.
+    (arguments (list #:build-targets #~'()))
+    (home-page "https://ctan.org/pkg/liturg")
+    (synopsis "Support for typesetting Catholic liturgical texts")
+    (description
+     "The packages offers simple macros for typesetting Catholic liturgical
+texts, particularly @code{Missal} and @code{Breviary} texts.  The package
+assumes availability of Latin typesetting packages.")
+    (license license:lppl)))
+
 (define-public texlive-logicproof
   (package
     (name "texlive-logicproof")
@@ -4427,6 +8569,29 @@ proofs and boxes.  It creates proofs in a style similar to that used in
 @emph{Logic in Computer Science} by Huth and Ryan.")
     (license license:lppl1.3+)))
 
+(define-public texlive-lollipop
+  (package
+    (name "texlive-lollipop")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/otherformats/lollipop/" "tex/lollipop/")
+             (base32
+              "0xdldlnhsr2n8544j9vd6gllin8bfkpcbhlpmxlhrvjl5bdg0rjp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "lollipop")))
+    (propagated-inputs (list texlive-cm texlive-hyphen-base))
+    (home-page "https://ctan.org/pkg/lollipop")
+    (synopsis "TeX made easy")
+    (description
+     "Lollipop is a macro package that functions as a toolbox for writing TeX
+macros.  Its main aim is to make macro writing so easy that implementing
+a fully new layout in TeX would become a matter of less than an hour for an
+average document.  The aim is that such a task could be accomplished by
+someone with only a very basic training in TeX programming.")
+    (license license:gpl3)))
+
 (define-public texlive-longdivision
   (package
     (name "texlive-longdivision")
@@ -4500,6 +8665,441 @@ from use of the package are in the format used in the textbook @emph{Language,
 Proof, and Logic} by Dave Barker-Plummer, Jon Barwise, and John Etchemendy.")
     (license license:lppl1.3+)))
 
+(define-public texlive-lshort-bulgarian
+  (package
+    (name "texlive-lshort-bulgarian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-bulgarian/")
+             (base32
+              "0qg23asq2i5mqhp9xblv5hm3qxmd5886d5x0gq1fkdbyy9gsawi3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-bulgarian")
+    (synopsis
+     "Bulgarian translation of the @emph{Short Introduction to LaTeX2e}")
+    (description
+     "This package includes the source files, PostScript and PDF files of the
+Bulgarian translation of the @emph{Short Introduction to LaTeX2e}.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-chinese
+  (package
+    (name "texlive-lshort-chinese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-chinese/")
+             (base32
+              "0455mdpcv3yg4m5vrbdp47j7mcwi43mvsy2p9clp7794agaf2ir6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-zh-cn")
+    (synopsis "Introduction to LaTeX, in Chinese")
+    (description
+     "This package provides a Chinese edition of the @emph{(Not so) short
+introduction to LaTeX2e}, with additional information of typesetting Chinese
+language.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-lshort-czech
+  (package
+    (name "texlive-lshort-czech")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-czech/")
+             (base32
+              "0ar9qa0cg0mjv6ydgx1phaa1qpiy25s3jciznbylgi5xprvnnfa9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-czech")
+    (synopsis "Czech translation to LaTeX")
+    (description
+     "This is the Czech translation of a @emph{(Not So) Short Introduction to
+LaTeX2e}.}")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-dutch
+  (package
+    (name "texlive-lshort-dutch")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-dutch/")
+             (base32
+              "160r060gmw6f6lgbnyvfxafjpqvyr4jwd56ddkjfm3ir2bfl973d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-dutch")
+    (synopsis "Introduction to LaTeX in Dutch")
+    (description
+     "This is the Dutch (Nederlands) translation of the @emph{(No So) Short
+Introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-estonian
+  (package
+    (name "texlive-lshort-estonian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-estonian/")
+             (base32
+              "0dfwp7kkynpskb345i3yz7h5pvc8iljqg3q6l546vrwla0bmb95c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-estonian")
+    (synopsis "Estonian introduction to LaTeX")
+    (description
+     "This is the Estonian translation of @emph{(No So) Short Introduction to
+LaTeX2e}.")
+    (license license:gpl2)))
+
+(define-public texlive-lshort-english
+  (package
+    (name "texlive-lshort-english")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-english/")
+             (base32
+              "0pzqdbzynlwvpamd69cmfpa8jdcvq96qjr9k1fy3dxpzi2mapvhd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-english")
+    (synopsis "(Not So) short introduction to LaTeX2e")
+    (description
+     "@emph{The Not So Short Introduction to LaTeX2e} derives from a German
+introduction (@emph{lkurz}), which was translated and updated; it continues to
+be updated.  This translation has, in its turn, been translated into several
+other languages; see the @code{lshort} catalogue entry for the current list.")
+    (license license:gpl2)))
+
+(define-public texlive-lshort-finnish
+  (package
+    (name "texlive-lshort-finnish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-finnish/")
+             (base32
+              "06madlm869kmwxprmy2c78ma4s8zk8mclzmd4xdl0r4mlhk4vdsl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-finnish")
+    (synopsis "Finnish introduction to LaTeX")
+    (description
+     "This is the Finnish translation of @emph{(No So) Short Introduction to
+LaTeX2e}, with added coverage of Finnish typesetting rules.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-french
+  (package
+    (name "texlive-lshort-french")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-french/")
+             (base32
+              "1hdl0w7b1ablx7qfcvgniz7dcbgazb49b8wfw7c08hlb38gxfqh7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-french")
+    (synopsis "Short introduction to LaTeX, French translation")
+    (description
+     "This package contains a French version of a @emph{(Not so) short
+introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-german
+  (package
+    (name "texlive-lshort-german")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-german/")
+             (base32
+              "073v7zvk8xri0f05mr0ad770p81akl9b9cnia1q4hcma9fk89k10")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-german")
+    (synopsis
+     "German version of @emph{A Short Introduction to LaTeX2e:
+LaTeX2e-Kurzbeschreibung}")
+    (description
+     "This package provides the German version of @emph{A Short Introduction
+to LaTeX2e: LaTeX2e-Kurzbeschreibung}.")
+    (license license:opl1.0+)))
+
+(define-public texlive-lshort-italian
+  (package
+    (name "texlive-lshort-italian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-italian/")
+             (base32
+              "085ydria5q7s648r7frl54sa1y4kyr569zvqjjkancfd83h873cg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-italian")
+    (synopsis "Introduction to LaTeX in Italian")
+    (description
+     "This is the Italian translation of the @emph{(Not so) Short Introduction
+to LaTeX2e.}")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-japanese
+  (package
+    (name "texlive-lshort-japanese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-japanese/")
+             (base32
+              "0mfxig980jyzhay1i83d69p294hgbr92v3kk2a4z8ca3fwzy8w74")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-japanese")
+    (synopsis "Japanese version of the @emph{Short Introduction to LaTeX2e}")
+    (description "This is the Japanese version of the @emph{(Not so) Short
+Introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-korean
+  (package
+    (name "texlive-lshort-korean")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-korean/")
+             (base32
+              "07660lrss97hswmis7rgc419h05mgrvsfrrwmnrwk5yn97flhhqd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-korean")
+    (synopsis "Korean introduction to LaTeX")
+    (description
+     "This package provides a translation of Oetiker's original @emph{(Not so)
+short introduction to LaTeX2e}.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-lshort-mongol
+  (package
+    (name "texlive-lshort-mongol")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-mongol/")
+             (base32
+              "153k4dzia30fpx847wli7i5p407a808gmj3p7jifq5bpx479qg1g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-mongol")
+    (synopsis "Short introduction to LaTeX, in Mongolian")
+    (description
+     "This package provides a translation of Oetiker's @emph{(Not so) short
+introduction to LaTeX2e}.")
+    (license license:lppl)))
+
+(define-public texlive-lshort-persian
+  (package
+    (name "texlive-lshort-persian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-persian/")
+             (base32
+              "0b1b45nh2d3d3zv735dymgyllj6m8i57icbihjkl1im0nghrzklk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-persian")
+    (synopsis "Persian (Farsi) introduction to LaTeX")
+    (description
+     "This package provides a Persian (Farsi) translation of Oetiker's
+@emph{(Not so) short introduction to LaTeX2e}.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-polish
+  (package
+    (name "texlive-lshort-polish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-polish/")
+             (base32
+              "121y638k4f4pbjpa4q0n9qj2w57624q2d1v4jz09qh399fl5yk81")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-polish")
+    (synopsis "Introduction to LaTeX in Polish")
+    (description
+     "This is the Polish translation of the @emph{(Not so) Short Introduction
+to LaTeX2e}.")
+    (license license:gpl2+)))
+
+(define-public texlive-lshort-portuguese
+  (package
+    (name "texlive-lshort-portuguese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-portuguese/")
+             (base32
+              "0wg51rjcayiizkz0vvjkirrx19q8fbnfrwilgh13prlbpams1hsh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-portuguese")
+    (synopsis "Introduction to LaTeX in Portuguese")
+    (description
+     "This is the Portuguese translation of a @emph{(Not So) Short
+Introduction to LaTeX2e}.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-russian
+  (package
+    (name "texlive-lshort-russian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-russian/")
+             (base32
+              "02abh69xl43p56fcciyan4j0z4mqq2j7ynwazq1nywhz37d6zn7y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-russian")
+    (synopsis "Russian introduction to LaTeX")
+    (description "This package provides the Russian version of the @emph{Short
+Introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-slovak
+  (package
+    (name "texlive-lshort-slovak")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-slovak/")
+             (base32
+              "0b5gn95i32dyn8r7v2cdcz759fllp3b0zwx17adjs282n06vfymq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-slovak")
+    (synopsis "Slovak introduction to LaTeX")
+    (description
+     "This package provides a Slovak translation of Oetiker's @emph{(Not So)
+Short Introduction to LaTeX2e}.")
+    (license license:lppl)))
+
+(define-public texlive-lshort-slovenian
+  (package
+    (name "texlive-lshort-slovenian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-slovenian/")
+             (base32
+              "0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-slovenian")
+    (synopsis "Slovenian introduction to LaTeX")
+    (description
+     "This package provides a Slovenian translation of the @emph{(Not So)
+Short Introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-spanish
+  (package
+    (name "texlive-lshort-spanish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-spanish/")
+             (base32
+              "0ls50syrg3dl5dl5a3fi33cr9j990l2xr6pribn1vqglsqrh191l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-spanish")
+    (synopsis "Short introduction to LaTeX, in Spanish")
+    (description
+     "This package provides a Spanish translation of the @emph{(Not So) Short
+Introduction to LaTeX2e}.")
+    (license license:gpl3+)))
+
+(define-public texlive-lshort-thai
+  (package
+    (name "texlive-lshort-thai")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-thai/")
+             (base32
+              "16r9gx902a342q2mj570y269yw97yaj6hrbqrk4h49ihm695z30i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-thai")
+    (synopsis "Introduction to LaTeX in Thai")
+    (description
+     "This is the Thai translation of the @emph{Short Introduction to LaTeX2e}.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-turkish
+  (package
+    (name "texlive-lshort-turkish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-turkish/")
+             (base32
+              "00r6pv4z4933jw072djdasd2wp5j05wghln62ga4g6y6jblf6zks")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-turkish")
+    (synopsis "Turkish introduction to LaTeX")
+    (description
+     "This package provides a Turkish translation of Oetiker's @emph{(Not so)
+short introduction to LaTeX2e}.")
+    (license license:public-domain)))
+
+(define-public texlive-lshort-ukr
+  (package
+    (name "texlive-lshort-ukr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-ukr/")
+             (base32
+              "1nsah1h3z3sy96a9x0mfdwby7pvvjwq7zxfv2s8nvsbvnn1al17s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-ukr")
+    (synopsis "Ukrainian version of the LaTeX introduction")
+    (description
+     "This package provides the Ukrainian version of the @emph{Short
+Introduction to LaTeX2e}.")
+    (license license:gpl2+)))
+
+(define-public texlive-lshort-vietnamese
+  (package
+    (name "texlive-lshort-vietnamese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lshort-vietnamese/")
+             (base32
+              "094lfry6cqvpk02c3acss6581mgb7j30fnja1b3qwzxmyxjdblwa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lshort-vietnamese")
+    (synopsis "Vietnamese version of the LaTeX introduction")
+    (description
+     "This is the Vietnamese version of the @emph{Short Introduction to
+LaTeX2e}.")
+    (license license:lppl)))
+
 (define-public texlive-lstbayes
   (package
     (name "texlive-lstbayes")
@@ -4520,6 +9120,131 @@ Proof, and Logic} by Dave Barker-Plummer, Jon Barwise, and John Etchemendy.")
 several languages not included in that package: BUGS, JAGS, and Stan.")
     (license license:lppl1.3+)))
 
+(define-public texlive-lyluatex
+  (package
+    (name "texlive-lyluatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/lyluatex/" "scripts/lyluatex/"
+                   "tex/luatex/lyluatex/")
+             (base32
+              "04w57pki09mzhaxv3s1f2m0bj1df5aqxygqgrihvkabc5x00is87")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lyluatex")
+    (synopsis
+     "Commands to include LilyPond scores within a (Lua)LaTeX document")
+    (description
+     "This package provides macros for the inclusion of LilyPond scores within
+LuaLaTeX.  It calls LilyPond to compile scores, then includes the produced
+files.")
+    (license license:expat)))
+
+(define-public texlive-m-tx
+  (package
+    (name "texlive-m-tx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/m-tx/"
+                   "doc/man/man1/prepmx.1"
+                   "doc/man/man1/prepmx.man1.pdf"
+                   "scripts/m-tx/"
+                   "tex/generic/m-tx/"
+                   "tex/latex/m-tx/")
+             (base32
+              "1sakzv7r6mybx0k7k0fi1qb789nf7lvbl0ns8s0hhc9fz37b0br5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "m-tx.lua")))
+    (home-page "https://ctan.org/pkg/m-tx")
+    (synopsis "Preprocessor for @command{pmx}")
+    (description
+     "M-Tx is a preprocessor to @command{pmx}, which is itself a preprocessor
+to MusixTeX, a music typesetting system.  The prime motivation to the
+development of M-Tx was to provide lyrics for music to be typeset.  In fact,
+@command{pmx} now provides a lyrics interface, but M-Tx continues in use by
+those who prefer its language.")
+    (license license:expat)))
+
+(define-public texlive-macros2e
+  (package
+    (name "texlive-macros2e")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/macros2e/" "tex/latex/macros2e/")
+             (base32
+              "0vdw389gvwmpqs7ykm3vlyqbpwm45mgqasmqyxm7q9jgay3dn2iz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/macros2e")
+    (synopsis "List of internal LaTeX2e macros")
+    (description
+     "This document lists the internal macros defined by the LaTeX2e base files,
+which can also be useful to package authors.  The macros are hyper-linked to
+their description in @code{source2e}.  For this to work both PDFs must be
+inside the same directory.  This document is not yet complete in content and
+format and may miss some macros.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-mafr
+  (package
+    (name "texlive-mafr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/mafr/" "tex/latex/mafr/")
+             (base32
+              "0bzmf36xy2ppd2bkc5lkcw43jangwn0w4scgr9il06d14lbw68yn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/mafr")
+    (synopsis "Mathematics in accord with French usage")
+    (description
+     "The package provides settings and macros for typesetting mathematics
+with LaTeX in compliance with French usage.  It comes with two document
+classes, @code{fiche} and @code{cours}, useful to create short high school
+documents such as tests or lessons.  The documentation is in French.")
+    (license license:gpl3+)))
+
+(define-public texlive-matapli
+  (package
+    (name "texlive-matapli")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/matapli/" "tex/latex/matapli/")
+             (base32
+              "0khkgc80hbydnlciqr02ay88gazr4nxdq099pjgf1xcjlnlmnwcp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/matapli")
+    (synopsis "Class for the French journal @emph{MATAPLI}")
+    (description
+     "This is a class for the French journal @emph{MATAPLI} of the Société de
+Mathématiques Appliquées et Industrielles (SMAI).")
+    (license license:lppl1.3c)))
+
+(define-public texlive-math-into-latex-4
+  (package
+    (name "texlive-math-into-latex-4")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/math-into-latex-4/")
+             (base32
+              "0k11j92h9hpxnyciczknhl83b05avc0rqdnwn82ssqi1k3qixibd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/math-into-latex-4")
+    (synopsis "Samples from @emph{(More) Math into LaTeX}, 4th Edition")
+    (description
+     "This package contains samples for the book @emph{(More) Math into LaTeX},
+4th edition.")
+    (license license:public-domain)))
+
 (define-public texlive-mathcommand
   (package
     (name "texlive-mathcommand")
@@ -4673,6 +9398,25 @@ only unify typesetting of math formulae but also allow to easily adapt
 notation if a user prefers to.  The semantic layer is split into topics.")
     (license license:expat)))
 
+(define-public texlive-maths-symbols
+  (package
+    (name "texlive-maths-symbols")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/maths-symbols/")
+             (base32
+              "0z83qf1rz84cr0b1zvwlacf24pc5r8dn1cxiiyl0xrqncl3279ka")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/maths-symbols")
+    (synopsis "Summary of mathematical symbols available in LaTeX")
+    (description
+     "This package provides a predecessor of the comprehensive symbols list,
+covering mathematical symbols available in standard @code{LaTeX} (including
+the AMS symbols, if available at compile time).")
+    (license license:lppl1.2+)))
+
 (define-public texlive-matlab-prettifier
   (package
     (name "texlive-matlab-prettifier")
@@ -4777,6 +9521,47 @@ to languages and computational complexity usually needed for Membrane
 Computing research.")
     (license license:lppl1.3+)))
 
+(define-public texlive-memdesign
+  (package
+    (name "texlive-memdesign")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/memdesign/")
+             (base32
+              "0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/memdesign")
+    (synopsis "Notes on book design")
+    (description
+     "@emph{A Few Notes on Book Design} provides an introduction to the
+business of book design.  It is an extended version of what used to be the
+first part of the @code{memoir} users manual.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-memoirchapterstyles
+  (package
+    (name "texlive-memoirchapterstyles")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/memoirchapterstyles/")
+             (base32
+              "0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/memoirchapterstyles")
+    (synopsis "Chapter styles in @code{memoir} class")
+    (description
+     "This package provides a showcase of chapter styles available to users of
+@code{memoir}: the six provided in the class itself, plus many from
+elsewhere (by the present author and others).  The package's resources apply
+only to @code{memoir}, but the package draws from a number of sources relating
+to standard classes, including the @code{fncychap} package, and Vincent
+Zoonekynd's tutorial on headings.")
+    (license license:lppl)))
+
 (define-public texlive-memorygraphs
   (package
     (name "texlive-memorygraphs")
@@ -4797,6 +9582,26 @@ styles that ease the declaration of memory graphs.  It is intended for graphs
 that represent the memory of a computer program during its execution.")
     (license license:lppl1.3+)))
 
+(define-public texlive-mendex-doc
+  (package
+    (name "texlive-mendex-doc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/mendex-doc/"
+                   "makeindex/mendex-doc/"
+                   "source/latex/mendex-doc/")
+             (base32
+              "096b1v9zzl3qm189paaxz16z4a1xgcj7l2bhdgvl2wqshsz9lx4p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/mendex-doc")
+    (synopsis "Documentation for Mendex index processor")
+    (description
+     "This package provides documentation for Mendex (Japanese index
+processor).")
+    (license license:bsd-3)))
+
 (define-public texlive-messagepassing
   (package
     (name "texlive-messagepassing")
@@ -4821,6 +9626,97 @@ decorate those diagrams, for instance to annotate the diagram, to add crashes
 to the processes, checkpoints, ...")
     (license license:lppl1.3+)))
 
+(define-public texlive-metafont-beginners
+  (package
+    (name "texlive-metafont-beginners")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/metafont-beginners/")
+             (base32
+              "12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/metafont-beginners")
+    (synopsis "Introductory tutorial for Metafont")
+    (description
+     "This package provides an old introduction to the use of Metafont, that
+has stood the test of time.  It focuses on using the program, rather than
+designing fonts, but does offer advice about understanding errors in other
+people's fonts.")
+    (license license:public-domain)))
+
+(define-public texlive-metapost-examples
+  (package
+    (name "texlive-metapost-examples")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/metapost/metapost-examples/")
+             (base32
+              "1rslyjnw27b5br17cbf6mjjkcgyr49yav4kw12spm3vdwyzb7gxr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/metapost-examples")
+    (synopsis "Example drawings using MetaPost")
+    (description
+     "This package provides a few (hundred) example pictures drawn with MetaPost,
+ranging from very simple (lines and circles) to rather intricate (uncommon
+geometric transformations, fractals, bitmap, etc).")
+    (license license:gpl1+)))
+
+(define-public texlive-metrix
+  (package
+    (name "texlive-metrix")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/metrix/" "source/latex/metrix/"
+                   "tex/latex/metrix/")
+             (base32
+              "185w7pgil8zix0czvd69l5pv6pcjc0n4nfbllm5v5mzr31sc0k5j")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/metrix")
+    (synopsis "Typeset metric marks for Latin text")
+    (description
+     "The package may be used to type the prosodics/metrics of (Latin) verse;
+it provides macros to typeset the symbols standing alone, and in combination
+with symbols, giving automatic alignment.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-mex
+  (package
+    (name "texlive-mex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/mex/base/" "source/mex/base/"
+                   "tex/mex/base/" "tex/mex/config/")
+             (base32
+              "0kc766cvvbcqrj60ncz4a105nrn454y5c2330y7s7jzh45dx8qsi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "mex" "pdfmex" "utf8mex")))
+    (propagated-inputs
+     (list texlive-enctex
+           texlive-hyphen-complete
+           texlive-knuth-lib
+           texlive-pdftex
+           texlive-pl
+           texlive-plain
+           texlive-tex
+           texlive-tex-ini-files
+           texlive-utf8mex))
+    (home-page "https://ctan.org/pkg/mex")
+    (synopsis "Polish formats for TeX")
+    (description
+     "MeX is an adaptation of Plain TeX (MeX) and LaTeX209 (LaMeX) formats to
+the Polish language and to Polish printing customs.  It contains a complete
+set of Metafont sources of Polish fonts, hyphenation rules for the Polish
+language and sources of formats.")
+    (license license:knuth)))
+
 (define-public texlive-mgltex
   (package
     (name "texlive-mgltex")
@@ -4943,6 +9839,45 @@ systems of equations and small matrices, @code{displaymath} in double columns
 for long calculations.")
     (license license:lppl1.3+)))
 
+(define-public texlive-mltex
+  (package
+    (name "texlive-mltex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/mltex/" "tex/latex/mltex/"
+                   "tex/mltex/config/")
+             (base32
+              "1ip0q5kqj6bg4jkginzljknbrd74ss4iky2gvlmf8nnrq06n89my")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "mllatex" "mltex")))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-babel
+           texlive-cm
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-complete
+           texlive-knuth-lib
+           texlive-l3backend
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-latexconfig
+           texlive-plain
+           texlive-tex-ini-files
+           texlive-unicode-data))
+    (home-page "https://ctan.org/pkg/mltex")
+    (synopsis "The MLTeX system")
+    (description
+     "MLTeX is a modification of TeX that allows the hyphenation of words with
+accented letters using ordinary Computer Modern (CM) fonts.  The system is
+distributed as a TeX change file.")
+    (license license:knuth)))
+
 (define-public texlive-multiobjective
   (package
     (name "texlive-multiobjective")
@@ -4964,6 +9899,269 @@ related to multiobjective optimisation, multiobjective evolutionary
 algorithms, multicriteria decision making and similar fields.")
     (license license:lppl)))
 
+(define-public texlive-musical
+  (package
+    (name "texlive-musical")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/musical/" "tex/latex/musical/")
+             (base32
+              "0qdrd622vs5dkr5w6pvf04hvni1jqcgxfvhf0ak7gjaxjczisb9h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/musical")
+    (synopsis "Typeset (musical) theatre scripts")
+    (description
+     "This package is designed to simplify the development and distribution of
+scripts for theatrical musicals, especially ones under development.  The
+output is formatted to follow generally accepted script style while also
+maintaining a high level of typographic integrity, and includes commands for
+dialog, lyrics, stage directions, music and dance cues, rehearsal marks, and
+more.  It gracefully handles dialog that crosses page breaks, and can generate
+lists of songs and lists of dances in the show.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-musicography
+  (package
+    (name "texlive-musicography")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/musicography/"
+                   "tex/latex/musicography/")
+             (base32
+              "07z5yg0ganmmp3qx5v55ll82sf45x6mhjl59abc5xckkfrgixpxn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/musicography")
+    (synopsis "Accessing symbols for music writing with pdfLaTeX")
+    (description
+     "This package makes available the most commonly used symbols in writing
+about music in a way that can be used with pdfLaTeX and looks consistent and
+attractive.  It includes accidentals, meters, and notes of different rhythmic
+values.  The package builds on the approach used in the @code{harmony}
+package, where the symbols are taken from the MusiXTeX fonts.  But it provides
+a larger range of symbols and a more flexible, user-friendly interface.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-musixguit
+  (package
+    (name "texlive-musixguit")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/musixguit/"
+                   "tex/latex/musixguit/")
+             (base32
+              "1ck8li0wdn22x0g4f57c9r57ans4rj7ggrm3rsp7xnqgc78as065")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/musixguit")
+    (synopsis "Easy notation for guitar music, in MusixTeX")
+    (description
+     "The package provides commands for typesetting notes for guitar,
+especially for simplifying guitar notation with MusixTeX.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-musixtex
+  (package
+    (name "texlive-musixtex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/musixtex/"
+                   "doc/man/man1/musixflx.1"
+                   "doc/man/man1/musixflx.man1.pdf"
+                   "doc/man/man1/musixtex.1"
+                   "doc/man/man1/musixtex.man1.pdf"
+                   "dvips/musixtex/"
+                   "scripts/musixtex/"
+                   "source/generic/musixtex/musixcrd/"
+                   "tex/generic/musixtex/"
+                   "tex/latex/musixtex/")
+             (base32
+              "1j46cf3v3jmhww47xvm4grnb495aggf1vnmb2sq3zbk9pfmrvd4x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:build-targets #~(list "strip.tex")
+           #:link-scripts #~(list "musixflx.lua" "musixtex.lua")))
+    (home-page "https://ctan.org/pkg/musixtex")
+    (synopsis "Sophisticated music typesetting")
+    (description
+     "MusiXTeX provides a set of macros, based on the earlier MusicTeX,
+for typesetting music with TeX.  To produce optimal spacing, MusiXTeX
+is a three-pass system: @command{etex}, @command{musixflx}, and
+@command{etex} again.  (Musixflx is a Lua script that is provided in
+the bundle.) The three-pass process, optionally followed by processing
+for printed output, is automated by the @command{musixtex} wrapper
+script.
+
+The package uses its own specialised fonts, which must be available on the
+system for @command{musixtex} to run.  The MusiXTeX macros are universally
+acknowledged to be challenging to use directly: the @command{pmx} preprocessor
+compiles a simpler input language to MusiXTeX macros.")
+    (license license:gpl2+)))
+
+(define-public texlive-musixtex-fonts
+  (package
+    (name "texlive-musixtex-fonts")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/musixtex-fonts/"
+                   "fonts/map/dvips/musixtex-fonts/"
+                   "fonts/opentype/public/musixtex-fonts/"
+                   "fonts/source/public/musixtex-fonts/"
+                   "fonts/tfm/public/musixtex-fonts/"
+                   "fonts/type1/public/musixtex-fonts/")
+             (base32
+              "0ychs959d1yvxkhwayf73iwvl4qg0a6v5fk7lnw8w3hk8n7zvp86")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/musixtex-fonts")
+    (synopsis "Fonts used by MusixTeX")
+    (description
+     "These are fonts for use with MusixTeX; they are provided both as
+original Metafont source, and as converted Adobe Type 1.  The bundle renders
+the older (Type 1 fonts only) bundle @code{musixtex-t1fonts} obsolete.")
+    (license license:gpl3+)))
+
+(define-public texlive-musixtnt
+  (package
+    (name "texlive-musixtnt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/musixtnt/"
+                   "doc/man/man1/msxlint.1"
+                   "doc/man/man1/msxlint.man1.pdf"
+                   "tex/generic/musixtnt/")
+             (base32
+              "0z1rfscla1hiibd0gs3lgf8x5yx19pmwdsbzvx2vvz0ikwgjglm9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:tests? #true
+      #:modules '((guix build texlive-build-system)
+                  ((guix build gnu-build-system) #:prefix gnu:)
+                  (guix build utils)
+                  (srfi srfi-1))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'unpack-musixtnt-source
+            (lambda _
+              (mkdir-p "build")
+              (with-directory-excursion "build"
+                (invoke "tar" "xvf"
+                        ;; Tarball includes a release date that we ignore.
+                        (first (find-files ".." "^musixtnt-.*\\.tar.gz"))
+                        "--strip-components=1"))))
+          (add-after 'unpack-prerex-source 'build-msxlint
+            (lambda args
+              (with-directory-excursion "build"
+                (for-each (lambda (phase)
+                            (apply (assoc-ref gnu:%standard-phases phase) args))
+                          '(configure
+                            build
+                            check
+                            install
+                            compress-documentation))))))))
+    (propagated-inputs (list texlive-musixtex))
+    (home-page "https://ctan.org/pkg/musixtnt")
+    (synopsis
+     "MusiXTeX extension library enabling transformations of the effect of
+notes commands")
+    (description
+     "This archive contains a MusiXTeX extension library @file{musixtnt.tex}
+and a program, @command{msxlint}.
+
+@file{musixtnt.tex} provides a macro @code{\\TransformNotes} that enables
+transformations of the effect of notes commands such as @code{\\notes}.  In
+general, the effect of @code{\\TransformNotes@{input@}@{output@}} is that
+notes commands in the source will expect their arguments to match the input
+pattern, but the notes will be typeset according to the output pattern.  An
+example is extracting single-instrument parts from a multi-instrument score.
+
+@command{msxlint} detects incorrectly formatted notes lines in a MusiXTeX
+source file.  This should be used before using @code{\\TransformNotes}.")
+    (license license:gpl2)))
+
+(define-public texlive-mwcls
+  (package
+    (name "texlive-mwcls")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/mwcls/" "source/latex/mwcls/"
+                   "tex/latex/mwcls/")
+             (base32
+              "1pj1m08gh5zsahvzan6wq9v0lnir9zb4qvgkadsl6jm9ia8990yn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/mwcls")
+    (synopsis "Polish-oriented document classes")
+    (description
+     "@code{mwcls} is a set of document classes for LaTeX designed with Polish
+typographical tradition in mind.  The classes include: @code{mwart} (which is
+a replacement for @code{article}), @code{mwrep} (replacing @code{report}), and
+@code{mwbk} (replacing @code{book}).
+
+Most features present in standard classes work with @code{mwcls} classes.
+Some extensions/exceptions include: sectioning commands allow for second
+optional argument (it is possible to state different texts for running head
+and for TOC), new environments @code{itemize*} and @code{enumerate*} for lists
+with long items, page styles have variants for normal, opening, closing, and
+blank pages.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-mxedruli
+  (package
+    (name "texlive-mxedruli")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/mxedruli/"
+                   "fonts/afm/public/mxedruli/"
+                   "fonts/map/dvips/mxedruli/"
+                   "fonts/source/public/mxedruli/"
+                   "fonts/tfm/public/mxedruli/"
+                   "fonts/type1/public/mxedruli/"
+                   "tex/latex/mxedruli/")
+             (base32
+              "070lfw12mfimcwhkgb1hh092p8npmhpmba28rzzwfl1kmsmk99q5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/mxedruli")
+    (synopsis "Pair of fonts for different Georgian alphabets")
+    (description
+     "This package provides two Georgian fonts, in both Metafont and Type
+1 formats, which cover the Mxedruli and the Xucuri alphabets.")
+    (license license:lppl)))
+
+(define-public texlive-na-box
+  (package
+    (name "texlive-na-box")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/na-box/" "tex/xelatex/na-box/")
+             (base32
+              "1j02k0d4m23yackb1vn8pajxwkimkkrx9h512xs3hkxdi6qdwb73")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/na-box")
+    (synopsis "Arabic-aware version of @code{pas-cours} package")
+    (description
+     "This is a modified version of the @code{pas-cours} package made
+compatible with XeLaTeX and Polyglossia to write Arabic documents with fancy
+boxed @code{theorem}-alike environments.")
+    (license license:lppl)))
+
 (define-public texlive-naive-ebnf
   (package
     (name "texlive-naive-ebnf")
@@ -5006,6 +10204,55 @@ Form (EBNF) notation.")
     (description "This style file provides macros for named tensor notation.")
     (license license:expat)))
 
+(define-public texlive-nanicolle
+  (package
+    (name "texlive-nanicolle")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/nanicolle/"
+                   "tex/xelatex/nanicolle/")
+             (base32
+              "0lzcsmy4iw0ch3w1g3h5b23hkzspi5q2gs406l4cihfmf30yiadk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/nanicolle")
+    (synopsis "Typesetting herbarium specimen labels")
+    (description
+     "This package provides a LaTeX class @file{nanicolle.cls} for typesetting
+collection labels and identification labels in Chinese style or in western
+style for plant herbarium specimens.  So far, documents using this class can
+only be compiled with XeLaTeX.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-nanumtype1
+  (package
+    (name "texlive-nanumtype1")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/nanumtype1/"
+                   "fonts/afm/public/nanumtype1/"
+                   "fonts/map/dvips/nanumtype1/"
+                   "fonts/tfm/public/nanumtype1/"
+                   "fonts/type1/public/nanumtype1/"
+                   "fonts/vf/public/nanumtype1/"
+                   "tex/latex/nanumtype1/")
+             (base32
+              "0n7dbhxa186x7f2ql8kjr2bn425vlhswl2m5n2n3iklfam9bmf6k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/nanumtype1")
+    (synopsis "Type1 subfonts of Nanum Korean fonts")
+    (description
+     "Nanum is a unicode font designed especially for Korean-language script.
+The font was designed by Sandoll Communication and Fontrix; it includes the
+sans serif (gothic), serif (myeongjo), pen script and brush script typefaces.
+The package provides Type1 subfonts converted from Nanum Myeongjo (Regular and
+@code{ExtraBold)} and Nanum Gothic (Regular and Bold) OTFs.  C70, LUC, T1, and
+TS1 font definition files are also provided.")
+    (license license:silofl1.1)))
+
 (define-public texlive-natded
   (package
     (name "texlive-natded")
@@ -5068,6 +10315,24 @@ physics at the University of Wurzburg as a collection of macros and predefined
 environments for quickly creating nice mathematical documents.")
     (license license:lppl1.3+)))
 
+(define-public texlive-nevelok
+  (package
+    (name "texlive-nevelok")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/nevelok/" "source/latex/nevelok/"
+                   "tex/latex/nevelok/")
+             (base32
+              "02g60npy2hp181vnzpna7h2544y7bnbi9y6srpm7kjmd6immm7qn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/nevelok")
+    (synopsis "LaTeX package for automatic definite articles for Hungarian")
+    (description
+     "This LaTeX package provides automatic definite articles for Hungarian.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-nicematrix
   (package
     (name "texlive-nicematrix")
@@ -5093,6 +10358,28 @@ the columns; tools to color rows and columns with a good PDF result; blocks of
 cells; etc.")
     (license license:lppl1.3+)))
 
+(define-public texlive-nnext
+  (package
+    (name "texlive-nnext")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/nnext/" "source/latex/nnext/"
+                   "tex/latex/nnext/")
+             (base32
+              "0hh2kn4ghnxv9l0xfkh0c0bkflmq5qwnc24y0jm1djjwrnyg1y2r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/nnext")
+    (synopsis "Extension for the @code{gb4e} package")
+    (description
+     "This is an add-on for the @code{gb4e} package used in linguistics.  It
+implements the @code{\\Next}, @code{\\NNext}, @code{\\Last}, and
+@code{\\LLast} commands from the @code{linguex} package or the @code{\\nextx},
+@code{\\anextx}, @code{\\lastx}, @code{\\blastx}, and @code{\\bblastx}
+commands from the @code{expex} package.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-nuc
   (package
     (name "texlive-nuc")
@@ -5114,6 +10401,26 @@ digits than A require special spacing to appear properly; this spacing is
 supported in the package.")
     (license license:lppl)))
 
+(define-public texlive-njurepo
+  (package
+    (name "texlive-njurepo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/njurepo/" "source/latex/njurepo/"
+                   "tex/latex/njurepo/")
+             (base32
+              "03dli7kk1h8kycbj83h2gy434zl6wvj4xz0lli91b1h8k59i8fv4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/njurepo")
+    (synopsis "Reports for Nanjing University")
+    (description
+     "This LaTeX document class provides a thesis template for Nanjing
+University in order to make it easy to write experiment reports and homework
+for the bachelor's curriculum.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-nucleardata
   (package
     (name "texlive-nucleardata")
@@ -5135,6 +10442,28 @@ mass and energy data in LaTeX documents.  It uses the PythonTeX package and
 requires @command{pythontex} to be called with the TeX file as the argument.")
     (license license:lppl1.3+)))
 
+(define-public texlive-numberpt
+  (package
+    (name "texlive-numberpt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/numberpt/"
+                   "source/latex/numberpt/"
+                   "tex/latex/numberpt/")
+             (base32
+              "14515d1l9d9pxs333f8m99mclaf8mklrs14h2w3bdk5m37m7pv8i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/numberpt")
+    (synopsis "Counters spelled out in Portuguese")
+    (description
+     "This package defines commands to display counters spelled out in Portuguese.
+Options are offered to select variations in the spelling of @samp{14}, or
+Brazilian vs. European Portuguese forms in the spelling of @samp{16},
+@samp{17}, and @samp{19}.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-numerica
   (package
     (name "texlive-numerica")
@@ -5214,6 +10543,101 @@ mathematical function values.")
      "The package will typeset both Z and Object-Z specifications.")
     (license license:lppl)))
 
+(define-public texlive-octave
+  (package
+    (name "texlive-octave")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/octave/" "tex/latex/octave/")
+             (base32
+              "1avikh00n92lxk7p7h0kvsv2dk2z411fv85fagj7bg6azb3fch8g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/octave")
+    (synopsis "Typeset musical pitches with octave designations")
+    (description
+     "This package package typesets musical pitch names with designation for
+the octave in either the Helmholtz system (with octave numbers), or the
+traditional system (with prime symbols).  The system can also be changed
+mid-document.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-omega
+  (package
+    (name "texlive-omega")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/omega/base/"
+                   "dvips/omega/"
+                   "fonts/afm/public/omega/"
+                   "fonts/map/dvips/omega/"
+                   "fonts/ofm/public/omega/"
+                   "fonts/ovf/public/omega/"
+                   "fonts/ovp/public/omega/"
+                   "fonts/tfm/public/omega/"
+                   "fonts/type1/public/omega/"
+                   "omega/ocp/char2uni/"
+                   "omega/ocp/misc/"
+                   "omega/ocp/omega/"
+                   "omega/ocp/uni2char/"
+                   "omega/otp/char2uni/"
+                   "omega/otp/misc/"
+                   "omega/otp/omega/"
+                   "omega/otp/uni2char/"
+                   "tex/generic/encodings/"
+                   "tex/generic/omegahyph/"
+                   "tex/plain/omega/")
+             (base32
+              "1gma5angnq5wdxianz0ml7y9jh04lsq9ksspykan06p0cp1bnmjc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/omega")
+    (synopsis "Wide-character-set extension of TeX")
+    (description
+     "This package provides a development of TeX, which deals in multi-octet
+Unicode characters, to enable native treatment of a wide range of languages
+without changing character-set.  Work on Omega has ceased; its compatible
+successor is Aleph, which is itself also in major maintenance mode only.
+Ongoing projects developing Omega (and Aleph) ideas include Omega-2 and
+LuaTeX.")
+    (license license:gpl3+)))
+
+(define-public texlive-omegaware
+  (package
+    (name "texlive-omegaware")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/odvicopy.1"
+                   "doc/man/man1/odvicopy.man1.pdf"
+                   "doc/man/man1/odvitype.1"
+                   "doc/man/man1/odvitype.man1.pdf"
+                   "doc/man/man1/ofm2opl.1"
+                   "doc/man/man1/ofm2opl.man1.pdf"
+                   "doc/man/man1/opl2ofm.1"
+                   "doc/man/man1/opl2ofm.man1.pdf"
+                   "doc/man/man1/otangle.1"
+                   "doc/man/man1/otangle.man1.pdf"
+                   "doc/man/man1/otp2ocp.1"
+                   "doc/man/man1/otp2ocp.man1.pdf"
+                   "doc/man/man1/outocp.1"
+                   "doc/man/man1/outocp.man1.pdf"
+                   "doc/man/man1/ovf2ovp.1"
+                   "doc/man/man1/ovf2ovp.man1.pdf"
+                   "doc/man/man1/ovp2ovf.1"
+                   "doc/man/man1/ovp2ovf.man1.pdf")
+             (base32
+              "06kzz0342h6vvc32ydrzgpqsdqv5l0jbd5finr43fmzqi5jnswil")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/omega")
+    (synopsis "Documentation for Omega executables")
+    (description
+     "This package provides the documentation for Omega executables.")
+    (license license:gpl3+)))
+
 (define-public texlive-oplotsymbl
   (package
     (name "texlive-oplotsymbl")
@@ -5234,6 +10658,29 @@ easily available.  Especially, these symbols are used in scientific plots, but
 the potential user is allowed to use them in other ways.")
     (license license:lppl1.3+)))
 
+(define-public texlive-ordinalpt
+  (package
+    (name "texlive-ordinalpt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ordinalpt/"
+                   "source/latex/ordinalpt/"
+                   "tex/latex/ordinalpt/")
+             (base32
+              "02hsl021gd23qrfm3myazg606lmp149dmpss3vyx93dyqcg8axbr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ordinalpt")
+    (synopsis "Counters as ordinal numbers in Portuguese")
+    (description
+     "The package provides a counter style (like @code{\\arabic},
+@code{\\alph} and others) which produces output strings like
+@samp{primeiro} (``first'' in Portuguese), @samp{segundo}, (``second''), and
+so on up to 1999th.  Separate counter commands are provided for different
+letter case variants, and for masculine and feminine gender inflections.")
+    (license license:lppl)))
+
 (define-public texlive-ot-tableau
   (package
     (name "texlive-ot-tableau")
@@ -5255,6 +10702,34 @@ working with the source code painless (well, less painful).  A variety of
 stylistic variants are available to suit personal taste.")
     (license license:lppl1.3+)))
 
+(define-public texlive-otibet
+  (package
+    (name "texlive-otibet")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/otibet/"
+                   "fonts/ofm/public/otibet/"
+                   "fonts/ovf/public/otibet/"
+                   "fonts/ovp/public/otibet/"
+                   "fonts/source/public/otibet/"
+                   "fonts/tfm/public/otibet/"
+                   "omega/ocp/otibet/"
+                   "omega/otp/otibet/"
+                   "source/latex/otibet/"
+                   "tex/latex/otibet/")
+             (base32
+              "0cman22brlm8qklb60mzq8f6c9kmdspv3zfg4s5p0lj9sf03bb6c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/otibet")
+    (synopsis "Support for Tibetan using Omega")
+    (description "This package provides support for Tibetan using Omega.")
+    ;; Per "unidoc.tex": "this package is freely distributable under the GPL
+    ;; Version~?.? or any later one."
+    (license license:gpl1+)))
+
 (define-public texlive-oubraces
   (package
     (name "texlive-oubraces")
@@ -5299,6 +10774,68 @@ kerning when a subscript follows.  Some predefined commands are also
 provided.")
     (license license:lppl1.3c)))
 
+(define-public texlive-padauk
+  (package
+    (name "texlive-padauk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/padauk/"
+                   "fonts/truetype/public/padauk/")
+             (base32
+              "0yn5w8bkcf9ihqy4v2zq4yc74d2d3dc1c6dcissaa6pcdj4z9r9l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/padauk")
+    (synopsis
+     "High-quality TrueType font for languages using the Myanmar script")
+    (description
+     "Padauk is a Unicode-based font family with broad support for writing
+systems that use the Myanmar script.")
+    (license license:silofl1.1)))
+
+(define-public texlive-parallel
+  (package
+    (name "texlive-parallel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/parallel/"
+                   "source/latex/parallel/"
+                   "tex/latex/parallel/")
+             (base32
+              "14gca28ph90vhsliy5g8jc6fd87igni1wkiy41jrp33qhjiz94qa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/parallel")
+    (synopsis "Typeset parallel texts")
+    (description
+     "This package provides a @code{parallel} environment which allows two
+potentially different texts to be typeset in two columns, while maintaining
+alignment.  The two columns may be on the same page, or on facing pages.  This
+arrangement of text is commonly used when typesetting translations, but it can
+have value when comparing any two texts.")
+    (license license:lppl)))
+
+(define-public texlive-parrun
+  (package
+    (name "texlive-parrun")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/parrun/" "source/latex/parrun/"
+                   "tex/latex/parrun/")
+             (base32
+              "1cfqvsda505pxwyjv6k197lg464y4njr2j65sghvzk7qp3i6vq11")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/parrun")
+    (synopsis "Typesets (two) streams of text running parallel")
+    (description
+     "This package can be used for typesetting translated text and the
+original source, parallel on the same page, one above the other.")
+    (license license:lppl)))
+
 (define-public texlive-pascaltriangle
   (package
     (name "texlive-pascaltriangle")
@@ -5321,6 +10858,24 @@ customized by means of different @code{\\pascal} macro options or the
 @code{\\pascalset} macro.")
     (license license:lppl1.3c)))
 
+(define-public texlive-patgen2-tutorial
+  (package
+    (name "texlive-patgen2-tutorial")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/patgen2-tutorial/")
+             (base32
+              "016bx1rp8kpvlywg0yafhbbhlzw4zxdcbdrd5525vffn6fyp9fi3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/patgen2-tutorial")
+    (synopsis "Tutorial on the use of Patgen 2")
+    (description
+     "This document describes the use of Patgen 2 to create hyphenation
+patterns for wide ranges of languages.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-perfectcut
   (package
     (name "texlive-perfectcut")
@@ -5350,6 +10905,29 @@ will behave in the same way.  The package also offers a robust
 reimplementation of @code{\\big}, @code{\\bigg}, etc.")
     (license license:lppl1.3+)))
 
+(define-public texlive-persian-bib
+  (package
+    (name "texlive-persian-bib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/persian-bib/"
+                   "bibtex/csf/persian-bib/"
+                   "doc/xelatex/persian-bib/")
+             (base32
+              "18x592g8y1i8kw724an65q84jj91cam5qvwp9mgnhqpwh3gjflpw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/persian-bib")
+    (synopsis "Persian translations of classic BibTeX styles")
+    (description
+     "This package provides BibTeX styles modified for Persian documents
+prepared with XePersian (which the present package depends on).  The Persian
+@file{.bst} files can simultaneously handle both Latin and Persian references.
+A file @file{p1256fa.csf} is provided for correct sorting of Persian
+references and three fields LANGUAGE, TRANSLATOR and AUTHORFA are defined.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-pfdicons
   (package
     (name "texlive-pfdicons")
@@ -5399,6 +10977,24 @@ from true constants, e.g. the fine structure constant, have been calculated
 using the accepted values of the fundamental constants.")
     (license license:lppl1.3c)))
 
+(define-public texlive-phonrule
+  (package
+    (name "texlive-phonrule")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/phonrule/" "tex/latex/phonrule/")
+             (base32
+              "09nhlhqgq2af2p6rn5r0q8ccn9a2qq35znn5j4z2kjq744wbzjih")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/phonrule")
+    (synopsis "Typeset linear phonological rules")
+    (description
+     "The package provides macros for typesetting phonological rules like
+those in @emph{Sound Pattern of English} (Chomsky and Halle 1968).")
+    (license license:lppl1.0+)))
+
 (define-public texlive-physics2
   (package
     (name "texlive-physics2")
@@ -5449,6 +11045,25 @@ mode.  All major SI units are included, as well as some @acronym{CGS,
 Centimetre–Gram–Second} units used in astronomy.")
     (license license:lppl1.3c)))
 
+(define-public texlive-piano
+  (package
+    (name "texlive-piano")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/piano/" "tex/latex/piano/")
+             (base32
+              "0nbax18dgg2a9l6bihqhwx0va7829324lk29ibq29wjissmhjqww")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/piano")
+    (synopsis "Typeset a basic 2-octave piano diagram")
+    (description
+     "This package adds the @code{\\keyboard[1][2]..[7]} command to your
+project.  When used, it draws a small 2 octaves piano keyboard on your
+document, with up to 7 keys highlighted.")
+    (license license:lppl)))
+
 (define-public texlive-pinoutikz
   (package
     (name "texlive-pinoutikz")
@@ -5469,6 +11084,44 @@ It is designed as a tool that is easy to use, with a lean syntax, native to
 LaTeX, and directly supporting PDF output format.")
     (license license:lppl1.3c)))
 
+(define-public texlive-plari
+  (package
+    (name "texlive-plari")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/plari/" "source/latex/plari/"
+                   "tex/latex/plari/")
+             (base32
+              "07g4rn4nn5wvwqd39s0xnn35ijkamhzxi12icnha8vb0b564jwq8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/plari")
+    (synopsis "Typesetting stageplay scripts")
+    (description
+     "Plari is a @code{report}-alike class, without section headings, and with
+paragraphs vertically separated rather than indented.")
+    (license license:gpl3+)))
+
+(define-public texlive-play
+  (package
+    (name "texlive-play")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/play/" "source/latex/play/"
+                   "tex/latex/play/")
+             (base32
+              "1v1d8hfng6s8x8spzrzhhkgg36zay9jvfna9md1mh4ijlipnzyma")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/play")
+    (synopsis "Typeset drama using LaTeX")
+    (description
+     "This package provides a class and style file that supports the
+typesetting of plays, including options for line numbering.")
+    (license license:lppl)))
+
 (define-public texlive-pm-isomath
   (package
     (name "texlive-pm-isomath")
@@ -5492,6 +11145,169 @@ only a maximum of such alphabets.  The necessary user macros are defined for
 typsetting common math symbols that require special ISO treatment.")
     (license license:lppl1.3c)))
 
+(define-public texlive-pmhanguljamo
+  (package
+    (name "texlive-pmhanguljamo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pmhanguljamo/"
+                   "tex/latex/pmhanguljamo/")
+             (base32
+              "1k8cvzmrrpb6hkkjczfq4mad71450pappf68jdlf1vmg3qb0f9z3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pmhanguljamo")
+    (synopsis "Poor man's Hangul Jamo input method")
+    (description
+     "This package provides a Hangul transliteration input method that allows
+to typeset Korean letters (Hangul) using the proper fonts. The use of XeLaTeX
+is recommended.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pmx
+  (package
+    (name "texlive-pmx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pmx/"
+                   "doc/man/man1/pmxab.1"
+                   "doc/man/man1/pmxab.man1.pdf"
+                   "doc/man/man1/scor2prt.1"
+                   "doc/man/man1/scor2prt.man1.pdf"
+                   "tex/generic/pmx/")
+             (base32
+              "1p9js9izv50vg7qqqmyg5jz4am4phhscqdfnn4nszlyfv3zkg7p3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pmx")
+    (synopsis "Preprocessor for MusiXTeX")
+    (description
+     "PMX provides a preprocessor for MusiXTeX.  @command{pmxab} builds a TeX
+input file based on a @file{.pmx} input file in a much simpler language,
+making most of the layout decisions by itself.  It has most of MusiXTeX's
+functionality, but it also permits in-line TeX to give access to virtually all
+of MusiXTeX.  For proof-listening, @command{pmxab} will make a MIDI file of
+your score.  @command{scor2prt} is an auxiliary program that makes parts from
+a score.")
+    (license license:gpl2)))
+
+(define-public texlive-pmxchords
+  (package
+    (name "texlive-pmxchords")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/pmxchords.1"
+                   "doc/man/man1/pmxchords.man1.pdf"
+                   "doc/pmxchords/" "scripts/pmxchords/"
+                   "tex/generic/pmxchords/")
+             (base32
+              "01dlic0b0fdm41982mqj3xpin0wksmsyz4h53vdckkz2ayyagagk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "pmxchords.lua")))
+    (home-page "https://ctan.org/pkg/pmxchords")
+    (synopsis "Produce chord information to go with @command{pmx} output")
+    (description
+     "The bundle supplements @command{pmx}, providing the means of typesetting
+chords above the notes of a score.  The bundle contains: macros for typing the
+chords; a Lua script to transpose chord macros to the required key signature;
+and support scripts for common requirements.")
+    (license license:gpl2)))
+
+(define-public texlive-poemscol
+  (package
+    (name "texlive-poemscol")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/poemscol/"
+                   "source/latex/poemscol/"
+                   "tex/latex/poemscol/")
+             (base32
+              "0hz6zsqcvlzcccxywwzwlpp9gsv41g4hc88481vmj313bys77spd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/poemscol")
+    (synopsis "Typesetting critical editions of poetry")
+    (description
+     "The package offers LaTeX macros for typesetting critical editions of
+poetry.  Its features include automatic linenumbering, generation of separate
+endnotes sections for emendations, textual collations, and explanatory notes,
+special marking for cases in which page breaks occur during stanza breaks,
+running headers of the form @samp{Notes to pp.@: xx-yy} for the notes
+sections, index of titles and first lines, and automatic generation of a table
+of contents.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-poetry
+  (package
+    (name "texlive-poetry")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/poetry/" "source/latex/poetry/"
+                   "tex/latex/poetry/")
+             (base32
+              "1z262am0qh6h1qqf36hxj2lc7d5pr4r65yx8ysrydh0sijccgild")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/poetry")
+    (synopsis "Facilities for typesetting poetry and poetical structure")
+    (description
+     "This package provides some macros and general doodads for typesetting poetry.
+There is, of course, already the excellent @code{verse} package, and the
+@code{poetrytex} package provides some extra functionality on top of it.  But
+@code{poetry} provides much of the same functionality in a bit of a different
+way, and with a few additional abilities, such as facilities for a list of
+poems, an index of first lines, and some structural commands.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-poetrytex
+  (package
+    (name "texlive-poetrytex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/poetrytex/"
+                   "source/latex/poetrytex/"
+                   "tex/latex/poetrytex/")
+             (base32
+              "1y78zd1hd3z1901x6mc6q0mw4rgj3qcqhnjn34zix11r0gn4b2jr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:tex-format "latex"
+           #:phases
+           #~(modify-phases %standard-phases
+               ;; Replace "\code{...}" with "\texttt{...}" (which is the alias
+               ;; chosen in the documentation) in order to prevent a "Command
+               ;; \code already defined" error.
+               (add-after 'unpack 'fix-documentation-source
+                 (lambda _
+                   (substitute* "source/latex/poetrytex/poetrytex.dtx"
+                     (("\\\\newcommand\\*\\\\code\\[1\\].*") "")
+                     (("\\\\code\\{") "\\texttt{")))))))
+    (native-inputs
+     (list (texlive-updmap.cfg
+            (list texlive-etoolbox
+                  texlive-fancyvrb
+                  texlive-framed
+                  texlive-hologo
+                  texlive-hypdoc
+                  texlive-parskip
+                  texlive-tipa
+                  texlive-tocloft))))
+    (home-page "https://ctan.org/pkg/poetrytex")
+    (synopsis "Typeset anthologies of poetry")
+    (description
+     "The package is designed to aid in the management and formatting of
+anthologies of poetry and other writings; it does not concern itself with
+actually typesetting the verse itself.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-polexpr
   (package
     (name "texlive-polexpr")
@@ -5573,6 +11389,63 @@ includes some short commands for set (blackboard) or
 filtrations (calligraphic).")
     (license license:lppl)))
 
+(define-public texlive-profcollege
+  (package
+    (name "texlive-profcollege")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/profcollege/"
+                   "metapost/profcollege/"
+                   "tex/latex/profcollege/")
+             (base32
+              "06bj5crnqslqlg2dkh43b30jvdvknblg8l4fri15gpdx1z5k1d6h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/profcollege")
+    (synopsis "LaTeX package for French maths teachers in college")
+    (description
+     "This package provides some commands to help French mathematics teachers
+for 11-16 years olds.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-proflabo
+  (package
+    (name "texlive-proflabo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/proflabo/" "tex/latex/proflabo/")
+             (base32
+              "0208sjybqgvd7xrrnc49d31cpvd0bfjyjamfsyzi6yb0fhsxd7x7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/proflabo")
+    (synopsis "Draw laboratory equipment")
+    (description
+     "This package was developed to help French chemistry teachers to create
+drawings (using TikZ) for laboratory stuff.")
+    (license license:lppl)))
+
+(define-public texlive-proflycee
+  (package
+    (name "texlive-proflycee")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/proflycee/"
+                   "tex/latex/proflycee/")
+             (base32
+              "0kvwdppbw4gmdfa90blgj1gxv03clfx21nahdgvzk9i2dyccfllv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/proflycee")
+    (synopsis "LaTeX package for French maths teachers in high school")
+    (description
+     "This package provides some commands to help French mathematics teachers
+for 15-18 years olds.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-proof-at-the-end
   (package
     (name "texlive-proof-at-the-end")
@@ -5660,6 +11533,28 @@ elements such as keywords, identifiers, and comments.")
 algorithms in a natural manner.")
     (license license:lppl)))
 
+(define-public texlive-psizzl
+  (package
+    (name "texlive-psizzl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/otherformats/psizzl/base/"
+                   "source/psizzl/base/" "tex/psizzl/base/"
+                   "tex/psizzl/config/")
+             (base32
+              "07h8raq2k80ycvsaaaxaaczwwnhkxdbnvnr52mihr8dyih5s7jns")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/psizzl")
+    (synopsis "TeX format for physics papers")
+    (description
+     "PSIZZL is a TeX format for physics papers written at SLAC and used at
+several other places.  It dates from rather early in the development of TeX82;
+as a result, some of the descriptions of limitations look rather quaint to
+modern eyes.")
+    (license license:lppl)))
+
 (define-public texlive-pythonhighlight
   (package
     (name "texlive-pythonhighlight")
@@ -5680,6 +11575,25 @@ algorithms in a natural manner.")
 @code{listings} package.")
     (license license:bsd-3)))
 
+(define-public texlive-qobitree
+  (package
+    (name "texlive-qobitree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/qobitree/" "tex/latex/qobitree/")
+             (base32
+              "1pzy5i8fi37zhkpsrh179qd4gp8ahwk8s2gw6261kjjiqf6p6znc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/qobitree")
+    (synopsis "LaTeX macros for typesetting trees")
+    (description
+     "This package provides commands @code{\\branch} and @code{\\leaf} for
+specifying the elements of the tree; you build up your tree with those
+commands, and then issue the @code{\\tree} command to typeset the whole.")
+    (license license:lppl)))
+
 (define-public texlive-qsharp
   (package
     (name "texlive-qsharp")
@@ -5699,6 +11613,28 @@ algorithms in a natural manner.")
 a domain-specific language for quantum programming.")
     (license license:lppl1.3c)))
 
+(define-public texlive-qtree
+  (package
+    (name "texlive-qtree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/qtree/" "tex/latex/qtree/")
+             (base32
+              "1gmwkm6400pcrjnq111bih7za0p45nx6gy4lksvgjhdcpnykbbla")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/qtree")
+    (synopsis "Draw tree structures")
+    (description
+     "The package offers support for drawing tree diagrams, and is especially
+suitable for linguistics use.  It allows trees to be specified in a simple
+bracket notation, automatically calculates branch sizes, and supports both
+DVI/PostScript and PDF output by use of @code{pict2e} facilities.  The package
+is a development of the existing @code{qobitree} package, offering a new front
+end.")
+    (license license:lppl)))
+
 (define-public texlive-rank-2-roots
   (package
     (name "texlive-rank-2-roots")
@@ -5760,6 +11696,50 @@ functionals, c.e.@: sets, stagewise computations, forcing and syntactic
 classes.")
     (license license:public-domain)))
 
+(define-public texlive-recorder-fingering
+  (package
+    (name "texlive-recorder-fingering")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/recorder-fingering/"
+                   "tex/latex/recorder-fingering/")
+             (base32
+              "075n6ifhpn15fdnrhp326lzp0dnzs0j287g7kr4xx59cc1m6lqkg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/recorder-fingering")
+    (synopsis "Package to display recorder fingering diagrams")
+    (description
+     "This package provides support for generating and displaying fingering
+diagrams for baroque fingering recorders.  Standard fingerings are provided
+for recorders in both C and F, along with methods to create and display
+alternate fingerings for trills, etc.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-reledmac
+  (package
+    (name "texlive-reledmac")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/reledmac/"
+                   "source/latex/reledmac/"
+                   "tex/latex/reledmac/")
+             (base32
+              "16nfibnjdasflskmxd23hxkapz788abfilwxm3vdj6djkznxq4sw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/reledmac")
+    (synopsis "Typeset scholarly editions")
+    (description
+     "This package provides a package for typesetting scholarly critical
+editions, replacing the established @code{ledmac} and @code{eledmac} packages.
+It supports indexing by page and by line numbers, and simple @code{tabular}-
+and @code{array}-style environments.  The package is distributed with the
+related @code{reledpar} package.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-resolsysteme
   (package
     (name "texlive-resolsysteme")
@@ -5881,6 +11861,48 @@ package solves the problem by extending ideas described in M. I. Grinchuk
 mathematical packages.")
     (license license:lppl1.3+)))
 
+(define-public texlive-rrgtrees
+  (package
+    (name "texlive-rrgtrees")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/rrgtrees/"
+                   "source/latex/rrgtrees/"
+                   "tex/latex/rrgtrees/")
+             (base32
+              "0h33q32pb1s8zv598aacdzfhpk2psrzxgxnav6am16cxfri60hpi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/rrgtrees")
+    (synopsis
+     "Linguistic tree diagrams for Role and Reference Grammar (RRG) with LaTeX")
+    (description
+     "This package provides a set of LaTeX macros that makes it easy to
+produce linguistic tree diagrams suitable for Role and Reference
+Grammar (RRG).  This package allows the construction of trees with crossing
+lines, as is required by this theory for many languages.")
+    (license license:lppl)))
+
+(define-public texlive-rtklage
+  (package
+    (name "texlive-rtklage")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/rtklage/" "tex/latex/rtklage/")
+             (base32
+              "0p9z4dgh572n7j6b8vf8aqag8ybqw3xzsh5kab1czks2774gm7cq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ratex")
+    (synopsis "Package for German lawyers")
+    (description
+     "RATeX is a newly developed bundle of packages and classes provided for
+German lawyers.  Now in the early beginning it only contains @code{rtklage},
+a class to make lawsuits.")
+    (license license:lppl)))
+
 (define-public texlive-sankey
   (package
     (name "texlive-sankey")
@@ -5984,6 +12006,123 @@ LaTeX documents.  This may be particularly useful for Math Teachers and IT
 specialists.")
     (license license:lppl1.3c)))
 
+(define-public texlive-screenplay
+  (package
+    (name "texlive-screenplay")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/screenplay/"
+                   "source/latex/screenplay/"
+                   "tex/latex/screenplay/")
+             (base32
+              "16vw7ikxblzlmamz0d95d0zj6vzhdg75w0q645sfh75pj7v6b1v0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/screenplay")
+    (synopsis "Class file to typeset screenplays")
+    (description
+     "The class implements the format recommended by the Academy of Motion
+Picture Arts and Sciences.")
+    (license license:gpl3+)))
+
+(define-public texlive-screenplay-pkg
+  (package
+    (name "texlive-screenplay-pkg")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/screenplay-pkg/"
+                   "tex/latex/screenplay-pkg/")
+             (base32
+              "07xl6631yjjx56whl1vl4mzdcn8k63i624lspxiw18ppfrxdh3an")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/screenplay-pkg")
+    (synopsis "Package version of the screenplay document class")
+    (description
+     "This package implements the tools of the @code{screenplay} document
+class in the form of a package so that screenplay fragments can be included
+within another document class.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-serbian-apostrophe
+  (package
+    (name "texlive-serbian-apostrophe")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/serbian-apostrophe/"
+                   "tex/latex/serbian-apostrophe/")
+             (base32
+              "0hkgm4q74kn172nr5whlwjq88sfqm66cvnsv7nidcqssybnn5891")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/serbian-apostrophe")
+    (synopsis "Commands for Serbian words with apostrophes")
+    (description
+     "The package provides a collection of commands (whose names are Serbian
+words) whose expansion is the Serbian word with appropriate apostrophes.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-serbian-date-lat
+  (package
+    (name "texlive-serbian-date-lat")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/serbian-date-lat/"
+                   "tex/latex/serbian-date-lat/")
+             (base32
+              "1m23r2i2dxw4xnxih94iyiwk4a5ggvn7wkqhp8ai5va5grp36kfk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/serbian-date-lat")
+    (synopsis "Updated date typesetting for Serbian")
+    (description
+     "Babel defines dates for Serbian texts, in Latin script.  The style it
+uses does not match current practices.  The present package defines
+a @code{\\date} command that solves the problem.")
+    (license license:gpl2)))
+
+(define-public texlive-serbian-def-cyr
+  (package
+    (name "texlive-serbian-def-cyr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/serbian-def-cyr/"
+                   "tex/latex/serbian-def-cyr/")
+             (base32
+              "116sgzxvny1hbkfc5s8bxirk9zshyv8qdd2fdr8iwqjfd7lhx03i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/serbian-def-cyr")
+    (synopsis "Serbian Cyrillic localization")
+    (description
+     "This package provides abstract, chapter, title, date etc, for Serbian
+language in Cyrillic scripts in T2A encoding and CP1251 code pages.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-serbian-lig
+  (package
+    (name "texlive-serbian-lig")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/serbian-lig/"
+                   "tex/latex/serbian-lig/")
+             (base32
+              "1vq33mr8br7z7y5ayb5wmhy0ralgx6alb9kmhaahdx8a105dl81b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/serbian-lig")
+    (synopsis "Control ligatures in Serbian")
+    (description
+     "The package suppresses @samp{fi} and @samp{fl} (and other ligatures) in
+Serbian text written using Roman script.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-sesamanuel
   (package
     (name "texlive-sesamanuel")
@@ -6046,6 +12185,25 @@ electrical and electronics engineers and graph theorists.")
 the shuffle product which is used in some part of mathematics and physics.")
     (license license:public-domain)))
 
+(define-public texlive-sides
+  (package
+    (name "texlive-sides")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/sides/" "tex/latex/sides/")
+             (base32
+              "0lffwhb6px6f09f8jk6r9kvfh49dl5n0461b261mk2sr6fgyxrfz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/sides")
+    (synopsis "LaTeX class for typesetting stage plays")
+    (description
+     "This is a LaTeX class for typesetting stage plays, based on the
+@code{plari} class.  It has been updated and several formatting changes have
+been made to it.")
+    (license license:gpl3+)))
+
 (define-public texlive-simplebnf
   (package
     (name "texlive-simplebnf")
@@ -6192,6 +12350,88 @@ by @code{siunitx}; @code{siunits} has maintenance-only support, now.")
 re-definitions of existing commands.")
     (license license:lppl1.3+)))
 
+(define-public texlive-songbook
+  (package
+    (name "texlive-songbook")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/songbook/" "makeindex/songbook/"
+                   "source/latex/songbook/"
+                   "tex/latex/songbook/")
+             (base32
+              "0ab4l130dyzaslqmy7vm71rszwszw11kqzkn0b5fb680kxvsyicf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/songbook")
+    (synopsis "Package for typesetting song lyrics and chord books")
+    (description
+     "The package provides an all purpose songbook style.  Three types of
+output may be created from a single input file: ``words and chords'' books for
+the musicians to play from, ``words only'' songbooks for the congregation to
+sing from, and overhead transparency masters for congregational use.
+
+The package will also print a table of contents, an index sorted by title and
+first line, and an index sorted by key, or by artist/composer.  The package
+attempts to handle songs in multiple keys, as well as songs in multiple
+languages.")
+    (license license:lgpl2.1)))
+
+(define-public texlive-songproj
+  (package
+    (name "texlive-songproj")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/songproj/"
+                   "source/latex/songproj/"
+                   "tex/latex/songproj/")
+             (base32
+              "044b9zbm2l1w8flnb5vx99590m65d1nxgys2dj3w79kkbmnhc7jy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/songproj")
+    (synopsis "Generate Beamer slideshows with song lyrics")
+    (description
+     "This package, together with the Beamer class, is used to generate
+slideshows with song lyrics.  This is typically used in religious services in
+churches equipped with a projector, for which this package has been written,
+but it can be useful for any type of singing assembly.  It provides
+environments to describe a song in a natural way, and formatting it into
+slides with overlays.  The package comes with an additional Python script that
+can be used to convert plain-text song lyrics to the expected LaTeX markup.")
+    (license license:bsd-3)))
+
+(define-public texlive-songs
+  (package
+    (name "texlive-songs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/songs/" "source/latex/songs/"
+                   "tex/latex/songs/")
+             (base32
+              "0mgzkh6cvq3smwjlkvd1gnhb7m151fgiv7f4v3drjqlsjyg2qds6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/songs")
+    (synopsis "Produce song books for church or fellowship")
+    (description
+     "The package provides a means of producing beautiful song books for
+church or fellowship.  It offers:
+@itemize
+@item a very easy chord-entry syntax;
+@item multiple modes (words-only; words+chords; slides; handouts);
+@item measure bars;
+@item guitar tablatures;
+@item automatic transposition;
+@item scripture quotations;
+@item multiple indexes (sorted by title, author, important lyrics, or
+scripture references);
+@item and projector-style output generation, for interactive use.
+@end itemize")
+    (license license:gpl2)))
+
 (define-public texlive-spalign
   (package
     (name "texlive-spalign")
@@ -6239,6 +12479,25 @@ can be adjusted with respect to relative position and format, and can be used
 in text and math mode.")
     (license license:cc-by4.0)))
 
+(define-public texlive-stage
+  (package
+    (name "texlive-stage")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/stage/" "source/latex/stage/"
+                   "tex/latex/stage/")
+             (base32
+              "0789mddzsadiw9fiasjzjdma0f9li8gddf8m9wy5jblnsl2asf5p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/stage")
+    (synopsis "LaTeX class for stage plays")
+    (description
+     "@file{stage.cls} is a LaTeX class for creating plays of any length in
+a standard manuscript format for production and submission.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-stanli
   (package
     (name "texlive-stanli")
@@ -6260,6 +12519,27 @@ engineering, those small structures are a key part for teaching.  This package
 permits to create such 2D and 3D structures in a very fast and simple way.")
     (license (list license:gpl3+ license:lppl1.3+))))
 
+(define-public texlive-startex
+  (package
+    (name "texlive-startex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/otherformats/startex/"
+                   "makeindex/startex/"
+                   "source/startex/startex/" "tex/startex/")
+             (base32
+              "06hyz1bwzvabavkl6j9588skjwx8hc5dmiv8z9n7gr1w9aa9zm7x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/startex")
+    (synopsis "XML-inspired format for student use")
+    (description
+     "This package provides a TeX format designed to help students write short
+reports and essays.  It provides the user with a suitable set of commands for
+such a task.  It is also more robust than plain TeX and LaTeX.")
+    (license license:public-domain)))
+
 (define-public texlive-statex
   (package
     (name "texlive-statex")
@@ -6591,6 +12871,34 @@ including emTeX drivers, dviwin, xdvi and dvips, and (using some code from
 ConTeXt) it may also be used with pdfLaTeX.")
     (license license:gpl3+)))
 
+(define-public texlive-t2
+  (package
+    (name "texlive-t2")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/t2/" "fonts/enc/t2/"
+                   "tex/generic/t2/cyrfinst/" "tex/latex/t2/")
+             (base32
+              "058j3bpv03d9nb0nxal1vjpliqqibv6hsjl1qlbgnndm95xd5n1a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/t2")
+    (synopsis "Support for using T2 encoding")
+    (description
+     "The T2 bundle provides a variety of separate support functions for using
+Cyrillic characters in LaTeX:
+@itemize
+@item the @code{mathtext} package, for using Cyrillic letters
+transparently in formulae;
+@item the @code{citehack} package, for using Cyrillic (or indeed any
+non-ASCII) characters in citation keys;
+@item support for Cyrillic in BibTeX;
+@item support for Cyrillic in Makeindex;
+@item and various items of font support.
+@end itemize")
+    (license license:lppl)))
+
 (define-public texlive-tablor
   (package
     (name "texlive-tablor")
@@ -6613,6 +12921,52 @@ configuration of the language to be used in the diagrams.  The @code{tablor}
 package requires that shell escape be enabled.")
     (license license:lppl)))
 
+(define-public texlive-tabvar
+  (package
+    (name "texlive-tabvar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tabvar/"
+                   "fonts/afm/public/tabvar/"
+                   "fonts/map/dvips/tabvar/"
+                   "fonts/tfm/public/tabvar/"
+                   "fonts/type1/public/tabvar/"
+                   "metapost/tabvar/"
+                   "source/latex/tabvar/"
+                   "tex/latex/tabvar/")
+             (base32
+              "1yjf0j3296a5csr6xrzziralfsy2iny21cyjf4dmlwp4l0h6kcpc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tabvar")
+    (synopsis "Typesetting tables showing variations of functions")
+    (description
+     "This LaTeX package is meant to ease the typesetting of tables showing
+variations of functions as they are used in France.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-tdsfrmath
+  (package
+    (name "texlive-tdsfrmath")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tdsfrmath/"
+                   "source/latex/tdsfrmath/"
+                   "tex/latex/tdsfrmath/")
+             (base32
+              "1z1z3jy0mbn6dc75pnfsq9877y8yafvdhv5p8a54dbxxkzdcl3ll")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tdsfrmath")
+    (synopsis "Macros for French teachers of mathematics")
+    (description
+     "This package provides a collection of macros for French maths teachers
+in colleges and lycées (and perhaps elsewhere).  It is hoped that the package
+will facilitate the everyday use of LaTeX by mathematics teachers.")
+    (license license:lppl)))
+
 (define-public texlive-tensind
   (package
     (name "texlive-tensind")
@@ -6673,6 +13027,95 @@ mathematical proofs and to construct programs.  This package provides macros
 that support calculational proofs and Dijkstra's guarded command language.")
     (license license:bsd-1)))
 
+(define-public texlive-tex-virtual-academy-pl
+  (package
+    (name "texlive-tex-virtual-academy-pl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/tex-virtual-academy-pl/")
+             (base32
+              "1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-virtual-academy-pl")
+    (synopsis "TeX usage web pages, in Polish")
+    (description
+     "TeX Virtual Academy is a bundle of Polish documentation in HTML format
+about TeX and Co.  It contains information for beginners, LaTeX packages,
+descriptions, etc.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-texsis
+  (package
+    (name "texlive-texsis")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/texsis/"
+                   "doc/man/man1/texsis.1"
+                   "doc/man/man1/texsis.man1.pdf"
+                   "doc/otherformats/texsis/base/"
+                   "tex/texsis/base/"
+                   "tex/texsis/config/")
+             (base32
+              "1vdywyg03ab5w50370ml8hwiidim2sy7hhygmz917rnhsnm87lnv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "texsis")))
+    (propagated-inputs
+     (list texlive-cm
+           texlive-hyphen-base
+           texlive-knuth-lib
+           texlive-plain
+           texlive-tex))
+    (home-page "https://ctan.org/pkg/texsis")
+    (synopsis "Plain TeX macros for Physicists")
+    (description
+     "TeXsis is a TeX macro package which provides useful features for
+typesetting research papers and related documents.  For example, it includes
+support specifically for:
+
+@itemize
+@item automatic numbering of equations, figures, tables and references;
+@item simplified control of type sizes, line spacing, footnotes, running
+headlines and footlines, and tables of contents, figures and tables;
+@item specialized document formats for research papers, preprints and
+e-prints, conference proceedings, theses, books, referee reports, letters, and
+memoranda;
+@item simplified means of constructing an index for a book or thesis;
+@item easy to use double column formatting;
+@item specialized environments for lists, theorems and proofs, centered or
+non-justified text, and listing computer code;
+@item specialized macros for easily constructing ruled tables.
+@end itemize
+
+TeXsis was originally developed for physicists, but others may also find it
+useful.  It is completely compatible with Plain TeX.")
+    (license license:lppl)))
+
+(define-public texlive-textglos
+  (package
+    (name "texlive-textglos")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/textglos/"
+                   "source/latex/textglos/"
+                   "tex/latex/textglos/")
+             (base32
+              "1jxx3wrwkmmm6ida3ih0yap57laflvsks8nv0395sv49xn7waxf0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/textglos")
+    (synopsis "Typeset and index linguistic gloss abbreviations")
+    (description
+     "The package provides a set of macros for in-line linguistic examples (as
+opposed to interlinear glossing, set apart from the main text).  It prevents
+hyphenated examples from breaking across lines and consistently formats
+phonemic examples, orthographic examples, and more.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-textgreek
   (package
     (name "texlive-textgreek")
@@ -6713,6 +13156,86 @@ symbols.")
 membrane protein topology plots and helical wheels.")
     (license license:gpl3+)))
 
+(define-public texlive-thaienum
+  (package
+    (name "texlive-thaienum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/thaienum/" "tex/latex/thaienum/")
+             (base32
+              "1g7sf5gjnrmhgq4qmdh3gphc0ixyfx4rpm7kmbwmjra3b8j2i46w")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/thaienum")
+    (synopsis "Thai labels in @code{enumerate} environments")
+    (description
+     "This LaTeX package provides a command to use Thai numerals or characters
+as labels in enumerate environments.  Once the package is loaded with
+@samp{\\usepackage@{thaienum@}} you can use labels such as @code{\\thainum*}
+or @code{\\thaimultialph*} in conjunction with the package @code{enumitem}.
+Concrete examples are given in the documentation.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-thaispec
+  (package
+    (name "texlive-thaispec")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/thaispec/"
+                   "source/latex/thaispec/"
+                   "tex/latex/thaispec/")
+             (base32
+              "1d0mj98akv7bfq3msaplm2pffcwfayssn4i5an12zrw0wxicmp96")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/thaispec")
+    (synopsis "Thai language typesetting in XeLaTeX")
+    (description
+     "This package allows you to input Thai characters directly to LaTeX
+documents and choose any (system wide) Thai fonts for typesetting in XeLaTeX.
+It also tries to appropriately justify paragraphs with no more external
+tools.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-thalie
+  (package
+    (name "texlive-thalie")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/thalie/" "tex/latex/thalie/")
+             (base32
+              "08dg91nr469s3x5c8njj0gpki1j89dji7ii9sw5l5ajd3pk8xbwv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/thalie")
+    (synopsis "Typeset drama plays")
+    (description
+     "The package provides tools to typeset drama plays.  It defines commands
+to introduce characters lines, to render stage directions, to divide a play
+into acts and scenes and to build the dramatis personae automatically.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-theatre
+  (package
+    (name "texlive-theatre")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/theatre/")
+             (base32
+              "1nhm56spqvryhmhwmzly939mzv5yv3398lh2lyfhf40rr02mzgi5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/theatre")
+    (synopsis "Sophisticated package for typesetting stage plays")
+    (description
+     "This package enables the user to typeset stage plays in a way that
+permits to create highly customized printouts for each actor.")
+    (license license:lppl1.2+)))
+
 (define-public texlive-thermodynamics
   (package
     (name "texlive-thermodynamics")
@@ -6778,6 +13301,103 @@ to use the environment.")
 display calculators, specifically the TI-82 STATS.")
     (license license:lppl1.3c)))
 
+(define-public texlive-translation-array-fr
+  (package
+    (name "texlive-translation-array-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-array-fr/")
+             (base32
+              "128k8isyn4s0v496sykn22fqn0gfwyyk19kcrmxnc6clgxxfbdy6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-array-fr")
+    (synopsis "French translation of the documentation of @code{array}")
+    (description
+     "This package provides a French translation of the documentation of
+@code{array}.")
+    (license license:lppl)))
+
+(define-public texlive-translation-dcolumn-fr
+  (package
+    (name "texlive-translation-dcolumn-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-dcolumn-fr/")
+             (base32
+              "0xakssrkxb2wc6xyy1yvx4mm398x3yq032b7vapqxl82h992fjll")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-dcolumn-fr")
+    (synopsis "French translation of the documentation of @code{dcolumn}")
+    (description
+     "This package provides a French translation of the documentation of
+@code{dcolumn}.")
+    (license license:lppl)))
+
+(define-public texlive-translation-natbib-fr
+  (package
+    (name "texlive-translation-natbib-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-natbib-fr/")
+             (base32
+              "0f0r1n8q3jkxsdcddabsgz9h9ndq4yffdpxdqxvqjmhfafhzwgkg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-natbib-fr")
+    (synopsis "French translation of the documentation of @code{natbib}")
+    (description
+     "This package provides a French translation of the documentation of
+@code{natbib}.")
+    (license license:lppl)))
+
+(define-public texlive-translation-tabbing-fr
+  (package
+    (name "texlive-translation-tabbing-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-tabbing-fr/")
+             (base32
+              "1cih442gp6zf8nwb2lbgjn7a64aglyrcw3aciqy5pkdw09pwn0an")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-tabbing-fr")
+    (synopsis "French translation of the documentation of @code{tabbing}")
+    (description
+     "This package provides a translation to French of the documentation of
+the @code{tabbing} package.")
+    (license license:lppl1.0+)))
+
+(define-public texlive-tree-dvips
+  (package
+    (name "texlive-tree-dvips")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tree-dvips/" "dvips/tree-dvips/"
+                   "tex/latex/tree-dvips/")
+             (base32
+              "0wk86z29aqfrsg947h5qbp98fngdx55v8xcx6dgniv5fv7d9ffrp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tree-dvips")
+    (synopsis "Trees and other linguists' macros")
+    (description
+     "The package defines a mechanism for specifying connected trees that uses
+a @code{tabular} environment to generate node positions.  The package uses
+PostScript code, loaded by Dvips, so output can only be generated by use of
+Dvips.
+
+The package @code{lingmacros.sty} defines a few macros for linguists:
+@code{\\enumsentence} for enumerating sentence examples, simple
+@code{tabular}-based non-connected tree macros, and gloss macros.")
+    (license license:lppl1.0+)))
+
 (define-public texlive-turnstile
   (package
     (name "texlive-turnstile")
@@ -6835,6 +13455,85 @@ providing the LaTeX user with macros which are used to markup textual
 information.")
     (license license:lppl)))
 
+(define-public texlive-unfonts-core
+  (package
+    (name "texlive-unfonts-core")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/unfonts-core/"
+                   "fonts/truetype/public/unfonts-core/")
+             (base32
+              "12q7h1akmgc3vdvyb4i8x51a716451kwi90vh9i57xw76hmg5f4x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/unfonts-core")
+    (synopsis "TrueType version of Un-fonts")
+    (description
+     "This is TrueType version of Un-fonts core bundle.  It includes the
+following font families (12 fonts):
+@itemize
+@item UnBatang, UnBatangBold: serif;
+@item UnDotum, UnDotumBold: sans-serif;
+@item UnGraphic, UnGraphicBold: sans-serif style;
+@item UnDinaru, UnDinaruBold, UnDinaruLight;
+@item UnPilgi, UnPilgiBold: script;
+@item UnGungseo: cursive, brush-stroke.
+@end itemize")
+    (license license:gpl2)))
+
+(define-public texlive-unfonts-extra
+  (package
+    (name "texlive-unfonts-extra")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/unfonts-extra/"
+                   "fonts/truetype/public/unfonts-extra/")
+             (base32
+              "1krs93dsi50278qxgm24ij9w9r7gdcxqsdfk6ai5klvkmlka8gkf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/unfonts-extra")
+    (synopsis "TrueType version of Un-fonts")
+    (description
+     "This is TrueType version of Un-fonts extra bundle.  It includes the
+following Korean font families (11 fonts):
+@itemize
+@item UnPen, UnPenheulim: script;
+@item UnTaza: typewriter style;
+@item UnShinmun;
+@item UnYetgul: old Korean printing style;
+@item UnJamoSora, UnJamoNovel, UnJamoDotum, UnJamoBatang;
+@item UnPilgia;
+@item UnVada.
+@end itemize")
+    (license license:gpl2)))
+
+(define-public texlive-unicode-alphabets
+  (package
+    (name "texlive-unicode-alphabets")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/unicode-alphabets/"
+                   "tex/latex/unicode-alphabets/")
+             (base32
+              "0xvzmx0xa8mmi39a8c89byi6c6y7vbl5k3plp63k5mif19ncyq3s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/unicode-alphabets")
+    (synopsis "Macros for using characters from Unicode's Private Use Area")
+    (description
+     "While Unicode supports the vast majority of use cases, there are certain
+specialized niches which require characters and glyphs not (yet) represented
+in the standard.  Thus the Private Use Area (PUA) at code points E000-F8FF,
+which enables third parties to define arbitrary character sets.  This package
+allows configuring a number of macros for using various PUA character sets in
+LaTeX (AGL, CYFI, MUFI, SIL, TITUS, UCSUR, UNZ), to enable transcription and
+display of medieval and other documents.")
+    (license license:cc-by-sa4.0)))
+
 (define-public texlive-unitsdef
   (package
     (name "texlive-unitsdef")
@@ -6856,6 +13555,40 @@ to define new units and changes the output concerning to the surrounding font
 settings.")
     (license license:lppl)))
 
+(define-public texlive-velthuis
+  (package
+    (name "texlive-velthuis")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/velthuis/"
+                   "doc/man/man1/devnag.1"
+                   "doc/man/man1/devnag.man1.pdf"
+                   "fonts/afm/public/velthuis/"
+                   "fonts/map/dvips/velthuis/"
+                   "fonts/source/public/velthuis/"
+                   "fonts/tfm/public/velthuis/"
+                   "fonts/type1/public/velthuis/"
+                   "tex/generic/velthuis/"
+                   "tex/latex/velthuis/"
+                   "tex/plain/velthuis/"
+                   "tex/xelatex/velthuis/")
+             (base32
+              "0h9maci6b65x7zy13v5j4vlr07lnghiwckh7bn4ix7d1wmh74bij")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (propagated-inputs (list texlive-xetex-devanagari))
+    (home-page "https://ctan.org/pkg/devanagari")
+    (synopsis "Typeset Devanagari")
+    (description
+     "This package provides Frans Velthuis preprocessor for Devanagari text,
+and fonts and macros to use when typesetting the processed text.  The macros
+provide features that support Sanskrit, Hindi, Marathi, Nepali, and other
+languages typically printed in the Devanagari script.  The package provides
+fonts, in both Metafont and Type 1 formats.")
+    (license license:gpl3+)))
+
 (define-public texlive-venn
   (package
     (name "texlive-venn")
@@ -6872,6 +13605,103 @@ settings.")
     (description "This package provides MetaPost macros for Venn diagrams.")
     (license license:lppl)))
 
+(define-public texlive-verse
+  (package
+    (name "texlive-verse")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/verse/" "source/latex/verse/"
+                   "tex/latex/verse/")
+             (base32
+              "0v54xgn9d91xsjcy5dmgs5r50amvqnakyc7hymdzbqkv5cz2dd3r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/verse")
+    (synopsis "Aids for typesetting simple verse")
+    (description
+     "The package provides aids for typesetting simple verses; the package is
+strong on layout, from simple alternate-line indentation to the @code{Mouse's
+tale} from @emph{Alice in Wonderland}.")
+    (license license:lppl)))
+
+(define-public texlive-vlna
+  (package
+    (name "texlive-vlna")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/vlna.1"
+                   "doc/man/man1/vlna.man1.pdf" "doc/vlna/")
+             (base32
+              "0nfb7mj6y9d4n89z59ppi96grfylwky97mxcv9rjflr5kpqlpga2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/vlna")
+    (synopsis "Add @samp{~} after non-syllabic preposition, for Czech/Slovak")
+    (description
+     "This package provides a preprocessor for TeX source implementing the
+Czech/Slovak typographical rule forbidding a non-syllabic preposition alone at
+the end of a line.")
+    (license license:knuth)))
+
+(define-public texlive-vntex
+  (package
+    (name "texlive-vntex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/vntex/"
+                   "fonts/afm/vntex/chartervn/"
+                   "fonts/afm/vntex/grotesqvn/"
+                   "fonts/afm/vntex/urwvn/"
+                   "fonts/afm/vntex/vntopia/"
+                   "fonts/enc/dvips/vntex/"
+                   "fonts/enc/pdftex/vntex/"
+                   "fonts/map/dvips/vntex/"
+                   "fonts/source/vntex/vnr/"
+                   "fonts/tfm/vntex/arevvn/"
+                   "fonts/tfm/vntex/chartervn/"
+                   "fonts/tfm/vntex/cmbrightvn/"
+                   "fonts/tfm/vntex/concretevn/"
+                   "fonts/tfm/vntex/grotesqvn/"
+                   "fonts/tfm/vntex/txttvn/"
+                   "fonts/tfm/vntex/urwvn/"
+                   "fonts/tfm/vntex/vnr/"
+                   "fonts/tfm/vntex/vntopia/"
+                   "fonts/type1/vntex/arevvn/"
+                   "fonts/type1/vntex/chartervn/"
+                   "fonts/type1/vntex/cmbrightvn/"
+                   "fonts/type1/vntex/concretevn/"
+                   "fonts/type1/vntex/grotesqvn/"
+                   "fonts/type1/vntex/txttvn/"
+                   "fonts/type1/vntex/urwvn/"
+                   "fonts/type1/vntex/vnr/"
+                   "fonts/type1/vntex/vntopia/"
+                   "fonts/vf/vntex/chartervn/"
+                   "fonts/vf/vntex/urwvn/"
+                   "fonts/vf/vntex/vntopia/"
+                   "source/generic/vntex/"
+                   "tex/latex/vntex/"
+                   "tex/plain/vntex/")
+             (base32
+              "0vbpxzqvqpymw2chgrrva7alrvp6lj735hy8wqksal968sch6azx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-ec texlive-metafont))
+    (home-page "https://ctan.org/pkg/vntex")
+    (synopsis "Support for Vietnamese")
+    (description
+     "The vntex bundle provides fonts, Plain TeX, texinfo and LaTeX macros for
+typesetting documents in Vietnamese.  Users of the fonts (in both Metafont and
+Adobe Type 1 format) of this bundle may alternatively use the @code{lm} fonts
+bundle, for which map files are available to provide a Vietnamese version.")
+    ;; Vietnamese glyphs has been added according to the conditions of the
+    ;; Adobe/TUG license agreement.  The package itself is released under
+    ;; LPPL1.3+ terms.
+    (license (list license:lppl1.3+
+                   (license:fsf-free "file://source/generic/vntex/LICENSE-utopia.txt")))))
+
 (define-public texlive-witharrows
   (package
     (name "texlive-witharrows")
@@ -6895,6 +13725,135 @@ These arrows are usually used to give explanations concerning the mathematical
 calculus presented.")
     (license license:lppl1.3+)))
 
+(define-public texlive-wnri
+  (package
+    (name "texlive-wnri")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/wnri/"
+                   "fonts/source/public/wnri/"
+                   "fonts/tfm/public/wnri/")
+             (base32
+              "1p2b847a5xa00xvv46b8p0f2fhi1k01w4l7bm2517hs7inwj3brs")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/wnri")
+    (synopsis "Ridgeway's fonts")
+    (description
+     "This package provides fonts (as Metafont source) for Old English, Indic
+languages in Roman transliteration and Puget Salish (Lushootseed) and other
+Native American languages.")
+    (license license:gpl3+)))
+
+(define-public texlive-wnri-latex
+  (package
+    (name "texlive-wnri-latex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/wnri-latex/"
+                   "source/latex/wnri-latex/"
+                   "tex/latex/wnri-latex/")
+             (base32
+              "08ld2nys36vb368977dpwav75ffra2p8999dx4dwrs4vg6k2r2l7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/wnri-latex")
+    (synopsis "LaTeX support for @code{wnri} fonts")
+    (description
+     "This package provides LaTeX support for the @code{wnri} fonts.")
+    (license license:gpl2)))
+
+(define-public texlive-xecjk
+  (package
+    (name "texlive-xecjk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/xecjk/"
+                   "fonts/misc/xetex/fontmapping/xecjk/"
+                   "source/xelatex/xecjk/" "tex/xelatex/xecjk/")
+             (base32
+              "0mpmfrj0n00gpnh67zh627vxhpp6vim8x755vdpb75h36k8zm6yq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'copy-ctxdocstrip.tex
+            ;; There's a circular dependency between this package (where
+            ;; `ctex' should be a native input) and `ctex' (where this package
+            ;; is a propagated input).  To work around this, install the
+            ;; specific "ctxdocstrip.tex" file from `ctex' in the build
+            ;; directory and set TEXINPUTS variable accordingly so the process
+            ;; can find it.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (install-file (search-input-file inputs
+                                               "tex/generic/ctex/ctxdocstrip.tex")
+                            "build/")
+              (setenv "TEXINPUTS" (string-append (getcwd) "/build:")))))))
+    (native-inputs
+     (list (texlive-origin
+            "ctxdocstrip.tex" (number->string %texlive-revision)
+            (list "tex/generic/ctex/ctxdocstrip.tex")
+            (base32
+             "154v2d6wfzhfg654nlh2apy9zr78d09rkimymyjqpxymkpbk8lli"))))
+    (home-page "https://ctan.org/pkg/xecjk")
+    (synopsis "Support for CJK documents in XeLaTeX")
+    (description
+     "This package provides a LaTeX package for typesetting CJK documents in
+the way users have become used to, in the CJK package.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-xecyrmongolian
+  (package
+    (name "texlive-xecyrmongolian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xecyrmongolian/"
+                   "source/latex/xecyrmongolian/"
+                   "tex/latex/xecyrmongolian/")
+             (base32
+              "0097l8vx76sqpimljwxw194yg6drxzagjxflq3y99n0a0yisax05")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xecyrmongolian")
+    (synopsis
+     "Basic support for Cyrillic Mongolian documents using (Xe|Lua)LaTeX")
+    (description
+     "The @code{xecyrmongolian} package can be used to produce documents in
+Cyrillic Mongolian using either XeLaTeX or LuaLaTeX.  The command
+@code{\\setlanguage} can be used to load alternative hyphenation patterns so
+to be able to create multilingual documents.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-xyling
+  (package
+    (name "texlive-xyling")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xyling/" "tex/latex/xyling/")
+             (base32
+              "1c4bgkbd42japidvrfg3ibj4h1l8v6zlivy7bqyiyj8alzdjhq4g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xyling")
+    (synopsis
+     "Draw syntactic trees, etc., for linguistics literature, using XY-Pic")
+    (description
+     "The macros in this package model the construction of linguistic tree
+structures as a genuinely graphical problem: they contain two types of
+objects, ``branches'' and ``node labels'', and these are positioned relative
+to a ``grid''.  It is essential that each of these three elements is
+constructed independent of the other two, and hence they can be modified
+without unwanted side effects.  The macros are based on the XY-Pic package.")
+    (license license:lppl)))
+
 (define-public texlive-xymtex
   (package
     (name "texlive-xymtex")
@@ -7009,6 +13968,24 @@ providing lots more features.  Skew and coloured tableaux are easy, and
 pgfkeys-enabled options are provided both at package load and configurably.")
     (license license:lppl1.2+)))
 
+(define-public texlive-zitie
+  (package
+    (name "texlive-zitie")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/zitie/" "tex/xelatex/zitie/")
+             (base32
+              "0la4fg42c20isdip5gnynzhkj0hn295lf48hbyjjfvadx7zx408s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zitie")
+    (synopsis "Create CJK character calligraphy practicing sheets")
+    (description
+     "This is a LaTeX package for creating CJK character calligraphy
+practicing sheets (copybooks).  Currently, only XeTeX is supported.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-zx-calculus
   (package
     (name "texlive-zx-calculus")
@@ -7030,6 +14007,72 @@ multiple flavours for putting labels inside or outside nodes), and a debugging
 mode to avoid getting lost in big diagrams.")
     (license license:expat)))
 
+(define-public texlive-zxjafont
+  (package
+    (name "texlive-zxjafont")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zxjafont/" "tex/latex/zxjafont/")
+             (base32
+              "1n8sky4aprs7r12pvyj6q1lman57k94s7mkynnzfw1z4xnam459j")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zxjafont")
+    (synopsis "Set up Japanese font families for XeLaTeX")
+    (description "This package sets up Japanese font families for XeLaTeX.")
+    (license license:expat)))
+
+(define-public texlive-zxjatype
+  (package
+    (name "texlive-zxjatype")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zxjatype/" "tex/latex/zxjatype/")
+             (base32
+              "0llm0414kdwqsajb1nl92xa8kqwvbm446pwijag2735gk8rxqz8j")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zxjatype")
+    (synopsis "Standard conforming typesetting of Japanese, for XeLaTeX")
+    (description "This package eases standard conforming typesetting of
+Japanese, for XeLaTeX.")
+    (license license:expat)))
+
+(define-public texlive-zxjafbfont
+  (package
+    (name "texlive-zxjafbfont")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zxjafbfont/"
+                   "tex/latex/zxjafbfont/")
+             (base32
+              "1vwbr2nwxp5f8c7q1gwm9z3karjkxjxr1j4lg5p12ljqlwm7p3lw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zxjafbfont")
+    (synopsis "Fallback CJK font support for xeCJK")
+    (description "This package provides fallback CJK font support for xeCJK.")
+    (license license:expat)))
+
+(define-public texlive-biblatex-cheatsheet
+  (package
+    (name "texlive-biblatex-cheatsheet")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/biblatex-cheatsheet/")
+             (base32
+              "0y2ry2q1kvpy8dqglqdfq3rc849hmbni0k78wr1xnjbpd102l3k9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/biblatex-cheatsheet")
+    (synopsis "BibLaTeX and Biber cheat sheet")
+    (description "This package provides a BibLaTeX and Biber cheat sheet.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-bibtex8
   (package
     (name "texlive-bibtex8")
@@ -7240,6 +14283,44 @@ a corresponding option is set.  Furthermore, @command{cluttex} can watch input
 files for changes (using an external program).")
     (license license:gpl3+)))
 
+(define-public texlive-components
+  (package
+    (name "texlive-components")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/components/")
+             (base32
+              "04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/components")
+    (synopsis "Introduction to TeX components and files")
+    (description
+     "This package is an introduction to the components and files users of TeX
+may encounter.")
+    (license license:gpl3+)))
+
+(define-public texlive-comprehensive
+  (package
+    (name "texlive-comprehensive")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/comprehensive/")
+             (base32
+              "1pa76hkxfmms5h6y6zyg4l5wrspprhnycfdigby8302srx676vhi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/comprehensive")
+    (synopsis "Symbols accessible from LaTeX")
+    (description
+     "This package document the symbols accessible from LaTeX.  Over 18000
+symbols are listed as a set of tables.  The tables of symbols are ordered in
+a logical way (the document begins with a frequently requested symbols list),
+the aim being to make the document a convenient way of looking up symbols.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-ctan-o-mat
   (package
     (name "texlive-ctan-o-mat")
@@ -7360,6 +14441,109 @@ release process for LaTeX package authors.  Note by the CTAN
 team (2015-02-05): It seems that this script is currently not working.")
     (license license:gpl3)))
 
+(define-public texlive-ctex
+  (package
+    (name "texlive-ctex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ctex/" "source/latex/ctex/"
+                   "tex/generic/ctex/" "tex/latex/ctex/"
+                   "tex/luatex/ctex/")
+             (base32
+              "17zyr0cyxvp91832q35ha3qabdzh4njh96yvp4gfkkfkkszqp3jh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     ;; FIXME: I couldn't find how to build this package from source.
+     (list #:phases #~(modify-phases %standard-phases (delete 'build))))
+    (propagated-inputs
+     (list texlive-adobemapping
+           texlive-atbegshi
+           texlive-beamer
+           texlive-cjk
+           texlive-cjkpunct
+           texlive-ec
+           texlive-epstopdf-pkg
+           texlive-etoolbox
+           texlive-everyhook
+           texlive-fandol
+           texlive-fontspec
+           texlive-iftex
+           texlive-infwarerr
+           texlive-kvoptions
+           texlive-kvsetkeys
+           texlive-latex-bin
+           texlive-ltxcmds
+           texlive-luatexja
+           texlive-mptopdf
+           texlive-ms
+           texlive-pdftexcmds
+           texlive-platex-tools
+           texlive-svn-prov
+           texlive-tipa
+           texlive-tools
+           texlive-ttfutils
+           texlive-ulem
+           texlive-uplatex
+           texlive-xcjk2uni
+           texlive-xecjk
+           texlive-xetex
+           texlive-xkeyval
+           texlive-xpinyin
+           texlive-xunicode
+           texlive-zhmetrics
+           texlive-zhmetrics-uptex
+           texlive-zhnumber))
+    (home-page "https://ctan.org/pkg/ctex")
+    (synopsis "LaTeX classes and packages for Chinese typesetting")
+    (description
+     "CTeX is a collection of macro packages and document classes for LaTeX
+Chinese typesetting.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-ctex-faq
+  (package
+    (name "texlive-ctex-faq")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ctex-faq/")
+             (base32
+              "15c0g0x8w7vm3hyn6lk60jf66akyfcq6x8jc2lnbjx8ydwgb26br")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ctex-faq")
+    (synopsis "LaTeX FAQ by the Chinese TeX Society (ctex.org)")
+    (description
+     "This is the LaTeX FAQ by the Chinese TeX Society.  Most questions were
+collected on the @url{bbs.ctex.org} forum, and were answered in detail by the
+author.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-ctib
+  (package
+    (name "texlive-ctib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ctib/"
+                   "fonts/source/public/ctib/"
+                   "fonts/tfm/public/ctib/"
+                   "source/latex/ctib/" "tex/latex/ctib/")
+             (base32
+              "0qvh0icrijcsyi3kvzkp890qjx7j9axv9yzzfa1paivyfp33aijn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/ctib4tex")
+    (synopsis "Tibetan for TeX and LaTeX2e")
+    (description
+     "This LaTeX package uses a modified version of Sirlin's Tibetan font.  An
+advantage of this Tibetan implementation is that all consonant clusters are
+formed by TeX and Metafont.  No external preprocessor is needed.")
+    (license license:gpl3+)))
+
 (define-public texlive-ctie
   (package
     (name "texlive-ctie")
@@ -7447,6 +14631,54 @@ code navigation, and related functionality to any text editor that speaks the
 LSP protocol.")
     (license (list license:gpl3+ license:lppl1.3+ license:fdl1.3+))))
 
+(define-public texlive-dickimaw
+  (package
+    (name "texlive-dickimaw")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dickimaw/")
+             (base32
+              "1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dickimaw")
+    (synopsis "Books and tutorials from the @emph{Dickimaw LaTeX Series}")
+    (description
+     "The package provides some of the books and tutorials that form part of
+the @code{Dickimaw LaTeX Series}.  Only the A4 PDF of each book is detailed
+here.  Other formats, such as HTML or screen optimized PDF, are available from
+the package home page.
+
+Books included are:
+@itemize
+@item @emph{LaTeX for Complete Novices},
+@item @emph{Using LaTeX to Write a PhD thesis},
+@item @emph{Creating a LaTeX minimal example}.
+@end itemize")
+    (license license:fdl1.3+)))
+
+(define-public texlive-docsurvey
+  (package
+    (name "texlive-docsurvey")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/docsurvey/")
+             (base32
+              "0f2kzmmpm7qwci04krmnz5impfwwmy2wwanmgq05878w8xbcqjj6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/docsurvey")
+    (synopsis "Survey of LaTeX documentation")
+    (description
+     "This package provides a survey of programming-related documentation for
+LaTeX.  Included are references to printed and electronic books and manuals,
+symbol lists, FAQs, the LaTeX source code, CTAN and distributions,
+programming-related packages, users groups and online communities, and
+information on creating packages and documentation.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-dtl
   (package
     (name "texlive-dtl")
@@ -7490,6 +14722,25 @@ which is readily readable by humans.  The DTL bundle contains an assembler
 LaTeX source (.dtx) file.")
     (license license:gpl3+)))
 
+(define-public texlive-dtxtut
+  (package
+    (name "texlive-dtxtut")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dtxtut/")
+             (base32
+              "1szg0xvwm0jbzs8waillijzrff4kv04a73gsqh9c12ap427xfryr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dtxtut")
+    (synopsis "Tutorial on writing @file{.dtx} and @file{.ins} files")
+    (description
+     "This tutorial is intended for advanced LaTeX2e users who want to learn
+how to create @file{.ins} and @file{.dtx} files for distributing their
+homebrewed classes and package files.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-dvi2tty
   (package
     (name "texlive-dvi2tty")
@@ -7745,6 +14996,28 @@ optionally be replaced with graphics paths so that applications that do not
 support SVG fonts are enabled to render the graphics properly.")
     (license license:gpl3+)))
 
+(define-public texlive-ebong
+  (package
+    (name "texlive-ebong")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ebong/" "scripts/ebong/")
+             (base32
+              "0ivzr6d83ws7q00k71zdz1v25y88fhja1safc4jfvd45i58fccy7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "ebong.py")))
+    (inputs (list python))
+    (home-page "https://ctan.org/pkg/ebong")
+    (synopsis "Utility for writing Bengali in Rapid Roman Format")
+    (description
+     "This package provides a tool (preprocessor) for writing your
+@code{pRaa-ne-r} ka-thaa in the Bengali langauage.  It allows one to write the
+text in Rapid Roman Bangla and convert it to the BangTeX format by a Python
+program.  All LaTeX markups are preserved in the target file.")
+    (license license:public-domain)))
+
 (define-public texlive-eijkhout
   (package
     (name "texlive-eijkhout")
@@ -7825,6 +15098,56 @@ an @file{.eps} file has anything except the origin for the lower-left of its
 bounding box.")
     (license license:public-domain)))
 
+(define-public texlive-ethiop
+  (package
+    (name "texlive-ethiop")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ethiop/"
+                   "fonts/ofm/public/ethiop/"
+                   "fonts/ovf/public/ethiop/"
+                   "fonts/ovp/public/ethiop/"
+                   "fonts/source/public/ethiop/"
+                   "fonts/tfm/public/ethiop/"
+                   "omega/ocp/ethiop/"
+                   "omega/otp/ethiop/"
+                   "source/latex/ethiop/"
+                   "tex/latex/ethiop/")
+             (base32
+              "1852g96rjyrsky7mpfwlxgip11qmk800xcmqccs8cv51f5342qlq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/ethiop")
+    (synopsis "LaTeX macros and fonts for typesetting Amharic")
+    (description
+     "This package provides Ethiopian language support for the Babel package,
+including a collection of fonts and TeX macros for typesetting the characters
+of the languages of Ethiopia, with Metafont fonts based on EthTeX's.  The
+macros use the Babel framework.")
+    (license license:gpl3+)))
+
+(define-public texlive-ethiop-t1
+  (package
+    (name "texlive-ethiop-t1")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ethiop-t1/"
+                   "fonts/map/dvips/ethiop-t1/"
+                   "fonts/type1/public/ethiop-t1/")
+             (base32
+              "19n6i61db88nhhkq9gg3gfr3sgpaf1ylr41l0xdhpfkn71y7par1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ethiop-t1")
+    (synopsis "Type 1 versions of Amharic fonts")
+    (description
+     "These fonts provided in this package are drop-in Adobe type
+1 replacements for the fonts of the @code{ethiop} package.")
+    (license license:gpl3+)))
+
 (define-public texlive-expex-acro
   (package
     (name "texlive-expex-acro")
@@ -7887,6 +15210,33 @@ a comfortable and straightforward way.
 allow a somewhat natural formulation.")
     (license license:lppl1.3c)))
 
+(define-public texlive-fc
+  (package
+    (name "texlive-fc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/fc/" "fonts/source/jknappen/fc/"
+                   "fonts/tfm/jknappen/fc/" "tex/latex/fc/")
+             (base32
+              "0v0r8jcr1lv31mx613h76h13psj73g49p2a6dnd0nfbfharww3gr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; FIXME: Font metrics cannot be generated due to "bad pos"
+               ;; errors with "fcitt" fonts.
+               (delete 'generate-font-metrics))))
+    (native-inputs (list texlive-metafont texlive-sauter))
+    (home-page "https://ctan.org/pkg/fc")
+    (synopsis "Fonts for African languages")
+    (description
+     "This package includes fonts for African languages.  The fonts are
+provided as Metafont source, in the familiar arrangement of lots of preamble
+files and a modest set of glyph specifications.")
+    (license license:gpl2)))
+
 (define-public texlive-fenixpar
   (package
     (name "texlive-fenixpar")
@@ -7914,6 +15264,26 @@ register.  The packages require the e-TeX extensions; with them, they work
 either with Plain TeX or with LaTeX.")
     (license license:lppl)))
 
+(define-public texlive-feupphdteses
+  (package
+    (name "texlive-feupphdteses")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/feupphdteses/"
+                   "tex/latex/feupphdteses/")
+             (base32
+              "1p6qwmcwayh45cmsgyx352ffzj2fcx2gaaya5qadn0ymx0pvb0lp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/feupphdteses")
+    (synopsis "Typeset Engineering PhD theses at the University of Porto")
+    (description
+     "This package provides a complete template for thesis/works of Faculdade
+de Engenharia da Universidade do Porto (FEUP) Faculty of Engineering
+University of Porto.")
+    (license license:lppl)))
+
 (define-public texlive-figflow
   (package
     (name "texlive-figflow")
@@ -7938,6 +15308,22 @@ area.")
     ;; file, without limitation."
     (license (license:fsf-free "file://doc/plain/figflow/README"))))
 
+(define-public texlive-finbib
+  (package
+    (name "texlive-finbib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/finbib/")
+             (base32
+              "1dr1ivhfb83ky3q82dzzv5vvc8bl84iq7am0p1rc8fjlbj95i4wm")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/finplain")
+    (synopsis "Finnish version of @file{plain.bst}")
+    (description "This package provides a Finnish version of
+@file{plain.bst}.")
+    (license license:knuth)))
+
 (define-public texlive-findhyph
   (package
     (name "texlive-findhyph")
@@ -7962,6 +15348,25 @@ enough context to enable you to find the hyphenated word that's being
 referenced.")
     (license license:gpl2)))
 
+(define-public texlive-first-latex-doc
+  (package
+    (name "texlive-first-latex-doc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/first-latex-doc/")
+             (base32
+              "13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/first-latex-doc")
+    (synopsis "Document for absolute LaTeX beginners")
+    (description
+     "The document leads a reader, who knows nothing about LaTeX, through the
+production of a two page document.  The user who has completed that first
+document, and wants to carry on, will find recommendations for tutorials.")
+    (license license:public-domain)))
+
 (define-public texlive-fixpdfmag
   (package
     (name "texlive-fixpdfmag")
@@ -8068,6 +15473,28 @@ Math mode always uses CM fonts.  A command for producing doubled-spaced
 documents is also provided.")
     (license license:lppl)))
 
+(define-public texlive-fontinstallationguide
+  (package
+    (name "texlive-fontinstallationguide")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/fontinstallationguide/")
+             (base32
+              "1i6im0nckcr9fzs0kc54dvcj3jvjz2j8jd55xgjm0r569qjj1hi5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fontinstallationguide")
+    (synopsis "Font installation guide")
+    (description
+     "This guide discusses the most common scenarios you are likely to
+encounter when installing Type 1 PostScript fonts.  While the individual tools
+employed in the installation process are documented well, the actual
+difficulty most users are facing when trying to install new fonts is
+understanding how to put all the pieces together.  This is what this guide is
+about.")
+    (license license:fdl1.3+)))
+
 (define-public texlive-fontools
   (package
     (name "texlive-fontools")
@@ -8108,6 +15535,35 @@ otc) into individual fonts.
 @end itemize")
     (license license:gpl2)))
 
+(define-public texlive-fonts-tlwg
+  (package
+    (name "texlive-fonts-tlwg")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/fonts-tlwg/"
+                   "fonts/afm/public/fonts-tlwg/"
+                   "fonts/enc/dvips/fonts-tlwg/"
+                   "fonts/map/dvips/fonts-tlwg/"
+                   "fonts/opentype/public/fonts-tlwg/"
+                   "fonts/tfm/public/fonts-tlwg/"
+                   "fonts/type1/public/fonts-tlwg/"
+                   "fonts/vf/public/fonts-tlwg/"
+                   "source/fonts/fonts-tlwg/"
+                   "tex/latex/fonts-tlwg/")
+             (base32
+              "19g1ksxsidf6cpcxm3knbbfpjw6jsfq2acy99cgmsy7jn33k253b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fonts-tlwg")
+    (synopsis "Thai fonts for LaTeX from TLWG")
+    (description
+     "This package provides a collection of Thai fonts, supplied as FontForge
+sources, and with LaTeX @file{.fd} files.")
+    (license (list license:gpl2+
+                   license:lppl1.3+
+                   (license:x11-style "file://source/fonts/fonts-tlwg/COPYING")))))
+
 (define-public texlive-fontware
   (package
     (name "texlive-fontware")
@@ -8137,6 +15593,25 @@ generates a VF file and a TFM file; @command{vftovp} takes a VF file and a TFM
 file and generates a VPL file.")
     (license license:knuth)))
 
+(define-public texlive-forest-quickstart
+  (package
+    (name "texlive-forest-quickstart")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/forest-quickstart/")
+             (base32
+              "1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/forest-quickstart")
+    (synopsis "Quickstart Guide for Linguists package @code{forest}")
+    (description
+     "@code{forest} is a PGF/TikZ-based package for drawing linguistic (and
+other kinds of) trees.  This manual provides a quickstart guide for linguists
+with just the essential things that you need to get started.")
+    (license license:fdl1.3+)))
+
 (define-public texlive-fragmaster
   (package
     (name "texlive-fragmaster")
@@ -8159,6 +15634,25 @@ EPS files and @command{psfrag} substitution definition files, and produces PDF
 and EPS files with the substitutions included.")
     (license license:gpl3+)))
 
+(define-public texlive-gentle
+  (package
+    (name "texlive-gentle")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/gentle/")
+             (base32
+              "1l5fyfdbkpqlgpgi1hrnn2sz8hchlnp7z5s5584czafvs10jg6vx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gentle")
+    (synopsis "Gentle introduction to TeX")
+    (description
+     "The @emph{Gentle Introduction} is the longest-established comprehensive
+tutorial on the use of plain TeX.")
+    (license
+     (license:fsf-free "file://share/texmf-dist/doc/plain/gentle/gentle.tex"))))
+
 (define-public texlive-getoptk
   (package
     (name "texlive-getoptk")
@@ -8199,6 +15693,61 @@ invented by Gottlob Frege in 1879 for his books @emph{Begriffsschrift} and
 books are supported.")
     (license license:gpl3)))
 
+(define-public texlive-gfsbaskerville
+  (package
+    (name "texlive-gfsbaskerville")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/gfsbaskerville/"
+                   "fonts/afm/public/gfsbaskerville/"
+                   "fonts/enc/dvips/gfsbaskerville/"
+                   "fonts/map/dvips/gfsbaskerville/"
+                   "fonts/opentype/public/gfsbaskerville/"
+                   "fonts/tfm/public/gfsbaskerville/"
+                   "fonts/type1/public/gfsbaskerville/"
+                   "fonts/vf/public/gfsbaskerville/"
+                   "tex/latex/gfsbaskerville/")
+             (base32
+              "0hf2nr0y1l9wzxvk0s2ajy3g80fcc02avr2fqrnss23c1a0jhr8q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gfsbaskerville")
+    (synopsis "Greek font, from one such by Baskerville")
+    (description
+     "The font is a digital implementation of Baskerville's classic Greek font,
+provided by the Greek Font Society.  The font covers Greek only, and LaTeX
+support provides for the use of LGR encoding.")
+    (license (list license:lppl1.0+ license:silofl1.1))))
+
+(define-public texlive-gfsporson
+  (package
+    (name "texlive-gfsporson")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/gfsporson/"
+                   "fonts/afm/public/gfsporson/"
+                   "fonts/enc/dvips/gfsporson/"
+                   "fonts/map/dvips/gfsporson/"
+                   "fonts/opentype/public/gfsporson/"
+                   "fonts/tfm/public/gfsporson/"
+                   "fonts/type1/public/gfsporson/"
+                   "fonts/vf/public/gfsporson/"
+                   "tex/latex/gfsporson/")
+             (base32
+              "11m9f3vh41w8gbla62219vf2djc5kl9i4kpg6i1iiixwrhi56smc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gfsporson")
+    (synopsis "Greek font, originally from Porson")
+    (description
+     "Porson is an elegant Greek font, originally cut at the turn of the 19th
+Century in England.  The present version has been provided by the Greek Font
+Society.  The font supports the Greek alphabet only.  LaTeX support is
+provided, using the LGR encoding.")
+    (license (list license:lppl1.0+ license:silofl1.1))))
+
 (define-public texlive-gobble
   (package
     (name "texlive-gobble")
@@ -8251,6 +15800,95 @@ those packages provided by @code{miniltx}.  The bundle also contains a file
 provides the LaTeX picture mode to Plain TeX users.")
     (license license:lppl1.0+)))
 
+(define-public texlive-greek-inputenc
+  (package
+    (name "texlive-greek-inputenc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/greek-inputenc/"
+                   "tex/latex/greek-inputenc/")
+             (base32
+              "1vifrgxwx92c44vmic9x7y65fl6lcmlavqq63dakl922ijlssrb1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/greek-inputenc")
+    (synopsis "Greek encoding support for @code{inputenc}")
+    (description
+     "The bundle provides UTF-8, Macintosh Greek encoding and ISO 8859-7
+definition files for use with @code{inputenc}.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-greekdates
+  (package
+    (name "texlive-greekdates")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/greekdates/"
+                   "source/latex/greekdates/"
+                   "tex/latex/greekdates/")
+             (base32
+              "1hwjskdllwxa14l12d0fn850sll3i9yihxlpjp2fk62v3iwkrq4r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/greekdates")
+    (synopsis "Provides ancient Greek day and month names, dates, etc")
+    (description
+     "The package provides easy access to ancient Greek names of days and
+months of various regions of Greece.  In case the historical information about
+a region is not complete, we use the Athenian name of the month.  Moreover
+commands and options are provided, in order to completely switch to the
+ancient way, such as @code{\\today}.")
+    (license license:lppl)))
+
+(define-public texlive-greektex
+  (package
+    (name "texlive-greektex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/greektex/" "tex/latex/greektex/")
+             (base32
+              "0zs3kakr7k261j876r1xpynvnmjjdn5rky0acfbcjxp7mmsqpmzn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/greektex")
+    (synopsis "Fonts for typesetting Greek/English documents")
+    (description
+     "The fonts are based on Silvio Levy's classical Greek fonts; macros and
+Greek hyphenation patterns for the fonts encoding are also provided.")
+    (license license:public-domain)))
+
+(define-public texlive-greektonoi
+  (package
+    (name "texlive-greektonoi")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/greektonoi/"
+                   "fonts/map/dvips/greektonoi/"
+                   "tex/latex/greektonoi/")
+             (base32
+              "14phabwakq87qgh3jxs95gk1w2q3aw29vhy441538y4fxvskqhrw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/greektonoi")
+    (synopsis "Facilitates writing/editing of multiaccented Greek")
+    (description
+     "The @code{greektonoi} mapping extends the @code{betababel} package or
+the Babel @samp{polutonikogreek} option to provide a simple way to insert
+ancient Greek texts with diacritical characters into your document using
+a similar method to the commonly used Beta Code transliteration, but with much
+more freedom.  It is designed especially for the XeTeX engine and it could
+also be used for fast and easy modification of monotonic Greek texts to
+polytonic.  The output text is natively encoded in Unicode, so it can be
+reused in any possible way.  The @code{greektonoi} package provides, in
+addition to inserting Greek accents and breathings, many other symbols used in
+Greek numbers and arithmetic or in the Greek archaic period.  It could be used
+with @code{greektonoi} mapping or indepedently.")
+    (license license:lgpl3)))
+
 (define-public texlive-gtl
   (package
     (name "texlive-gtl")
@@ -8272,6 +15910,25 @@ which are not necessarily balanced.  It is in particular used a lot in the
 to work with entire braced groups at a time.")
     (license license:lppl1.3c)))
 
+(define-public texlive-hindawi-latex-template
+  (package
+    (name "texlive-hindawi-latex-template")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/hindawi-latex-template/")
+             (base32
+              "0q35drybrlcfcrhrd5691m66nd17b0m6hkcsqazpb1ck227zih61")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/hindawi-latex-template")
+    (synopsis "LaTeX template for authors of the Hindawi journals")
+    (description
+     "This package contains a LaTeX template for authors of the Hindawi journals.
+Authors can use this template for formatting their research articles for
+submissions.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-hlist
   (package
     (name "texlive-hlist")
@@ -8309,6 +15966,58 @@ languages and/or dialects, and to select them or switch between them while
 typesetting.")
     (license license:public-domain)))
 
+(define-public texlive-ibycus-babel
+  (package
+    (name "texlive-ibycus-babel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ibycus-babel/"
+                   "source/latex/ibycus-babel/"
+                   "tex/latex/ibycus-babel/")
+             (base32
+              "1lwf28h6lzlblg7s7bx2dhqprxvjj78a8rlljhk9kw5pf065c7aj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ibycus-babel")
+    (synopsis "Use the Ibycus 4 Greek font with Babel")
+    (description
+     "The package allows you to use the Ibycus 4 font for ancient Greek with
+Babel.  It uses a Perl script to generate hyphenation patterns for Ibycus from
+those for the ordinary Babel encoding, @samp{cbgreek}.  It sets up
+@code{ibycus} as a pseudo-language you can specify in the normal Babel
+manner.")
+    (license license:lppl)))
+
+(define-public texlive-ibygrk
+  (package
+    (name "texlive-ibygrk")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/ibygrk/"
+                   "fonts/afm/public/ibygrk/"
+                   "fonts/enc/dvips/ibygrk/"
+                   "fonts/map/dvips/ibygrk/"
+                   "fonts/source/public/ibygrk/"
+                   "fonts/tfm/public/ibygrk/"
+                   "fonts/type1/public/ibygrk/"
+                   "tex/generic/ibygrk/")
+             (base32
+              "14a1hqqwz3pfpz5rz9k8finxnlan4a3l8a0brgs98p6mdp9xl3q1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-levy texlive-metafont))
+    (home-page "https://ctan.org/pkg/ibygrk")
+    (synopsis "Fonts and macros to typeset ancient Greek")
+    (description
+     "Ibycus is a Greek typeface, based on Silvio Levy's realisation of
+a classic Didot cut of Greek type from around 1800.  The fonts are available
+both as Metafont source and in Adobe Type 1 format.  This distribution of
+@code{ibycus} is accompanied by a set of macro packages to use it with Plain
+TeX or LaTeX, but for use with Babel, see the @code{ibycus-babel} package.")
+    (license license:gpl3+)))
+
 (define-public texlive-inputnormalization
   (package
     (name "texlive-inputnormalization")
@@ -8366,6 +16075,57 @@ for short verbatim; @file{xfig.tex}, for including xfig/transfig output in
 a TeX document; and @file{cassette.tex} for setting cassette labels.")
     (license license:public-domain)))
 
+(define-public texlive-jsclasses
+  (package
+    (name "texlive-jsclasses")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/jsclasses/"
+                   "source/platex/jsclasses/"
+                   "tex/platex/jsclasses/")
+             (base32
+              "024bgaim5rkamlwj4xa6w4yp8i37f8j6vn4jyrh8avwm9anc22pg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jsclasses")
+    (synopsis "Classes tailored for use with Japanese")
+    (description
+     "This package provides classes @code{jsarticle} and @code{jsbook},
+together with packages @code{okumacro} and @code{okuverb}.  These classes are
+designed to work under ASCII Corporation's Japanese TeX system pTeX.")
+    (license license:bsd-2)))
+
+(define-public texlive-kerkis
+  (package
+    (name "texlive-kerkis")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/kerkis/"
+                   "fonts/afm/public/kerkis/"
+                   "fonts/enc/dvips/kerkis/"
+                   "fonts/map/dvips/kerkis/"
+                   "fonts/opentype/public/kerkis/"
+                   "fonts/tfm/public/kerkis/"
+                   "fonts/type1/public/kerkis/"
+                   "fonts/vf/public/kerkis/"
+                   "tex/latex/kerkis/")
+             (base32
+              "1mkrnydgc05k2n6mrz6i3ichigf0bmy465s2vg514m7ma399khi9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/kerkis")
+    (synopsis "Kerkis (Greek) font family")
+    (description
+     "This package provides sans-serif Greek fonts to match the URW Bookman
+set (which are distributed with Kerkis).  The Kerkis font set has some support
+for mathematics as well as other glyphs missing from the base URW Bookman
+fonts.  Macros are provided to use the fonts in OT1, T1 (only NG/ng glyphs
+missing) and LGR encodings, as well as in mathematics; small caps and
+old-style number glyphs are also available.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-lambda-lists
   (package
     (name "texlive-lambda-lists")
@@ -8467,6 +16227,67 @@ to make the text fit the box.  Note that letterspacing is not ordinarily
 considered acceptable in modern typesetting of English.")
     (license license:knuth)))
 
+(define-public texlive-levy
+  (package
+    (name "texlive-levy")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/levy/"
+                   "fonts/source/public/levy/"
+                   "fonts/tfm/public/levy/" "tex/generic/levy/")
+             (base32
+              "1nkfsq5k2rysgsplv6rhvx8fimd7999dylzd2khvw7flryig32nv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/levy-font")
+    (synopsis "Fonts for typesetting classical Greek")
+    (description
+     "These fonts are derivatives of Kunth's CM fonts.  Macros for use with
+Plain TeX are included in the package; for use with LaTeX, see @code{lgreek}
+(with English documentation) or @code{levy} (with German documentation).")
+    (license license:gpl2)))
+
+(define-public texlive-lgreek
+  (package
+    (name "texlive-lgreek")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lgreek/" "tex/latex/lgreek/")
+             (base32
+              "1wa8d5mlk6jkx3m1rfddasw169sc6l6p8n4axh6i0np1imgsxx2b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lgreek")
+    (synopsis "LaTeX macros for using Silvio Levy's Greek fonts")
+    (description
+     "This package provides a conversion of Silvio Levy's Plain TeX macros for
+use with LaTeX.")
+    (license license:gpl2)))
+
+(define-public texlive-lgrmath
+  (package
+    (name "texlive-lgrmath")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lgrmath/" "source/latex/lgrmath/"
+                   "tex/latex/lgrmath/")
+             (base32
+              "0lj4jdzwykqz1hkv2s6y2ghf1zlalx27gd6kfpbnignxmh63cpkb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lgrmath")
+    (synopsis "Use LGR-encoded fonts in math mode")
+    (description
+     "The @code{lgrmath} package is a LaTeX package which sets the Greek
+letters in math mode to use glyphs from the LGR-encoded font of one's choice.
+The documentation includes a rather extensive list of the available font
+family names on typical LaTeX installations.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-localloc
   (package
     (name "texlive-localloc")
@@ -8540,6 +16361,29 @@ of TeX and one of Metafont are needed.")
     ;; when modified.
     (license (license:fsf-free "file://tex/generic/midnight/border.tex"))))
 
+(define-public texlive-mkgrkindex
+  (package
+    (name "texlive-mkgrkindex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/mkgrkindex/"
+                   "makeindex/mkgrkindex/"
+                   "scripts/mkgrkindex/")
+             (base32
+              "0bj35wdxn0xllpqzf8lrd00b5rmyy9fws84avz3ijk4k8rvfz8gk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "mkgrkindex")))
+    (home-page "https://ctan.org/pkg/greek-makeindex")
+    (synopsis "MakeIndex working with Greek")
+    (description
+     "MakeIndex is resolutely stuck with Latin-based alphabets, so will not
+deal with Greek indexes, unaided.  This package provides a Perl script that
+will transmute the index of a Greek document in such a way that MakeIndex will
+sort the entries according to the rules of the Greek alphabet.")
+    (license license:lppl)))
+
 (define-public texlive-modulus
   (package
     (name "texlive-modulus")
@@ -8563,6 +16407,63 @@ a division operation without destroying the values of the counters containing
 the dividend and divisor.")
     (license license:lppl1.3c)))
 
+(define-public texlive-mongolian-babel
+  (package
+    (name "texlive-mongolian-babel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/mongolian-babel/"
+                   "source/latex/mongolian-babel/"
+                   "tex/latex/mongolian-babel/")
+             (base32
+              "12kzips0jmjahrrfaripglg203dvvr408v5qxjvnrnxqzb8d1i2w")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/mongolian-babel")
+    (synopsis "Language definition file for Mongolian in Babel")
+    (description
+     "This package provides support for Mongolian in a Cyrillic
+alphabet.  (The work derives from the earlier Russian work for Babel.)")
+    (license license:lppl)))
+
+(define-public texlive-montex
+  (package
+    (name "texlive-montex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/montex/"
+                   "fonts/map/dvips/montex/"
+                   "fonts/source/public/montex/"
+                   "fonts/tfm/public/montex/"
+                   "fonts/type1/public/montex/"
+                   "tex/latex/montex/")
+             (base32
+              "01rbzw0kbiy3wig2mrdclygx7a71dckq9rhqj8jpdnbjyhm9jw35")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (propagated-inputs (list texlive-cbfonts))
+    (home-page "https://ctan.org/pkg/montex")
+    (synopsis "Mongolian LaTeX")
+    (description
+     "MonTeX provides Mongolian and Manju support for the TeX and LaTeX community.
+It provides all necessary characters for writing standard Mongolian in
+Cyrillic and Classical (aka Traditional or Uighur) writing, and Manju as well
+as transliterated Tibetan texts, for which purpose a number of additional
+characters was created.
+
+In MonTeX, both Mongolian and Manju are entered in romanized form.  The
+retransliteration (from Latin input to Mongolian and Manju output) is
+completely realized in TeX and Metafont so that no external preprocessor is
+required.  Please note that most of the enhanced functions of MonTeX require
+a working e-LaTeX environment.  This is especially true when compiling
+documents with Mongolian or Manju as the main document language.  It is
+recommended to choose pdfLaTeX as the resulting PDF files are truly portable.
+Vertical text generated by MonTeX is not supported in DVI.")
+    (license license:gpl3+)))
+
 (define-public texlive-moreverb
   (package
     (name "texlive-moreverb")
@@ -8587,6 +16488,49 @@ advised to consider using the @code{fancyvrb} package in place of
 @code{moreverb}.")
     (license license:lppl)))
 
+(define-public texlive-morisawa
+  (package
+    (name "texlive-morisawa")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/morisawa/"
+                   "fonts/map/dvipdfmx/morisawa/"
+                   "fonts/tfm/public/morisawa/"
+                   "fonts/vf/public/morisawa/"
+                   "source/fonts/morisawa/"
+                   "tex/latex/morisawa/")
+             (base32
+              "1wqyiq049y0mv6d1r3d0mrjzhh5pq2vi50sr0jhd58k4wdg8zqkb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/morisawa")
+    (synopsis
+     "Selection of 5 standard Japanese fonts for pLaTeX and dvips")
+    (description
+     "The package enables selection of 5 standard Japanese fonts for pLaTeX
+and dvips.")
+    (license license:bsd-2)))
+
+(define-public texlive-mpman-ru
+  (package
+    (name "texlive-mpman-ru")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/metapost/mpman-ru/")
+             (base32
+              "1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/mpman-ru")
+    (synopsis "Russian translation of the MetaPost manual")
+    (description
+     "This package provides a translation of the MetaPost user manual, as
+distributed with MetaPost itself.")
+    ;; Explicitly use the same license as MetaPost.
+    (license license:lppl)))
+
 (define-public texlive-namedef
   (package
     (name "texlive-namedef")
@@ -8652,6 +16596,25 @@ and use raw PDF objects.")
     ;; explicitly instead of simply renaming the file.
     (license (license:fsf-free "file://doc/plain/newsletr/read.me"))))
 
+(define-public texlive-numnameru
+  (package
+    (name "texlive-numnameru")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/numnameru/"
+                   "tex/latex/numnameru/")
+             (base32
+              "1il8qn9wkdk554r4a8h5vmdmwcvgwygcx58zwnqxflz6hqsxdjmx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/numnameru")
+    (synopsis "Converts a number to the Russian spelled out name")
+    (description
+     "This package converts a numerical number to the Russian spelled out name
+of the number.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-ofs
   (package
     (name "texlive-ofs")
@@ -8817,6 +16780,32 @@ documentation (for example, that of the @code{texapi} and @code{yax}
 packages).")
     (license license:lppl)))
 
+(define-public texlive-pl
+  (package
+    (name "texlive-pl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/pl/"
+                   "dvips/pl/"
+                   "fonts/afm/public/pl/"
+                   "fonts/enc/dvips/pl/"
+                   "fonts/map/dvips/pl/"
+                   "fonts/source/public/pl/"
+                   "fonts/tfm/public/pl/"
+                   "fonts/type1/public/pl/")
+             (base32
+              "18s3by7isk85ksvp40i6qg2ws3iyj5f35fh8h0561rw6jdc024rc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-amsfonts texlive-metafont texlive-cm))
+    (home-page "https://ctan.org/pkg/pl-mf")
+    (synopsis "Polish extension of Computer Modern fonts")
+    (description
+     "This package provides the Polish extension of the Computer Modern
+fonts (compatible with CM itself) for use with Polish TeX formats.")
+    (license license:public-domain)))
+
 (define-public texlive-placeins-plain
   (package
     (name "texlive-placeins-plain")
@@ -8859,6 +16848,125 @@ functionality, and handling of arbitrary (multiple) private letters (analagous
 LaTeX packages use of @samp{@@@@}) in nested package files.")
     (license license:lppl1.3+)))
 
+(define-public texlive-platex
+  (package
+    (name "texlive-platex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/platex.1"
+                   "doc/man/man1/platex.man1.pdf"
+                   "doc/platex/base/"
+                   "source/platex/base/"
+                   "tex/platex/base/"
+                   "tex/platex/config/")
+             (base32
+              "0a843xnp3iikjxw1klxb3j2bssm6ylhcw32s046xxm2bs527hxi8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:create-formats #~(list "platex" "platex-dev")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-build
+                 ;; This phase is necessary because the build phase is
+                 ;; reluctant to generate "kinsoku.tex" since there is another
+                 ;; one among the inputs (texlive-ptex) already.
+                 (lambda _
+                   (substitute* "source/platex/base/plfmt.ins"
+                     (("\\\\keepsilent\n" all)
+                      (string-append all "\\askforoverwritefalse\n"))))))))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-babel
+           texlive-cm
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-base
+           texlive-l3backend
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-ptex
+           texlive-ptex-fonts
+           texlive-tex-ini-files
+           texlive-unicode-data
+           texlive-uptex))
+    (home-page "https://ctan.org/pkg/platex")
+    (synopsis "pLaTeX2e and miscellaneous macros for pTeX")
+    (description
+     "The bundle provides pLaTeX2e and miscellaneous macros for pTeX and
+e-pTeX.")
+    (license license:bsd-3)))
+
+(define-public texlive-platex-tools
+  (package
+    (name "texlive-platex-tools")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/platex-tools/"
+                   "tex/latex/platex-tools/")
+             (base32
+              "1wdxcmag1kk6zs7dv10jdcs9ih0bs08xr14iw5bqqyppia4pa1lv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/platex-tools")
+    (synopsis "pLaTeX standard tools bundle")
+    (description
+     "This bundle is an extended version of the @code{latex-tools} bundle
+developed by the LaTeX team, mainly intended to support pLaTeX2e and
+upLaTeX2e.  Currently patches for the @code{latex-tools} bundle and Martin
+Schroder's @code{ms} bundle are included.")
+    (license license:bsd-3)))
+
+(define-public texlive-platexcheat
+  (package
+    (name "texlive-platexcheat")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/platexcheat/")
+             (base32
+              "04hvm19x4z7vq2md3p3r2wwa7iqkgkxnvvj1xx3s9145m6fjib5a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/platexcheat")
+    (synopsis "LaTeX cheat sheet, in Japanese")
+    (description
+     "This is a translation to Japanese of Winston Chang's LaTeX cheat
+sheet (a reference sheet for writing scientific papers).  It has been adapted
+to Japanese standards using pLaTeX, and also attached additional information
+of standard LaTeX (especially about Math mode).")
+    (license license:expat)))
+
+(define-public texlive-plautopatch
+  (package
+    (name "texlive-plautopatch")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/plautopatch/"
+                   "tex/latex/plautopatch/")
+             (base32
+              "1fhphmjhq0mbsarkfmfj0580b97lxxbcwanr4zpwjj5f6krqq742")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/plautopatch")
+    (synopsis "Automated patches for pLaTeX/upLaTeX")
+    (description
+     "Japanese pLaTeX and upLaTeX formats and packages often conflict with
+other LaTeX packages which are unaware of pLaTeX and upLaTeX.  In the worst
+case, such packages throw a fatal error or end up with a wrong output.  The
+goal of this package is that there should be no need to worry about such
+incompatibilities, because specific patches are loaded automatically whenever
+necessary.  This helps not only to simplify source files, but also to make the
+appearance of working pLaTeX or upLaTeX sources similar to those of ordinary
+LaTeX ones.")
+    (license license:bsd-3)))
+
 (define-public texlive-plipsum
   (package
     (name "texlive-plipsum")
@@ -8963,6 +17071,360 @@ not overly complex, so that users should find it easy to adapt the macros to
 their specific needs.")
     (license license:lppl)))
 
+(define-public texlive-ptex
+  (package
+    (name "texlive-ptex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/eptex.1"
+                   "doc/man/man1/eptex.man1.pdf"
+                   "doc/man/man1/makejvf.1"
+                   "doc/man/man1/makejvf.man1.pdf"
+                   "doc/man/man1/mendex.1"
+                   "doc/man/man1/mendex.man1.pdf"
+                   "doc/man/man1/pbibtex.1"
+                   "doc/man/man1/pbibtex.man1.pdf"
+                   "doc/man/man1/ppltotf.1"
+                   "doc/man/man1/ppltotf.man1.pdf"
+                   "doc/man/man1/ptex.1"
+                   "doc/man/man1/ptex.man1.pdf"
+                   "doc/man/man1/ptftopl.1"
+                   "doc/man/man1/ptftopl.man1.pdf")
+             (base32
+              "1dk8rvadr1q00bjizj567lzjp5l47pr7miyk0ghkajbiiwbqi0kn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "eptex" "ptex")))
+    (propagated-inputs
+     (list texlive-cm
+           texlive-etex
+           texlive-hyphen-base
+           texlive-knuth-lib
+           texlive-plain
+           texlive-ptex-base
+           texlive-ptex-fonts))
+    (home-page "https://ctan.org/pkg/ptex")
+    (synopsis "TeX system for publishing in Japanese")
+    (description
+     "pTeX adds features related to vertical writing, and deals with other
+problems in typesetting Japanese.  A manual (in both Japanese and English) is
+distributed as package @code{pTeX-manual}.")
+    (license license:bsd-3)))
+
+(define-public texlive-ptex-base
+  (package
+    (name "texlive-ptex-base")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/ptex/ptex-base/" "tex/ptex/ptex-base/")
+             (base32
+              "0hfccpsfpj56v97056k77lyb09az7m24m8klf1n2v0a7kqdc1fv6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ptex-base")
+    (synopsis "Plain TeX format for pTeX and e-pTeX")
+    (description
+     "The bundle contains the plain TeX format for pTeX and e-pTeX.")
+    (license license:bsd-3)))
+
+(define-public texlive-ptex-fontmaps
+  (package
+    (name "texlive-ptex-fontmaps")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/ptex-fontmaps/"
+                   "fonts/cmap/ptex-fontmaps/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/adobe/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/apple/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/arphic/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/baekmuk/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/bizud/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/canon/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/cjkunifonts-ttf/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/cjkunifonts/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/dynacomware/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/fandol/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/founder/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/haranoaji/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/hiragino-pron/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/hiragino/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ipa/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ipaex/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/kozuka-pr6/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/kozuka-pr6n/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/kozuka/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/moga-mobo-ex/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/moga-mobo/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/morisawa-pr6n/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/morisawa/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ms-osx/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ms-win10/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ms/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/noEmbed/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/noto-otc/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/noto/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/solaris/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/sourcehan-otc/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/sourcehan/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/ume/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/unfonts/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/yu-osx/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/yu-win/"
+                   "fonts/map/dvipdfmx/ptex-fontmaps/yu-win10/"
+                   "fonts/misc/ptex-fontmaps/"
+                   "scripts/ptex-fontmaps/"
+                   "source/ptex-fontmaps/jis04cmap_exp/"
+                   "source/ptex-fontmaps/script/")
+             (base32
+              "07qm41d33z9vjvchsxfrqxim7zb15cg77x4aw5a06mgn3w7kz6ha")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:link-scripts #~(list "kanji-config-updmap-sys.sh"
+                                  "kanji-config-updmap-user.sh"
+                                  "kanji-config-updmap.pl"
+                                  "kanji-fontmap-creator.pl")))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/ptex-fontmaps")
+    (synopsis
+     "Font maps and tools for Japanese/Chinese/Korean fonts with (u)pTeX")
+    (description
+     "This package provides font maps and setup tools for Japanese, Korean,
+Traditional Chinese, and Simplified Chinese.  It is the successor of the
+@code{jfontmaps} package.  The files in this package contain font maps for
+dvipdfmx to make various Japanese, Chinese, and Korean fonts available
+for (u)ptex and related programs and formats.")
+    (license (list license:public-domain license:gpl3))))
+
+(define-public texlive-ptex-manual
+  (package
+    (name "texlive-ptex-manual")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/ptex/ptex-manual/")
+             (base32
+              "1pz8jyd86s2fjj0d63q9h04x0sxcyx1ffp48lf3n8awj0zrij861")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ptex-manual")
+    (synopsis "Japanese pTeX manual")
+    (description "This package contains the Japanese pTeX manual.")
+    (license license:bsd-3)))
+
+(define-public texlive-ptex-fonts
+  (package
+    (name "texlive-ptex-fonts")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/ptex-fonts/"
+                   "fonts/source/ptex-fonts/jis/"
+                   "fonts/source/ptex-fonts/nmin-ngoth/"
+                   "fonts/source/ptex-fonts/standard/"
+                   "fonts/tfm/ptex-fonts/dvips/"
+                   "fonts/tfm/ptex-fonts/jis/"
+                   "fonts/tfm/ptex-fonts/nmin-ngoth/"
+                   "fonts/tfm/ptex-fonts/standard/"
+                   "fonts/vf/ptex-fonts/jis/"
+                   "fonts/vf/ptex-fonts/nmin-ngoth/"
+                   "fonts/vf/ptex-fonts/standard/")
+             (base32
+              "0f33y28zmrc6gw01qj956vrwj3mh5gn6kph2i13yg1yi2hdl7wwa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ptex-fonts")
+    (synopsis "Fonts for use with pTeX")
+    (description
+     "The bundle contains fonts for use with pTeX and the documents for the
+@command{makejvf} program.")
+    (license license:bsd-3)))
+
+(define-public texlive-ptex2pdf
+  (package
+    (name "texlive-ptex2pdf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ptex2pdf/" "scripts/ptex2pdf/")
+             (base32
+              "0vc4clig35s9cir2gmls7zvj8k1qal4np0akvlgsz2zch44b0imr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "ptex2pdf.lua")))
+    (home-page "https://ctan.org/pkg/ptex2pdf")
+    (synopsis "Convert Japanese TeX documents to PDF")
+    (description
+     "The Lua script provides system-independent support of Japanese
+typesetting engines in TeXworks.  As TeXworks typesetting setup does not allow
+for multistep processing, this script runs one of the pTeX-based programs
+followed by dvipdfmx.")
+    (license license:gpl2)))
+
+(define-public texlive-pxbase
+  (package
+    (name "texlive-pxbase")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/pxbase/" "tex/platex/pxbase/")
+             (base32
+              "0dq9d4ixddffjnzb73d2qacgzm27665hvq2gsfjqzikzaa70dahw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxbase")
+    (synopsis "Tools for use with (u)pLaTeX")
+    (description
+     "The main purpose of this package is to provide auxiliary functions which
+are utilized by other packages created by the same author.  It also provides
+a few user commands to assist in creating Japanese documents using
+@code{(u)pLaTeX.}")
+    (license license:expat)))
+
+(define-public texlive-pxchfon
+  (package
+    (name "texlive-pxchfon")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/pxchfon/" "fonts/sfd/pxchfon/"
+                   "fonts/tfm/public/pxchfon/"
+                   "fonts/vf/public/pxchfon/"
+                   "tex/platex/pxchfon/")
+             (base32
+              "0pvhgcv6rxp2lnscsh9k3z907114p09ja3frcy5276is21d6sdrj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxchfon")
+    (synopsis "Japanese font setup for pLaTeX and upLaTeX")
+    (description
+     "This package enables users to declare in their document which physical
+fonts should be used for the standard Japanese (logical) fonts of pLaTeX and
+upLaTeX.  Font setup is realized by changing the font mapping of dvipdfmx, and
+thus users can use any (monospaced) physical fonts they like, once they
+properly install this package, without creating helper files for each new
+font.  This package also supports setup for the fonts used in the
+@code{japanese-otf} package.")
+    (license license:expat)))
+
+(define-public texlive-pxcjkcat
+  (package
+    (name "texlive-pxcjkcat")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pxcjkcat/" "tex/latex/pxcjkcat/")
+             (base32
+              "10lbwry55rdldfhj2v893rpp1jdzv00vxhg4hf4gsgsmv1nnp25f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxcjkcat")
+    (synopsis "LaTeX interface for the CJK category codes of upTeX")
+    (description
+     "The package provides management of the CJK category code table of the
+upTeX extended TeX engine.  Package options are available for tailored use in
+the cases of documents that are principally written in Japanese, or
+principally written in English or other Western languages.")
+    (license license:expat)))
+
+(define-public texlive-pxjahyper
+  (package
+    (name "texlive-pxjahyper")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/pxjahyper/"
+                   "tex/platex/pxjahyper/")
+             (base32
+              "0128yslhwbrdhshjhxk6ayfl42ds0x0sfyvp91aspwbkfjnr34p9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxjahyper")
+    (synopsis "Hyperref support for pLaTeX")
+    (description
+     "This package adjusts the behavior of @code{hyperref} on (u)pLaTeX so
+that authors can properly create PDF documents that contain document
+information in Japanese.")
+    (license license:expat)))
+
+(define-public texlive-pxjodel
+  (package
+    (name "texlive-pxjodel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pxjodel/"
+                   "fonts/tfm/public/pxjodel/"
+                   "fonts/vf/public/pxjodel/"
+                   "tex/latex/pxjodel/")
+             (base32
+              "1g5sd60zd34ark50qy2dgqrdcd5pwy5hxmi6g5jxqlj3j1n6r1ny")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxjodel")
+    (synopsis "Help change metrics of fonts from japanese-otf")
+    (description
+     "This package changes the setup of the @code{japanese-otf} package so
+that the TFMs for direct input are all replaced by new ones with prefixed
+names.  This function will assist users who want to use the
+@code{japanese-otf} package together with tailored TFMs of Japanese fonts.")
+    (license license:expat)))
+
+(define-public texlive-pxrubrica
+  (package
+    (name "texlive-pxrubrica")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/pxrubrica/"
+                   "source/platex/pxrubrica/"
+                   "tex/platex/pxrubrica/")
+             (base32
+              "0n8jc65szkq114qg197hc9amrpifqvha8wifxplhvbmb09kzm5mm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxrubrica")
+    (synopsis "Ruby annotations according to JIS X 4051")
+    (description
+     "This package provides a function to add ruby annotations (furigana) that
+follow the style conventional in Japanese typography as described in the W3C
+technical note @emph{Requirements for Japanese Text Layout} and the JIS
+specification JIS X 4051.")
+    (license license:expat)))
+
+(define-public texlive-pxufont
+  (package
+    (name "texlive-pxufont")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pxufont/"
+                   "fonts/tfm/public/pxufont/"
+                   "fonts/vf/public/pxufont/"
+                   "tex/latex/pxufont/")
+             (base32
+              "167hmw73lxgsv27gkzanr1plalsqfxphknl8q3rbamy2zp6n0al0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxufont")
+    (synopsis "Emulate non-Unicode Japanese fonts using Unicode fonts")
+    (description
+     "The set of the Japanese logical fonts (JFMs) that are used as standard
+fonts in pTeX and upTeX contains both Unicode JFMs and non-Unicode JFMs.  This
+bundle provides an alternative set of non-Unicode JFMs that are tied to the
+virtual fonts (VFs) that refer to the glyphs in the Unicode JFMs.  Moreover it
+provides a LaTeX package that redefines the NFSS settings of the Japanese
+fonts of @code{(u)pLaTeX} so that the new set of non-Unicode JFMs will be
+employed.  As a whole, this bundle allows users to dispense with the mapping
+setup on non-Unicode JFMs.  Such a setup is useful in particular when users
+want to use OpenType fonts (such as Source Han Serif) that have a glyph
+encoding different from Adobe-Japan1, because mapping setups from non-Unicode
+JFMs to such physical fonts are difficult to prepare.")
+    (license license:expat)))
+
 (define-public texlive-pwebmac
   (package
     (name "texlive-pwebmac")
@@ -9199,6 +17661,27 @@ required.")
 position is already further along, @code{\\tabto} starts a new line.")
     (license license:public-domain)))
 
+(define-public texlive-talos
+  (package
+    (name "texlive-talos")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/talos/"
+                   "fonts/opentype/public/talos/")
+             (base32
+              "1m656d4lkc9ikp7gb91yna4323lip3xcr6n3kqh1j4sqvp4rkm61")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/talos")
+    (synopsis "Greek cult font from the eighties")
+    (description
+     "This package provides a cult Greek font from the eighties, used at the
+University of Crete, Greece.  It belonged to the first TeX installation in
+a Greek University and most probably the first TeX installation that supported
+the Greek language.")
+    (license license:gfl1.0)))
+
 (define-public texlive-termmenu
   (package
     (name "texlive-termmenu")
@@ -9221,6 +17704,27 @@ these options for the program to process.  @code{termmenu} provides this
 mechanism for TeX.")
     (license license:lppl1.3+)))
 
+(define-public texlive-teubner
+  (package
+    (name "texlive-teubner")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/teubner/" "source/latex/teubner/"
+                   "tex/latex/teubner/")
+             (base32
+              "1wlp2hv1xsn7z1d42y01mwp4yq06w1j9p3fgk2vvi4ca20rgg7pk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/teubner")
+    (synopsis "Philological typesetting of classical Greek")
+    (description
+     "This package provides an extension to Babel @samp{greek} option for
+typesetting classical Greek with a philological approach.  The package works
+with the author's greek fonts using the Lispiakos font shape derived from that
+of the fonts used in printers shops in Lispia.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-tex
   (package
     (name "texlive-tex")
@@ -9424,6 +17928,180 @@ analytical expansion of sin and cos.")
 barcodes.")
     (license license:lppl)))
 
+(define-public texlive-uplatex
+  (package
+    (name "texlive-uplatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/uplatex.1"
+                   "doc/man/man1/uplatex.man1.pdf"
+                   "doc/uplatex/base/"
+                   "source/uplatex/base/"
+                   "tex/uplatex/base/"
+                   "tex/uplatex/config/")
+             (base32
+              "0bzkyira30b9xdsdfxjmwzgqffl9pvckz5avm6c3r0bq6asiml9l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:create-formats #~(list "uplatex" "uplatex-dev")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-build
+                 ;; This phase is necessary because the build phase is
+                 ;; reluctant to generate "ukinsoku.tex" since there is
+                 ;; another one among the inputs (texlive-uptex) already.
+                 (lambda _
+                   (substitute* "source/uplatex/base/uplfmt.ins"
+                     (("\\\\keepsilent\n" all)
+                      (string-append all "\\askforoverwritefalse\n"))))))))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-babel
+           texlive-cm
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-base
+           texlive-l3backend
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-platex
+           texlive-tex-ini-files
+           texlive-unicode-data
+           texlive-uptex
+           texlive-uptex-fonts))
+    (home-page "https://ctan.org/pkg/uplatex")
+    (synopsis "pLaTeX2e and miscellaneous macros for upTeX")
+    (description
+     "The bundle provides pLaTeX2e macros for upTeX by Takuji Tanaka.")
+    (license license:bsd-3)))
+
+(define-public texlive-uptex-base
+  (package
+    (name "texlive-uptex-base")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/uptex/uptex-base/"
+                   "tex/uptex/uptex-base/")
+             (base32
+              "1xd55rv5ivlmmfmvvz611by6dbi0cw4lwpprcvd9yvgmqjafc1pj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/uptex-base")
+    (synopsis "Plain TeX formats and documents for upTeX")
+    (description
+     "The bundle contains plain TeX format files and documents for upTeX and
+and e-upTeX.")
+    (license license:bsd-3)))
+
+(define-public texlive-uptex
+  (package
+    (name "texlive-uptex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/euptex.1"
+                   "doc/man/man1/euptex.man1.pdf"
+                   "doc/man/man1/upbibtex.1"
+                   "doc/man/man1/upbibtex.man1.pdf"
+                   "doc/man/man1/uppltotf.1"
+                   "doc/man/man1/uppltotf.man1.pdf"
+                   "doc/man/man1/uptex.1"
+                   "doc/man/man1/uptex.man1.pdf"
+                   "doc/man/man1/uptftopl.1"
+                   "doc/man/man1/uptftopl.man1.pdf")
+             (base32
+              "14hn2n6jbibbqbdr72j74z5bz003jnlabi3kja0f0waxhas680gd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:create-formats #~(list "euptex" "uptex")))
+    (propagated-inputs
+     (list texlive-cm
+           texlive-etex
+           texlive-hyphen-base
+           texlive-knuth-lib
+           texlive-plain
+           texlive-ptex-base
+           texlive-uptex-base
+           texlive-uptex-fonts))
+    (home-page "https://ctan.org/pkg/uptex")
+    (synopsis "Unicode version of pTeX")
+    (description
+     "upTeX is an extension of pTeX, using UTF-8 input and producing UTF-8 output.
+It was originally designed to improve support for Japanese, but is also useful
+for documents in Chinese and Korean.  It can process Chinese simplified,
+Chinese traditional, Japanese, and Korean simultaneously, and can also process
+original LaTeX with @code{\\inputenc@{utf8@}} and Babel
+(Latin/Cyrillic/Greek etc.) by switching its @code{\\kcatcode} tables.")
+    (license license:bsd-3)))
+
+(define-public texlive-uptex-fonts
+  (package
+    (name "texlive-uptex-fonts")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/uptex-fonts/"
+                   "fonts/cmap/uptex-fonts/"
+                   "fonts/source/uptex-fonts/"
+                   "fonts/tfm/uptex-fonts/jis/"
+                   "fonts/tfm/uptex-fonts/min/"
+                   "fonts/vf/uptex-fonts/jis/"
+                   "fonts/vf/uptex-fonts/min/")
+             (base32
+              "13cvdmfr97ad77q0djffl28grm1brqcsb1ccwkfdnkznp7ihiz82")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/uptex-fonts")
+    (synopsis "Fonts for use with upTeX")
+    (description "The bundle contains fonts (TFM and VF) for use with upTeX.")
+    (license license:bsd-3)))
+
+(define-public texlive-upzhkinsoku
+  (package
+    (name "texlive-upzhkinsoku")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/upzhkinsoku/"
+                   "tex/generic/upzhkinsoku/")
+             (base32
+              "0c95fy9raykpjgnkz5h0wyjxyg2h0ksx2kb14lx2rsv65xsi909y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/upzhkinsoku")
+    (synopsis "Supplementary Chinese kinsoku for Unicode *pTeX")
+    (description
+     "This package provides supplementary Chinese kinsoku (line breaking rules
+etc.)@: settings for Unicode (e-)upTeX (when using Unicode as its internal
+encoding), and ApTeX.  Both LaTeX and plain TeX are supported.")
+    (license license:knuth)))
+
+(define-public texlive-variations
+  (package
+    (name "texlive-variations")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/variations/"
+                   "tex/generic/variations/")
+             (base32
+              "1ad1yc1v32ds4wj36fql6fjiacziw4ynvw0rpj3x01k6jdvh44xh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/variations")
+    (synopsis "Typeset tables of variations of functions")
+    (description
+     "The package provides macros for typesetting tables showing variations of
+functions according to French usage.  These macros may be used by both LaTeX
+and plain TeX users.")
+    (license license:gpl3+)))
+
 (define-public texlive-varisize
   (package
     (name "texlive-varisize")
@@ -9443,6 +18121,32 @@ a size-change macro.  Note that @file{10point.tex} is by convention called by
 one of the other files, so that there's always a way back.")
     (license license:public-domain)))
 
+(define-public texlive-xgreek
+  (package
+    (name "texlive-xgreek")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xgreek/" "source/latex/xgreek/"
+                   "tex/latex/xgreek/")
+             (base32
+              "0hmy7s53bi9szvp13zcg6hk23s8mr2ssbnmq9cw5sb8ggz8icywa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xgreek")
+    (synopsis "Greek language support for XeLaTeX and LuaLaTeX")
+    (description
+     "This package has been designed so to allow people to typeset Greek
+language documents using XeLaTeX or LuaLaTeX.  Practically, it provides all
+the capabilities of the @samp{greek} option of the Babel package.
+
+The package can be invoked with any of the following options:
+@samp{monotonic} (for typesetting modern monotonic Greek),
+@samp{polytonic} (for typesetting modern polytonic Greek), and
+@samp{ancient} (for typesetting ancient texts).  The default option is
+@samp{monotonic}.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-xii
   (package
     (name "texlive-xii")
@@ -9525,6 +18229,91 @@ features allow to deal with numbers (tests, display, some high level
 operations, etc.)")
     (license license:lppl1.3+)))
 
+(define-public texlive-xtuthesis
+  (package
+    (name "texlive-xtuthesis")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xtuthesis/"
+                   "tex/latex/xtuthesis/")
+             (base32
+              "1fdk9dkikqlkjwrg8qjm2phvsyyvddshf78bjy6liyz5hqakk6r8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xtuthesis")
+    (synopsis "XTU thesis template")
+    (description
+     "The package provides a thesis template for the Xiangtan University.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-yannisgr
+  (package
+    (name "texlive-yannisgr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/yannisgr/"
+                   "fonts/source/public/yannisgr/"
+                   "fonts/tfm/public/yannisgr/")
+             (base32
+              "0s5cfid1r6jn34kzvmxwxyxpvyb0rayn80x3n7k515p1plqmmrnq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-levy texlive-metafont))
+    (home-page "https://ctan.org/pkg/yannisgr")
+    (synopsis "Greek fonts by Yannis Haralambous")
+    (description
+     "This package provides a family of 7-bit fonts with a code table designed
+for setting modern polytonic Greek.  The fonts are provided as Metafont
+source; macros to produce a Greek variant of Plain TeX (including
+a hyphenation table adapted to the fonts code table) are provided.")
+    (license license:gpl2)))
+
+(define-public texlive-zhlineskip
+  (package
+    (name "texlive-zhlineskip")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zhlineskip/"
+                   "tex/latex/zhlineskip/")
+             (base32
+              "070vi0pra74in55r0pq2k35s3x3xk6gjwvnsif7bnx4k7wn39mal")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zhlineskip")
+    (synopsis "Line spacing for CJK documents")
+    (description
+     "This package supports typesetting CJK documents.  It allows users to
+specify the two ratios between the leading and the font size of the body text
+and the footnote text.  For CJK typesetting, these ratios usually range from
+1.5 to 1.67.  This package is also capable of restoring the math leading to
+that of the Latin text (usually 1.2 times the font size).")
+    (license license:lppl1.3c)))
+
+(define-public texlive-zhlipsum
+  (package
+    (name "texlive-zhlipsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zhlipsum/"
+                   "source/latex/zhlipsum/"
+                   "tex/latex/zhlipsum/")
+             (base32
+              "1lhc3a8l5sizyw0v1cfsrwwwymmyab1yvx99iqhdh7avrzmi2gda")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-ctex))
+    (home-page "https://ctan.org/pkg/zhlipsum")
+    (synopsis "Chinese dummy text")
+    (description
+     "This package provides an interface to dummy text in Chinese language,
+which will be useful for testing Chinese documents.  UTF-8, GBK and Big5
+encodings are supported.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-zztex
   (package
     (name "texlive-zztex")
@@ -9671,6 +18460,48 @@ test file that is intended to be sent to the LaTeX bug database as part of
 a bug report.")
     (license license:lppl1.3c)))
 
+(define-public texlive-lcyw
+  (package
+    (name "texlive-lcyw")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lcyw/" "source/latex/lcyw/"
+                   "tex/latex/lcyw/")
+             (base32
+              "1yijk9l2ls6sq45ifx6m9d7xxk0ysrnn1y3fjz8wxwgwxp88x9fh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lcyw")
+    (synopsis "Make classic Cyrillic CM fonts accessible in LaTeX")
+    (description
+     "The package makes the classic CM Cyrillic fonts accessible for use with
+LaTeX.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-lhcyr
+  (package
+    (name "texlive-lhcyr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "source/latex/lhcyr/" "tex/latex/lhcyr/")
+             (base32
+              "09cg2hs5g20axbfpv2k6df5pi3xm0aywcswhnknllykr6z0ip2zw")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lhcyr")
+    (synopsis "Non-standard Cyrillic input scheme")
+    (description
+     "This package provides a collection of three LaTeX2e styles intended for
+typesetting Russian and bilingual English-Russian documents, using the
+@code{lh} fonts and without the benefit of Babel's language-switching
+mechanisms.  The packages (@code{hcyralt} and @code{hcyrwin} for use under
+emTeX, and @code{hcyrkoi} for use under teTeX} provide mappings between the
+input encoding and the font encoding, which is described as OT1.  The way this
+is done does not match the way @code{inputenc} would do the job, for output
+via fontenc to one of the T2 series of font encodings.")
+    (license license:knuth)))
+
 (define-public texlive-luafindfont
   (package
     (name "texlive-luafindfont")
@@ -9924,6 +18755,24 @@ from Adobe's basic set.")
 documentation from TeX files.  It is part of the LaTeX base.")
     (license license:lppl1.3+)))
 
+(define-public texlive-undergradmath
+  (package
+    (name "texlive-undergradmath")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/undergradmath/")
+             (base32
+              "1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/undergradmath")
+    (synopsis "LaTeX Math for undergraduates cheat sheet")
+    (description
+     "This is a cheat sheet for writing mathematics with LaTeX.  It is aimed
+at US undergraduates.")
+    (license license:cc-by-sa4.0)))
+
 (define-public texlive-underscore
   (package
     (name "texlive-underscore")
@@ -10320,6 +19169,23 @@ this is to print on (notional) small paper, and then to magnify the result;
 the script calculates the settings for various font and paper sizes.")
     (license license:asl2.0)))
 
+(define-public texlive-latex-via-exemplos
+  (package
+    (name "texlive-latex-via-exemplos")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-via-exemplos/")
+             (base32
+              "1w0rqhgdkflxypfmxyz61aknmjil9yikc641v2dmc5l55gl2r3nw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-via-exemplos")
+    (synopsis "LaTeX course written in Brazilian Portuguese language")
+    (description
+     "This is a LaTeX2e course written in Brazilian Portuguese language.")
+    (license license:gpl2+)))
+
 (define-public texlive-latex2man
   (package
     (name "texlive-latex2man")
@@ -10719,6 +19585,71 @@ process.  It also provides a library which can be used to create customized
 conversion tools.")
     (license license:lppl1.3+)))
 
+(define-public texlive-makecell
+  (package
+    (name "texlive-makecell")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/makecell/"
+                   "source/latex/makecell/"
+                   "tex/latex/makecell/")
+             (base32
+              "1n122230s49jizldn8ps1pfa5dsg8wmh5x8wla4y6rsgjcccqn4s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:tex-format "latex"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'replace-obsolete-package
+            ;; "slashbox" is no longer provided in TeX Live.  It is superseded
+            ;; by `diagbox', which is backward compatible.
+            (lambda _
+              (substitute* "source/latex/makecell/makecell.dtx"
+                (("\\\\usepackage\\{slashbox\\}")
+                 "\\usepackage{diagbox}"))))
+          (add-after 'replace-obsolete-package 'load-float
+            ;; Loading `float' package prevents the "Unknown float option `H'"
+            ;; error.
+            (lambda _
+              (substitute* "source/latex/makecell/makecell.dtx"
+                (("usepackage\\{diagbox\\}.*" line)
+                 (string-append line "\\usepackage{float}\n")))))
+          (add-after 'load-float 'remove-hsize-reference
+            ;; Replace "\hsize" primitive with a dummy value to prevent
+            ;; a "missing number treated as zero" error.
+            (lambda _
+              (substitute* "source/latex/makecell/makecell.dtx"
+                (("\\\\ttabbox\\[\\\\hsize\\]") "\\ttabbox[10cm]")))))))
+    (native-inputs
+     (list (texlive-updmap.cfg
+            (list texlive-diagbox
+                  texlive-float
+                  texlive-hypdoc
+                  texlive-multirow
+                  texlive-pict2e))))
+    (home-page "https://ctan.org/pkg/makecell")
+    (synopsis "Tabular column heads and multilined cells")
+    (description
+     "This package supports common layouts for tabular column heads in whole
+documents, based on one-column tabular environment.  In addition, it can
+create multi-lined tabular cells.
+
+The package also offers:
+@itemize
+@item a macro which changes the vertical space around all the cells in a @code{tabular}
+environment,
+@item macros for multirow cells, which use the facilities
+of the @code{multirow} package,
+@item macros to number rows in tables, or to skip cells;
+@item diagonally divided cells;
+@item horizontal lines in @code{tabular} environments with defined thickness.
+@end itemize")
+    (license license:lppl)))
+
+
 (define-public texlive-optexcount
   (package
     (name "texlive-optexcount")
@@ -11628,6 +20559,59 @@ mathematical fonts in a range of styles, based on Monotype Modern 8A.")
 
 (define-deprecated-package texlive-fonts-cm texlive-cm)
 
+(define-public texlive-cmbright
+  (package
+    (name "texlive-cmbright")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cmbright/"
+                   "doc/latex/cmbright/"
+                   "fonts/source/public/cmbright/"
+                   "fonts/tfm/public/cmbright/"
+                   "source/latex/cmbright/"
+                   "tex/latex/cmbright/")
+             (base32
+              "0sj6g877p6ak045x7737g3lg4kab8hgc2s2g6i23dw9d35csqf8d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-amsfonts texlive-ec texlive-metafont))
+    (home-page "https://ctan.org/pkg/cmbright")
+    (synopsis "Computer Modern Bright fonts")
+    (description
+     "This package provides a family of sans serif fonts for TeX and LaTeX,
+based on Donald Knuth's CM fonts.  It comprises OT1, T1 and TS1 encoded text
+fonts of various shapes as well as all the fonts necessary for mathematical
+typesetting, including AMS symbols.  This collection provides all the
+necessary files for using the fonts with LaTeX.")
+    (license license:lppl)))
+
+(define-public texlive-cmcyr
+  (package
+    (name "texlive-cmcyr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cmcyr/"
+                   "fonts/map/dvips/cmcyr/"
+                   "fonts/source/public/cmcyr/"
+                   "fonts/tfm/public/cmcyr/"
+                   "fonts/type1/public/cmcyr/"
+                   "fonts/vf/public/cmcyr/")
+             (base32
+              "0mmlb3ky6cakwg8nsgkdkpc52ni2jf2w7nz5bfiyxhvy6mx1c64b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/cmcyr")
+    (synopsis "Computer Modern fonts with Cyrillic extensions")
+    (description
+     "These are the Computer Modern fonts extended with Russian letters, in
+Metafont sources and ATM Compatible Type 1 format.  The fonts are provided in
+KOI-7, but virtual fonts are available to recode them to three other Russian
+8-bit encodings.")
+    (license license:public-domain)))
+
 (define-public texlive-cmextra
   (package
     (name "texlive-cmextra")
@@ -11714,6 +20698,61 @@ originals.")
 
 (define-deprecated-package texlive-fonts-cm-super texlive-cm-super)
 
+(define-public texlive-cnbwp
+  (package
+    (name "texlive-cnbwp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/cnbwp/" "doc/latex/cnbwp/"
+                   "makeindex/cnbwp/" "tex/latex/cnbwp/")
+             (base32
+              "13i5nvdnvq5f7rx0w63q8j1km7bfq1rs7kr49hsabz5v0z0v90xc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cnbwp")
+    (synopsis "Typeset working papers of the Czech National Bank")
+    (description
+     "The package supports proper formatting of Working Papers of the Czech
+National Bank (WP CNB).  The package was developed for CNB but it is also
+intended for authors from outside CNB.")
+    (license license:lppl)))
+
+(define-public texlive-cns
+  (package
+    (name "texlive-cns")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cns/cns40-1/"
+                   "doc/fonts/cns/cns40-2/"
+                   "doc/fonts/cns/cns40-3/"
+                   "doc/fonts/cns/cns40-4/"
+                   "doc/fonts/cns/cns40-5/"
+                   "doc/fonts/cns/cns40-6/"
+                   "doc/fonts/cns/cns40-7/"
+                   "doc/fonts/cns/cns40-b5/"
+                   "fonts/misc/cns/"
+                   "fonts/tfm/cns/c0so12/"
+                   "fonts/tfm/cns/c1so12/"
+                   "fonts/tfm/cns/c2so12/"
+                   "fonts/tfm/cns/c3so12/"
+                   "fonts/tfm/cns/c4so12/"
+                   "fonts/tfm/cns/c5so12/"
+                   "fonts/tfm/cns/c6so12/"
+                   "fonts/tfm/cns/c7so12/")
+             (base32
+              "00v6sf0a0fm09z54d3zhvdwc2gi712knbxnx3mlj2ri5x2jisyqa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cjk-fonts")
+    (synopsis "Chinese/Japanese/Korean bitmap fonts")
+    (description
+     "This bundle provides fonts to go with the @code{cjk} macro package for Chinese,
+Japanese and Korean with LaTeX2e.  The package aims to supersede HLaTeX fonts
+bundle.")
+    (license license:public-domain)))
+
 (define-public texlive-courier
   (package
     (name "texlive-courier")
@@ -11742,6 +20781,95 @@ Adobe's basic set.")
     ;; No license version specified.
     (license license:gpl3+)))
 
+(define-public texlive-csbulletin
+  (package
+    (name "texlive-csbulletin")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/csbulletin/"
+                   "tex/latex/csbulletin/")
+             (base32
+              "15zjwwjdxs0avb5y4g29nyvhafrv2s8pgqihhi2kb72y8wzj9cdz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/csbulletin")
+    (synopsis
+     "LaTeX class for articles submitted to the CSTUG Bulletin (@emph{Zpravodaj})")
+    (description
+     "The package provides the class for articles for the CSTUG
+Bulletin (@emph{Zpravodaj Ceskoslovenskeho sdruzeni uzivatelu TeXu}).  You can
+see the structure of a document by looking at the source file of the manual.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-cslatex
+  (package
+    (name "texlive-cslatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/cslatex.1"
+                   "doc/man/man1/cslatex.man1.pdf"
+                   "doc/man/man1/pdfcslatex.1"
+                   "doc/man/man1/pdfcslatex.man1.pdf"
+                   "source/cslatex/base/"
+                   "source/cslatex/cspsfonts/"
+                   "tex/cslatex/base/"
+                   "tex/cslatex/cspsfonts/")
+             (base32
+              "1px1b4zicvdzs5br22c8ksna7imb9m7bv9c3q55a705cqfawd97h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:create-formats #~(list "cslatex" "pdfcslatex")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-build
+            ;; This phase is necessary because the build phase is reluctant to
+            ;; generate "hyphen.cfg" since there is another one among the
+            ;; inputs already.
+            (lambda _
+              (substitute* "source/cslatex/base/cslatex.ins"
+                (("\\keepsilent\n" all)
+                 (string-append all "\\askforoverwritefalse\n"))))))))
+    (propagated-inputs
+     (list texlive-atbegshi
+           texlive-atveryend
+           texlive-cm
+           texlive-csplain
+           texlive-everyshi
+           texlive-firstaid
+           texlive-hyphen-base
+           texlive-l3kernel
+           texlive-l3packages
+           texlive-latex
+           texlive-latex-fonts
+           texlive-tex-ini-files
+           texlive-unicode-data))
+    (home-page "https://ctan.org/pkg/cslatex")
+    (synopsis "LaTeX support for Czech/Slovak typesetting")
+    (description
+     "This package provides LaTeX support for Czech and Slovak typesetting.")
+    (license license:gpl3+)))
+
+(define-public texlive-cstex
+  (package
+    (name "texlive-cstex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/cstex/")
+             (base32
+              "1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cstex")
+    (synopsis "Support for Czech/Slovak languages")
+    (description
+     "CSTeX is a Czech and Slovak languages distribution of Plain and LaTeX.")
+    (license license:gpl2)))
+
 (define-public texlive-cweb
   (package
     (name "texlive-cweb")
@@ -11776,6 +20904,32 @@ for German, French (partially), and Italian program documentation on any
 machine.")
     (license license:knuth)))
 
+(define-public texlive-cyrplain
+  (package
+    (name "texlive-cyrplain")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "tex/plain/cyrplain/")
+             (base32
+              "1wdcibxs0g53warxs6vz39s3chldzh05p7v1ksskppghg5qzgh8z")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/t2")
+    (synopsis "Support for using T2 encoding")
+    (description
+     "The T2 bundle provides a variety of separate support functions for using
+Cyrillic characters in LaTeX:
+@itemize
+@item the @code{mathtext} package, for using Cyrillic letters transparently in
+formulae;
+@item the @code{citehack} package, for using Cyrillic (or indeed any
+non-ASCII) characters in citation keys;
+@item support for Cyrillic in BibTeX;
+@item support for Cyrillic in Makeindex;
+@item various items of font support.
+@end itemize")
+    (license license:lppl)))
+
 (define-public texlive-tex-gyre
   (package
     (name "texlive-tex-gyre")
@@ -12104,6 +21258,59 @@ can interact with LaTeX.mk so that the latter automatically invokes
 @end itemize")
     (license license:gpl3+)))
 
+(define-public texlive-latex-mr
+  (package
+    (name "texlive-latex-mr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-mr/")
+             (base32
+              "1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-mr")
+    (synopsis
+     "Practical guide to LaTeX and Polyglossia for Marathi and other Indian
+languages")
+    (description
+     "This document aims to introduce LaTeX and Polyglossia for Indian languages.
+Though the document often discusses the language Marathi, the discussion
+applies to other India languages also.  We assume that the user of this
+document knows basic (La)TeX or has, at least, tried her hand on it.  This
+document is not very suitable for first time users.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-latexbangla
+  (package
+    (name "texlive-latexbangla")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexbangla/"
+                   "tex/latex/latexbangla/")
+             (base32
+              "19h1axbfp1xclbhffdiczzqpr4lk2jw8kkz4qqh8f2rnhjxd94vw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexbangla")
+    (synopsis "Enhanced LaTeX integration for Bangla")
+    (description
+     "This package simplifies the process of writing Bangla in LaTeX and
+addresses most of the associated typesetting issues.  Its notable features
+are:
+
+@itemize
+@item automated transition from Bangla to English and vice versa;
+@item patch for the unproportionate whitespace issue in popular Bangla fonts;
+@item full support for all the common commands and environments;
+@item Bangla numbering for page, section, chapter, footnotes, extending
+Polyglossia's support.
+@item new @code{theorem}, @code{problems}, @code{example}, @code{solution} and
+other environments, all of which are in Bangla.
+@end itemize")
+    (license license:lppl1.3+)))
+
 (define-public texlive-liftarm
   (package
     (name "texlive-liftarm")
@@ -12598,6 +21805,45 @@ LaTeX user to easily create complex commutative diagrams, by placing formula
 nodes on a conceptual grid and attaching arrows to them.")
     (license license:gpl2+)))
 
+(define-public texlive-pbibtex-base
+  (package
+    (name "texlive-pbibtex-base")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/ptex/pbibtex/" "pbibtex/bib/"
+                   "pbibtex/bst/")
+             (base32
+              "06glwwv1rw4n5cpg6cs70yzgyix65nhfsakyq72sn82yss1gvf8z")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pbibtex-base")
+    (synopsis "Bibliography styles and miscellaneous files for pBibTeX")
+    (description
+     "These are miscellaneous files, including bibliography
+styles (@file{.bst}), for pBibTeX, which is a Japanese extended version of
+BibTeX contained in TeX Live.")
+    (license license:bsd-3)))
+
+(define-public texlive-pbibtex-manual
+  (package
+    (name "texlive-pbibtex-manual")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pbibtex-manual/")
+             (base32
+              "030rhhb4xcijvjc0x1ylyk6xz5mn90wrlp5ss4yr6qlpzmq21b50")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pbibtex-manual")
+    (synopsis "Documentation files for (u)pBibTeX")
+    (description
+     "The bundle contains documentation files for Japanese pBibTeX and
+upBibTeX.  For historical reasons, this also contains old documentation files
+for JBibTeX.")
+    (license license:bsd-3)))
+
 (define-public texlive-penrose
   (package
     (name "texlive-penrose")
@@ -12916,6 +22162,27 @@ same way that @code{kvoptions} adds the same facility to the LaTeX standard
 PGF/TikZ.")
     (license license:lppl1.3+)))
 
+(define-public texlive-pgfornament-han
+  (package
+    (name "texlive-pgfornament-han")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pgfornament-han/"
+                   "tex/latex/pgfornament-han/")
+             (base32
+              "17h71dbzj7a381gv3zn1pr1g2376mwwg8l9mk3y97wiv9m9afhxn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pgfornament-han")
+    (synopsis "Library for Chinese traditional motifs and patterns")
+    (description
+     "This package provides a @code{pgfornament} library for Chinese
+traditional motifs and patterns.  The command @code{\\pgfornamenthan} takes
+the same options as @code{\\pgfornament} from the @code{pgfornament} package,
+but renders Chinese traditional motifs instead.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-pgfplots
   (package
     (name "texlive-pgfplots")
@@ -13010,6 +22277,25 @@ modifies @code{\\plot} to use a rule instead of dots if the line segment is
 horizontal or vertical.")
     (license license:lppl)))
 
+(define-public texlive-pictexsum
+  (package
+    (name "texlive-pictexsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pictexsum/")
+             (base32
+              "00yd0945qiss5jizkxncg8a9bdsld7mkhaipi92bbn1ghqicsw5a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pictexsum")
+    (synopsis "Summary of PicTeX commands")
+    (description
+     "The document summarises the commands of PicTeX.  While it is no
+substitute for the PicTeX manual itself, the document is a useful aide-memoire
+for those who have read the manual.")
+    (license license:bsd-2)))
+
 (define-public texlive-pinlabel
   (package
     (name "texlive-pinlabel")
@@ -13068,6 +22354,26 @@ using TikZ.")
 arts.")
     (license license:lppl1.3c)))
 
+(define-public texlive-plain-doc
+  (package
+    (name "texlive-plain-doc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/plain-doc/")
+             (base32
+              "062d6hg4npy57307avvyd2sdxnmyrh5ia2rdb17p6cx555k8zxwq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/csname-doc")
+    (synopsis "List of Plain TeX control sequence names")
+    (description
+     "The document constitutes a list of every control sequence
+name (@dfn{csname}) described in the TeXbook, together with an indication of
+whether the csname is a primitive TeX command, or is defined in
+@file{plain.tex}.")
+    (license license:public-domain)))
+
 (define-public texlive-pmgraph
   (package
     (name "texlive-pmgraph")
@@ -13371,6 +22677,26 @@ duck) showcasing the use of characters from the Mario video games by Nintendo
 in LaTeX.")
     (license license:lppl1.3c)))
 
+(define-public texlive-pxtatescale
+  (package
+    (name "texlive-pxtatescale")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pxtatescale/"
+                   "tex/latex/pxtatescale/")
+             (base32
+              "1f9xm6nc9h6r2n5rsz6iw4m1x8r13anisv08j5hkidcyvj6n2s6n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pxtatescale")
+    (synopsis
+     "Patch to graphics driver for scaling in vertical direction of pTeX")
+    (description
+     "This package patches graphics driver @code{dvipdfmx} to support correct
+scaling in vertical direction of Japanese pTeX and upTeX.")
+    (license license:expat)))
+
 (define-public texlive-qcircuit
   (package
     (name "texlive-qcircuit")
@@ -13408,6 +22734,126 @@ designed to help users generate circuits.")
 drawing quantum circuit diagrams.")
     (license license:cc-by4.0)))
 
+(define-public texlive-quran
+  (package
+    (name "texlive-quran")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/quran/" "tex/latex/quran/")
+             (base32
+              "0y5znkwaw5qy2541p10pqqvbblzn0v088c7v8p5lc2za6lh83fj2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/quran")
+    (synopsis "Easy way to typeset any part of the @emph{Holy Quran}")
+    (description
+     "This package offers the user an easy way to typeset the @emph{Holy
+Quran}.  It provides several macros for typesetting the whole or any part of
+the Quran based on its popular division, including @emph{Surah}, @emph{Ayah},
+@emph{Juz}, @emph{Hizb}, @emph{Quarter}, and @emph{Page}.  Besides the Arabic
+original, translations to English, German, French, and Persian are provided,
+as well as an English transliteration.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-quran-bn
+  (package
+    (name "texlive-quran-bn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/quran-bn/" "tex/latex/quran-bn/")
+             (base32
+              "1zlm02drh9qfasxf0bwhvrmp521ixzys2aqq896339grkzay0g6q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/quran-bn")
+    (synopsis "Bengali translations to the @code{quran} package")
+    (description
+     "The package is prepared for typesetting some Bengali translations of the
+Holy Quran.  It adds two Bengali translations to the @code{quran} package.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-quran-de
+  (package
+    (name "texlive-quran-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/quran-de/"
+                   "tex/xelatex/quran-de/")
+             (base32
+              "06syk1ifxcy8wxfxgnrh6d3hpx4bdprxgkc9jicaaca6j6m3rm65")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/quran-de")
+    (synopsis "German translations to the @code{quran} package")
+    (description
+     "The package is prepared for typesetting some German translations of the
+Holy Quran.  It adds three more German translations to the @code{quran}
+package.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-quran-ur
+  (package
+    (name "texlive-quran-ur")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/quran-ur/" "tex/latex/quran-ur/")
+             (base32
+              "0lsp4ldbi1cl044ah5x2br1krglw6qn92rx8h7hkfdr85byzyk25")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/quran-ur")
+    (synopsis "Urdu translations to the @code{quran} package")
+    (description
+     "The package is prepared for typesetting some Urdu translations of the
+Holy Quran.  It adds eight Urdu translations to the @code{quran} package.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-qyxf-book
+  (package
+    (name "texlive-qyxf-book")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/qyxf-book/"
+                   "tex/latex/qyxf-book/")
+             (base32
+              "0sgjdfpmwjqh40sbanj772bwimbf3az7wah65hxaz5198xd67m1y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/qyxf-book")
+    (synopsis "Book Template for Qian Yuan Xue Fu")
+    (description
+     "@code{qyxf-book} is a LaTeX document class (template) developed by Qian
+Yuan Xue Fu (QYXF), a student club of Xi'an Jiaotong University (XJTU).  It
+creates a minimalistic document style, and several color schemes are offered.
+Currently the template is only designed for Chinese typesetting.")
+    (license license:expat)))
+
+(define-public texlive-r-und-s
+  (package
+    (name "texlive-r-und-s")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/r_und_s/" "tex/latex/r_und_s/")
+             (base32
+              "15w8sggvlh28567y1d4vpbq8and12hvhphfvd7vabbn8g1l6h1yi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/r-und-s")
+    (synopsis "Chemical hazard codes")
+    (description
+     "The @code{r-und-s} package decodes the german R- und S-Satze, which are
+numerically coded security advice for chemical substances into plain text.
+This is, e.g., used to compose security sheets or lab protocols and especially
+useful for students of chemistry.  There are four packages, giving texts in
+German, English, French and Dutch.")
+    (license license:bsd-2)))
+
 (define-public texlive-randbild
   (package
     (name "texlive-randbild")
@@ -13526,6 +22972,29 @@ steps can be customized in various ways.")
 example to be used in educational material.")
     (license license:lppl1.3+)))
 
+(define-public texlive-rojud
+  (package
+    (name "texlive-rojud")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/rojud/" "fonts/map/dvips/rojud/"
+                   "fonts/tfm/public/rojud/"
+                   "fonts/type1/public/rojud/"
+                   "tex/latex/rojud/")
+             (base32
+              "0vq5m755wa5j9y072gmyf7pl7cisxh029b5j8rm46kqllfpaz4zj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/rojud")
+    (synopsis "Font with the images of the counties of Romania")
+    (description
+     "This package provides a Type 1 font with images of the 42 counties of Romania,
+constructed using a general method which is described in detail in the
+documentation.  The package name is an abbreviation of @emph{judetele
+Romaniei} (i.e., counties of Romania).")
+    (license license:lppl)))
+
 (define-public texlive-rviewport
   (package
     (name "texlive-rviewport")
@@ -13610,6 +23079,27 @@ model of psychological experience.  These symbols are prepared using TikZ.")
 using TikZ.")
     (license license:lppl)))
 
+(define-public texlive-schulmathematik
+  (package
+    (name "texlive-schulmathematik")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/schulmathematik/"
+                   "tex/latex/schulmathematik/")
+             (base32
+              "1lgsn7my9v2jks553c25wcagaqvxzmzjsijwkilys697c936dv57")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/schulmathematik")
+    (synopsis
+     "Commands and document classes for German-speaking teachers of
+mathematics and physics")
+    (description
+     "The @code{schulmathematik} bundle provides two LaTeX packages and six
+document classes for German-speaking teachers of mathematics and physics.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-scratch
   (package
     (name "texlive-scratch")
@@ -13683,6 +23173,24 @@ display many variants of snowman")
     (description "The package will typeset cards for use in a game of Set.")
     (license license:gpl3)))
 
+(define-public texlive-sexam
+  (package
+    (name "texlive-sexam")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/sexam/" "tex/xelatex/sexam/")
+             (base32
+              "0bwzxm8xj7p930rgxh6j6rzb7r26i0w61ixy74wkqwmvb3951rf6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/sexam")
+    (synopsis "Typeset Arabic exam scripts")
+    (description
+     "The package provides a modified version of the @code{exam} package made
+compatible with XeLaTeX and Polyglossia to typeset Arabic exams.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-signchart
   (package
     (name "texlive-signchart")
@@ -13746,6 +23254,25 @@ popular Java script Bootstrap.")
 mirrors for use in optical diagrams.")
     (license license:lppl1.3c)))
 
+(define-public texlive-simurgh
+  (package
+    (name "texlive-simurgh")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/lualatex/simurgh/"
+                   "tex/lualatex/simurgh/")
+             (base32
+              "11256ssaq6hw6c93ldfgyp0gagv69hl54yg1c8wl5wkc0mrh42rb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/simurgh")
+    (synopsis "Typeset Parsi in LuaLaTeX")
+    (description
+     "The package provides an automatic and unified interface for Parsi
+typesetting in LaTeX, using the LuaTeX engine.")
+    (license license:gpl2)))
+
 (define-public texlive-smartdiagram
   (package
     (name "texlive-smartdiagram")
@@ -13835,6 +23362,26 @@ possible what is going wrong.")
 partitions, permutations, braids, etc.")
     (license license:lppl1.3+)))
 
+(define-public texlive-swebib
+  (package
+    (name "texlive-swebib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/swebib/" "doc/latex/swebib/")
+             (base32
+              "0bw7ls5gbi31gr9h4mqv2blva1skqymprp350n9wm086kgyv4s8h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/swebib")
+    (synopsis "Swedish bibliography styles")
+    (description
+     "The bundle contains Swedish versions of the standard bibliography
+styles, and of the style @code{plainnat}.  The styles should be functionally
+equivalent to the corresponding original styles, apart from the Swedish
+translations.  The styles do not implement Swedish collation.")
+    (license license:lppl1.2+)))
+
 (define-public texlive-swimgraf
   (package
     (name "texlive-swimgraf")
@@ -13937,6 +23484,82 @@ and -editable format;
 a function and a convexity table of its graph.")
     (license license:lppl1.3+)))
 
+(define-public texlive-templates-fenn
+  (package
+    (name "texlive-templates-fenn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/templates-fenn/")
+             (base32
+              "1s91swqsysva49cjrb9khgik5mvhxcb3wr2wz4l2683gdgxlbgkf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/templates-fenn")
+    (synopsis "Templates for TeX usage")
+    (description
+     "This package provides a set of templates for using LaTeX packages that
+the author uses, comprising:
+
+@itemize
+@item @file{scrlttr2.tex}: a letter, written with @code{scrlttr2.cls} from the
+KOMA-Script bundl,
+@item @file{dinbrief.tex}: a letter according to the German
+(DIN) standards, written with @file{dinbrief.cls},
+@item @file{kbrief.tex}: a brief memo (@emph{Kurzbrief}) to accompany
+enclosures, as used in German offices, again based on @code{dinbrief},
+@item @file{vermerk.tex}: a general form for taking down notes on events in
+the office,
+@item @file{diabetes.tex}: a diary for the basis-bolus insulin therapy of
+diabetes mellitus, using @file{scrartcl.cls} from the KOMA-Script bundle.
+@end itemize")
+    (license license:lppl)))
+
+(define-public texlive-templates-sommer
+  (package
+    (name "texlive-templates-sommer")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/templates-sommer/")
+             (base32
+              "0z75xhawsmcxv4f24cqcvfi0r22gavjpg4si6nwrgc8sg82x24m6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/templates-sommer")
+    (synopsis "Templates for TeX usage")
+    (description
+     "This package provides a set of templates for using LaTeX packages that the
+author uses, comprising:
+
+@itemize
+@item @file{hausarbeit.tex}: for students of the Lehrstuhl Volkskunde an der
+Friedrich-Schiller-Universitat Jena,
+@item @file{psycho-Dipl.tex}: for diploma theses in psychology.
+@end itemize")
+    (license license:lppl)))
+
+(define-public texlive-termcal-de
+  (package
+    (name "texlive-termcal-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/termcal-de/"
+                   "source/latex/termcal-de/"
+                   "tex/latex/termcal-de/")
+             (base32
+              "0av913y88vfv0yb68xx1lrqpxd8hwx8x7zzb1qcb2d9r5ry1l8z7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/termcal-de")
+    (synopsis "German localization for @code{termcal}")
+    (description
+     "This package provides a German localization to the @code{termcal}
+package written by Bill Mitchell, which is intended to print a term calendar
+for use in planning a class.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-tex4ht
   (package
     (name "texlive-tex4ht")
@@ -14328,6 +23951,28 @@ no file is specified), filters out less relevant messages, and displays
 a summary report.")
     (license license:gpl3+)))
 
+(define-public texlive-texnegar
+  (package
+    (name "texlive-texnegar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/texnegar/"
+                   "source/latex/texnegar/"
+                   "tex/latex/texnegar/")
+             (base32
+              "0rza5bmn7cm85aznnffpmfv6b8776jxkpfwhs0y04f83sdjapw63")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/texnegar")
+    (synopsis "Kashida justification in XeLaTeX and LuaLaTeX")
+    (description
+     "In some cursive scripts such as Persian or Arabic, kashida is used to
+create justification.  In this type of justification characters are elongated
+rather than expanding spaces between words.  This package extends the kashida
+justification to be used with the LuaTeX engine.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-texosquery
   (package
     (name "texlive-texosquery")
@@ -14402,6 +24047,38 @@ application is powerful enough to generate any text-based structure, given
 that a corresponding template exists.")
     (license license:bsd-3)))
 
+(define-public texlive-texproposal
+  (package
+    (name "texlive-texproposal")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/texproposal/")
+             (base32
+              "1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/texproposal")
+    (synopsis "Proposal prototype for LaTeX promotion in Chinese universities")
+    (description
+     "This package contains the original source code and necessary attachment
+of the document @emph{Proposal for Offering TeX Courses and Relevant Resources
+in Chongqing University}.  This proposal could be helpful if one is
+considering to suggest their (Chinese) university or company to use TeX (or
+LaTeX, or XeLaTeX} as a typesetting system.
+
+The present proposal mainly explains the importance and necessity of
+introducing TeX, a typesetting system often used in academic writing, to
+students and teachers.  This proposal starts from a brief introduction of TeX,
+then steps further into its fascinating application to academic writing and
+dissertation formatting.  Finally, a set of possible implementation strategies
+with regard to the proper introduction of TeX and relevant resources to our
+university, is proposed.")
+    ;; The content of the project itself is released under CC-BY 4.0 terms,
+    ;; but the underlying code used to format and display that content is
+    ;; licensed under the Expat license.
+    (license (list license:cc-by4.0 license:expat))))
+
 (define-public texlive-texware
   (package
     (name "texlive-texware")
@@ -15911,6 +25588,27 @@ cobordisms between circles, such as those used in TQFT and other mathematical
 diagrams.")
     (license license:lppl1.3+)))
 
+(define-public texlive-tram
+  (package
+    (name "texlive-tram")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tram/"
+                   "fonts/source/public/tram/"
+                   "tex/latex/tram/")
+             (base32
+              "1b26615dd1qs12vl9d82xcxlc718s5jgirzygss9g7m908w2hqch")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tram")
+    (synopsis "Typeset tram boxes in LaTeX")
+    (description
+     "Tram boxes are highlighted with patterns of dots; the package defines an
+environment @code{tram} that typesets its content into a tram box.  The
+pattern used may be selected in an optional argument to the environment.")
+    (license license:lppl)))
+
 (define-public texlive-tsemlines
   (package
     (name "texlive-tsemlines")
@@ -16062,6 +25760,24 @@ Zhuyin) for Chinese Han scripts (Hanzi ideographs).
 @end itemize")
     (license license:bsd-3)))
 
+(define-public texlive-utf8mex
+  (package
+    (name "texlive-utf8mex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/mex/utf8mex/" "tex/mex/utf8mex/")
+             (base32
+              "13013asha1v6vk743hxk4naciiham0cpar6jw0ndlh7mbmyll2y8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/utf8mex")
+    (synopsis "Tools to produce formats that read Polish language input")
+    (description
+     "The bundle provides files for building formats to read input in Polish
+encodings.")
+    (license license:public-domain)))
+
 (define-public texlive-utfsym
   (package
     (name "texlive-utfsym")
@@ -16100,6 +25816,46 @@ able to use them originally in a school setting such as on worksheets.")
 diagrams for lectures or assignment sheets.")
     (license license:lppl)))
 
+(define-public texlive-visualfaq
+  (package
+    (name "texlive-visualfaq")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/visualfaq/")
+             (base32
+              "0fjx5y95n8bhsnwsw34sazbgygznvw76z01rrxmn1bp8za7751n0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/visualfaq")
+    (synopsis "Visual LaTeX FAQ")
+    (description
+     "Having trouble finding the answer to a LaTeX question?  The @emph{Visual
+LaTeX FAQ} is a search interface that presents over a hundred typeset samples
+of frequently requested document formatting.  Simply click on a hyperlinked
+piece of text and the @emph{Visual LaTeX FAQ} will send your web browser to
+the appropriate page in the TeX FAQ.")
+    (license license:lppl)))
+
+(define-public texlive-visualfaq-fr
+  (package
+    (name "texlive-visualfaq-fr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/visualfaq-fr/")
+             (base32
+              "0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/visualfaq-fr")
+    (synopsis "FAQ LaTeX visuelle francophone")
+    (description
+     "The Visual LaTeX FAQ is an innovative new search interface on LaTeX
+Frequently Asked Questions.  This version is a French translation, offering
+links to the French-speaking LaTeX FAQ.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-visualpstricks
   (package
     (name "texlive-visualpstricks")
@@ -16118,6 +25874,25 @@ diagrams for lectures or assignment sheets.")
 per command or per parameter.")
     (license license:gpl3+)))
 
+(define-public texlive-visualtikz
+  (package
+    (name "texlive-visualtikz")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/visualtikz/")
+             (base32
+              "1q0a1mhc330z8cnhghp2p46bxsmzz8cdba8hcvssglz0gsq5z5fc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/visualtikz")
+    (synopsis "Visual help for TikZ based on images with minimum text")
+    (description
+     "This package provides a visual help for TikZ based on images with
+minimum text: an image per command or parameter.  The document is in French,
+but will be translated into English later.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-web
   (package
     (name "texlive-web")
@@ -16184,6 +25959,48 @@ ordinary text, and as a picture element within a TikZ-picture.  The appearance
 of a flag (size, frame etc.)  can be adapted using optional parameters.")
     (license license:lppl1.3+)))
 
+(define-public texlive-xepersian
+  (package
+    (name "texlive-xepersian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/xepersian/"
+                   "fonts/misc/xetex/fontmapping/xepersian/"
+                   "source/xelatex/xepersian/"
+                   "tex/xelatex/xepersian/")
+             (base32
+              "1h6nicajnvrrr72yixcdzcwdck82qa3zv2k2k6q5xprsf9sz8yly")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xepersian")
+    (synopsis "Persian for LaTeX, using XeTeX")
+    (description
+     "This package provides a convenient interface for typesetting Persian and
+English texts in LaTeX, using the XeTeX engine.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-xepersian-hm
+  (package
+    (name "texlive-xepersian-hm")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/xepersian-hm/"
+                   "source/xelatex/xepersian-hm/"
+                   "tex/xelatex/xepersian-hm/")
+             (base32
+              "0lq5bam9vx2phwphy2ig9hygsz4vvz4bx2c6f87my84kp8n3w25n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xepersian-hm")
+    (synopsis "Fixes kashida feature in XePersian package")
+    (description
+     "The kashida feature in XePersian has problems with some fonts such as
+the HM Series fonts and the XB Series fonts.  This package fixes these
+problems.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-xindex
   (package
     (name "texlive-xindex")
@@ -16295,6 +26112,27 @@ aesthetics and traditions of Arabic typesetting, and adapting it to the era of
 digital typesetting, in a publicly available form.")
     (license license:silofl1.1)))
 
+(define-public texlive-amiweb2c-guide
+  (package
+    (name "texlive-amiweb2c-guide")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amiweb2c-guide/")
+             (base32
+              "0cxwsx49p3c162ysv0ydyxdncfg8ij9sx2x7c4pvzb0yidvad01c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amiweb2c-guide")
+    (synopsis "How to install AmiWeb2c")
+    (description
+     "This is a guide for the installation of (La)TeX with the Amiga port of
+Web2C named AmiWeb2C in the version 2.1 on an emulated Amiga 4000 computer
+running Workbench 3.1.  Furthermore the installation of an ARexx server for
+calling LaTeX from an editor is described and some tips for the installation
+of new fonts are given.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-amsfonts
   (package
     (name "texlive-amsfonts")
@@ -16580,6 +26418,48 @@ and so on) while being, at the same time, seamlessly integrated within the
 rest of the mathematics produced by (AmS-)LaTeX.")
     (license license:lppl1.3+)))
 
+(define-public texlive-haranoaji
+  (package
+    (name "texlive-haranoaji")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/haranoaji/"
+                   "fonts/opentype/public/haranoaji/")
+             (base32
+              "06lkgiylh0vjxqm8i4dvygna0zb112dw5xxlh8r5hr5kf2805m99")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/haranoaji")
+    (synopsis "Harano Aji fonts")
+    (description
+     "Harano Aji fonts (Harano Aji Mincho and Harano Aji Gothic) are fonts
+obtained by replacing Adobe-Identity-0 (AI0) CIDs of Source Han fonts (Source
+Han Serif and Source Han Sans) with Adobe-Japan1 (AJ1) CIDs.  There are 14
+fonts, 7 weights each for Mincho and Gothic.")
+    (license license:silofl1.1)))
+
+(define-public texlive-haranoaji-extra
+  (package
+    (name "texlive-haranoaji-extra")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/haranoaji-extra/"
+                   "fonts/opentype/public/haranoaji-extra/")
+             (base32
+              "1zy3bv836rmpqimky7b2xgsmdh6xkkbnjiljraci2vnfgwl1q3pb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/haranoaji-extra")
+    (synopsis "Extra weights for Harano Aji fonts")
+    (description
+     "Harano Aji fonts (Harano Aji Mincho and Harano Aji Gothic) are fonts
+obtained by replacing Adobe-Identity-0 (AI0) CIDs of Source Han fonts (Source
+Han Serif and Source Han Sans) with Adobe-Japan1 (AJ1) CIDs.  This package
+provides extra weights for these fonts.")
+    (license license:silofl1.1)))
+
 (define-public texlive-hardwrap
   (package
     (name "texlive-hardwrap")
@@ -16651,6 +26531,28 @@ Adobe's basic set.")
     ;; No license version specified.
     (license license:gpl3+)))
 
+(define-public texlive-ieejtran
+  (package
+    (name "texlive-ieejtran")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/ieejtran/"
+                   "doc/bibtex/ieejtran/")
+             (base32
+              "01bcw45v6mbyb1gzykzk5ccwz70s6591994xrj84z9ljgzp06lyg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ieejtran")
+    (synopsis
+     "Unofficial bibliography style file for the Institute of Electrical
+Engineers of Japan")
+    (description
+     "This package provides an unofficial BibTeX style for authors of the
+Institute of Electrical Engineers of Japan (IEEJ) transactions journals and
+conferences.")
+    (license license:expat)))
+
 (define-public texlive-inputenx
   (package
     (name "texlive-inputenx")
@@ -17192,6 +27094,26 @@ verbatim source).")
 
 (define-deprecated-package texlive-latex-fancyvrb texlive-fancyvrb)
 
+(define-public texlive-fandol
+  (package
+    (name "texlive-fandol")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/fandol/"
+                   "fonts/opentype/public/fandol/")
+             (base32
+              "1lk91ypsvj2wkqsw8lklkqfsqimjyn0vzbwgqgs5h6kf61m6qsk5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fandol")
+    (synopsis "Four basic fonts for Chinese typesetting")
+    (description
+     "This package provides Fandol fonts designed for Chinese typesetting.
+The current version contains four styles: Song, Hei, Kai, Fang.  All fonts are
+in OpenType format.")
+    (license license:gpl3+)))
+
 (define-public texlive-gentium-tug
   (package
     (name "texlive-gentium-tug")
@@ -17416,6 +27338,51 @@ for the user.")
 
 (define-deprecated-package texlive-latex-hycolor texlive-hycolor)
 
+(define-public texlive-xcjk2uni
+  (package
+    (name "texlive-xcjk2uni")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xcjk2uni/"
+                   "source/latex/xcjk2uni/"
+                   "tex/latex/xcjk2uni/")
+             (base32
+              "1vjp47ngrirrvbnk4vnm5lbysj3qlbwxbfc1szc22gaikm52ggaq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'copy-ctxdocstrip.tex
+            ;; There's a circular dependency between this package (where
+            ;; `ctex' should be a native input) and `ctex' (where this package
+            ;; is a propagated input).  To work around this, install the
+            ;; specific "ctxdocstrip.tex" file from `ctex' in the build
+            ;; directory and set TEXINPUTS variable accordingly so the process
+            ;; can find it.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (install-file (search-input-file inputs
+                                               "tex/generic/ctex/ctxdocstrip.tex")
+                            "build/")
+              (setenv "TEXINPUTS" (string-append (getcwd) "/build:")))))))
+    (native-inputs
+     (list (texlive-origin
+            "ctxdocstrip.tex" (number->string %texlive-revision)
+            (list "tex/generic/ctex/ctxdocstrip.tex")
+            (base32
+             "154v2d6wfzhfg654nlh2apy9zr78d09rkimymyjqpxymkpbk8lli"))))
+    (home-page "https://ctan.org/pkg/xcjk2uni")
+    (synopsis "Convert CJK characters to Unicode, in pdfTeX")
+    (description
+     "The package provides commands to convert CJK characters to Unicode in
+non-UTF-8 encoding; it provides hooks to support hyperref in producing correct
+bookmarks.  The bundle also provides @code{/ToUnicode} mapping file(s) for
+a CJK subfont; these can be used with the cmap package, allowing searches of,
+and cut-and-paste operations on a PDF file generated by pdfTeX.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-xcolor
   (package
     (name "texlive-xcolor")
@@ -17469,6 +27436,25 @@ correctly; and define two extra commands: @code{\\vfrac} and
 @code{\\namedglyph}.")
     (license license:lppl1.3c)))
 
+(define-public texlive-xml2pmx
+  (package
+    (name "texlive-xml2pmx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/xml2pmx.1"
+                   "doc/man/man1/xml2pmx.man1.pdf")
+             (base32
+              "1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xml2pmx")
+    (synopsis "Convert MusicXML to PMX and MusiXTeX")
+    (description
+     "This program translates MusicXML files to input suitable for PMX and
+MusiXTeX processing.")
+    (license license:gpl3+)))
+
 (define-public texlive-xmltexconfig
   (package
     (name "texlive-xmltexconfig")
@@ -17537,6 +27523,104 @@ names, as well as character data, may use any characters allowed in XML, using
 UTF-8 or a suitable 8-bit encoding.")
     (license license:lppl1.0+)))        ;per xmltex/base/readme.txt
 
+(define-public texlive-xpiano
+  (package
+    (name "texlive-xpiano")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xpiano/" "source/latex/xpiano/"
+                   "tex/latex/xpiano/")
+             (base32
+              "1nk8v0d641cr4mg4l2k0fv7pl9b26nyi30k4px5wajwm976f042p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xpiano")
+    (synopsis "Extension of the @code{piano} package")
+    (description
+     "This package provides macros for typesetting virtual keyboards limited
+to two octaves for showing notes represented by a colored circle.  Optionally,
+the number used for pitch analysis can be shown.  It is an extension of
+@file{piano.sty}.  It features extended syntax and several options, like
+setting the color, adding numbers for pitch analysis, one or two octaves, and
+others.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-xpinyin
+  (package
+    (name "texlive-xpinyin")
+    ;; XXX: Whenever updating this package, please check if "Unihan.zip"
+    ;; native input needs to be updated, too.
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/xpinyin/" "source/latex/xpinyin/"
+                   "tex/latex/xpinyin/")
+             (base32
+              "1fxsnvmkm66rfq08j03sch24maw0wgb8dhl73r2rf6gwxzf4imc5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list
+      #:tex-format "luatex"
+      #:modules '((ice-9 match)
+                  (srfi srfi-1)
+                  (guix build texlive-build-system)
+                  (guix build utils))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'copy-unihan.zip
+            ;; Copy the "Unihan.zip" file where the Lua script expects to find
+            ;; it.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((unihan.zip
+                     (any (match-lambda
+                            ((_ . dir)
+                             (and (string-suffix? "Unihan.zip" dir) dir)))
+                          inputs)))
+                (with-directory-excursion "source/latex/xpinyin"
+                  (install-file unihan.zip ".")
+                  (rename-file (basename unihan.zip) "Unihan.zip")))))
+          (add-before 'build 'copy-ctxdocstrip.tex
+            ;; Set TEXINPUTS so that the process can find extracted
+            ;; "ctxdocstrip.tex".
+            (lambda* (#:key inputs #:allow-other-keys)
+              (install-file (search-input-file inputs
+                                               "tex/generic/ctex/ctxdocstrip.tex")
+                            "build/")
+              (setenv "TEXINPUTS" (string-append (getcwd) "/build:"))))
+          (add-after 'build 'fix-reproducibility
+            ;; Remove a time-stamp so the generated database is reproducible.
+            (lambda _
+              (substitute* "tex/latex/xpinyin/xpinyin-database.def"
+                (("%% +by \"texlua xpinyin.lua\" .*") "")))))))
+    (native-inputs
+     (list
+      ;; XXX: The Unihan database may need to be updated whenever this package
+      ;; is.  Appropriate Unicode version can be found in the
+      ;; "tex/latex/xpinyin/xpinyin-database.def" file.
+      (origin
+        (method url-fetch)
+        (uri "https://www.unicode.org/Public/14.0.0/ucd/Unihan.zip")
+        (sha256
+         (base32
+          "0bc5277lpc5j0gg7fjfsah7krhqjzdxya5ww6walvkc25fdm3r1a")))
+      ;; There's a circular dependency between this package (where `ctex'
+      ;; should be a native input) and `ctex' (where this package is
+      ;; a propagated input).  To work around this, grab the required
+      ;; "ctxdocstrip.tex" file from `ctex'.
+      (texlive-origin
+       "ctxdocstrip.tex" (number->string %texlive-revision)
+       (list "tex/generic/ctex/ctxdocstrip.tex")
+       (base32
+        "154v2d6wfzhfg654nlh2apy9zr78d09rkimymyjqpxymkpbk8lli"))))
+    (home-page "https://ctan.org/pkg/xpinyin")
+    (synopsis "Automatically add pinyin to Chinese characters")
+    (description
+     "The package is written to simplify the input of Hanyu Pinyin.  Macros are
+provided that automatically add pinyin to Chinese characters.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-hyperref
   (package
     (name "texlive-hyperref")
@@ -17640,6 +27724,294 @@ LaTeX document authors to store XMP metadata in their documents as well.  It
 is compatible with pdfLaTeX, XeLaTeX, LaTeX+dvipdfm, and LaTeX+dvips+ps2pdf.")
     (license license:lppl1.3c)))
 
+(define-public texlive-latex-brochure
+  (package
+    (name "texlive-latex-brochure")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-brochure/")
+             (base32
+              "0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-brochure")
+    (synopsis "Publicity flyer for LaTeX")
+    (description
+     "The document is designed as a publicity flyer for LaTeX, but also serves
+as an interesting showcase of what LaTeX can do.  The flyer is designed for
+printing, double-sided, on A3 paper, which would then be folded once.")
+    (license license:lppl)))
+
+(define-public texlive-latex-course
+  (package
+    (name "texlive-latex-course")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-course/")
+             (base32
+              "0z6q95l2vvxrspc04ki9wnrzhz76nynb5ai6969pgw6ihl68384f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-course")
+    (synopsis "LaTeX course as a projected presentation")
+    (description
+     "This package provides a brief Beamer-based slide presentation on LaTeX,
+based on Rupprecht's LaTeX 2.09 course, which the author has translated to
+English and taken to LaTeX2e and Beamer.  Additional material was taken from
+the @emph{Short Introduction to LaTeX}.")
+    (license license:gpl3+)))
+
+(define-public texlive-latex-doc-ptr
+  (package
+    (name "texlive-latex-doc-ptr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-doc-ptr/")
+             (base32
+              "0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-doc-ptr")
+    (synopsis "Direction-finder for LaTeX resources available online")
+    (description
+     "This package provides a brief set of recommendations for users who need
+online documentation of LaTeX.  The document supports the need for
+documentation of LaTeX itself, in distributions.")
+    (license license:public-domain)))
+
+(define-public texlive-latex-for-undergraduates
+  (package
+    (name "texlive-latex-for-undergraduates")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-for-undergraduates/")
+             (base32
+              "0krj27gmra2mpriircasv32snk80z9ap85h76n0bgy4wjqyblyp0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-for-undergraduates")
+    (synopsis "Tutorial aimed at introducing undergraduate students to LaTeX")
+    (description
+     "This package provides a tutorial aimed at introducing undergraduate
+students to LaTeX, including an introduction to LaTeX Workshop in Visual
+Studio Code and an example package of user-defined LaTeX commands.")
+    (license license:public-domain)))
+
+(define-public texlive-latex-graphics-companion
+  (package
+    (name "texlive-latex-graphics-companion")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-graphics-companion/")
+             (base32
+              "01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lgc-examples")
+    (synopsis "Examples from @emph{The LaTeX Graphics Companion}")
+    (description
+     "This package contains the source of the examples printed in @emph{The
+LaTeX Graphics Companion} book, together with necessary supporting files.")
+    (license license:lppl)))
+
+(define-public texlive-latex-refsheet
+  (package
+    (name "texlive-latex-refsheet")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-refsheet/")
+             (base32
+              "169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-refsheet")
+    (synopsis "LaTeX reference sheet for a thesis with KOMA-Script")
+    (description
+     "This LaTeX reference sheet is for writing a thesis using the KOMA-Script
+document classes (@code{scrartcl}, @code{scrreprt}, @code{scrbook}) and all
+the packages needed for a thesis in natural sciences.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-latex-veryshortguide
+  (package
+    (name "texlive-latex-veryshortguide")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-veryshortguide/")
+             (base32
+              "17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex-veryshortguide")
+    (synopsis "The Very Short Guide to LaTeX")
+    (description
+     "This is a 4-page reminder of what LaTeX does.  It is designed for
+printing on A4 paper, double-sided, and folding once to A5.  Such an imposed
+version of the document is provided in the distribution, as PDF.  An analogous
+version is provided in legal format.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-latex-web-companion
+  (package
+    (name "texlive-latex-web-companion")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex-web-companion/")
+             (base32
+              "0v018lwf88z3qmzyqpyvfql7dbwk5a9r0wj3jfjc9cp2ksl8zf8f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lwc-examples")
+    (synopsis "Examples from @emph{The LaTeX Web Companion}")
+    (description
+     "This package contains the source of the examples printed in @emph{The
+LaTeX Web Companion} book, together with necessary supporting files.")
+    (license license:lppl)))
+
+(define-public texlive-latex2e-help-texinfo
+  (package
+    (name "texlive-latex2e-help-texinfo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/info/latex2e.info"
+                   "doc/latex/latex2e-help-texinfo/")
+             (base32
+              "0rk69n89hl67qfbi5mmb4msaibychsk9a83dx593170ayiir6s6g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex2e-help-texinfo")
+    (synopsis "Unofficial reference manual covering LaTeX2e")
+    (description
+     "This is an unofficial reference manual for LaTeX.  It is provided as
+Texinfo source.  This is a collaborative development, and details of getting
+involved are to be found on the package home page.")
+    (license license:fdl1.1+)))
+
+(define-public texlive-latex4wp
+  (package
+    (name "texlive-latex4wp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex4wp/")
+             (base32
+              "0xyk6w8jmmcsccbd9q4ikblfq6nacjjyrmf58ddjxkb6v0lzndph")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex4wp")
+    (synopsis "LaTeX guide specifically designed for word processor users")
+    (description
+     "@emph{LaTeX for Word Processor Users} is a guide that helps converting
+knowledge and techniques of word processing into the LaTeX typesetting
+environment.  It aims at helping such users use LaTeX instead.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-latex4wp-it
+  (package
+    (name "texlive-latex4wp-it")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latex4wp-it/")
+             (base32
+              "14r86fwhb9zafmyv05pqfi9962dpxj7wq94acm43gv8m2rsjp52k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latex4wp-it")
+    (synopsis "LaTeX guide for word processor users, in Italian")
+    (description
+     "The package provides a version of the @emph{LaTeX for Word Processor
+Users} document in Italian.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-latexcheat
+  (package
+    (name "texlive-latexcheat")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexcheat/")
+             (base32
+              "1383rsi21ma0291asi779bjr33m7fii019di8gv8kxwgci692fz0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexcheat")
+    (synopsis "LaTeX cheat sheet")
+    (description
+     "This package provides a LaTeX reference sheet for writing scientific
+papers.  Unlike many other such sheets, this sheet does not focus on
+typesetting mathematics, though it does list some symbols.")
+    (license license:lppl)))
+
+(define-public texlive-latexcheat-ptbr
+  (package
+    (name "texlive-latexcheat-ptbr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexcheat-ptbr/")
+             (base32
+              "0m636j9gdfpm4j1b679z5qw5ygbm6jp8xl9dzy6v5zzy695fcgaf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexcheat-ptbr")
+    (synopsis "LaTeX cheat sheet, in Brazilian Portuguese")
+    (description
+     "This is a translation to Brazilian Portuguese of Winston Chang's LaTeX
+cheat sheet.")
+    (license license:lppl)))
+
+(define-public texlive-latexcourse-rug
+  (package
+    (name "texlive-latexcourse-rug")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexcourse-rug/")
+             (base32
+              "027siznmshk60flxgra7dgzvwbmgwvckwb6r257b91x3rm77anv5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexcourse-rug")
+    (synopsis "LaTeX course book")
+    (description
+     "The package provides the book and practice files for a LaTeX course that
+the author has give several times at the Rijksuniversiteit
+Groningen (Netherlands).")
+    (license license:fdl1.1+)))
+
+(define-public texlive-latexfileinfo-pkgs
+  (package
+    (name "texlive-latexfileinfo-pkgs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/latexfileinfo-pkgs/"
+                   "source/latex/latexfileinfo-pkgs/"
+                   "tex/latex/latexfileinfo-pkgs/")
+             (base32
+              "08afjj6im3bdxv3j0z6kg8yw0pyjl5164fqn0sx084zbdfwdfrqn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/latexfileinfo-pkgs")
+    (synopsis "Comparison of packages showing LaTeX file information")
+    (description
+     "The package provides an HTML file that lists and compares CTAN packages
+that display LaTeX source file information from @code{\\ProvidesClass},
+@code{\\ProvidesFile}, and @code{\\ProvidesPackage} commands in the LaTeX
+file.  Five packages of the author's, and several other packages are
+discussed; revision control systems are mentioned briefly.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-oberdiek
   (package
     (name "texlive-oberdiek")
@@ -17977,6 +28349,25 @@ a means of defining generic functions using a key-value syntax, and
 
 (define-deprecated-package texlive-latex-l3packages texlive-l3packages)
 
+(define-public texlive-fonts-churchslavonic
+  (package
+    (name "texlive-fonts-churchslavonic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/fonts-churchslavonic/"
+                   "fonts/opentype/public/fonts-churchslavonic/")
+             (base32
+              "0yv3n8m6wcd6jk68fwlaiszv96lbax5rcv1j0wgam4dgpqqmacm4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fonts-churchslavonic")
+    (synopsis "Fonts for typesetting in Church Slavonic language")
+    (description
+     "The package provides Unicode-encoded OpenType fonts for Church Slavonic
+which are intended for Unicode TeX engines only.")
+    (license license:silofl1.1)))
+
 (define-public texlive-fontspec
   (package
     (name "texlive-fontspec")
@@ -18029,6 +28420,50 @@ base LaTeX code now supports multiple dots and spaces, and this package by
 default is a stub that just loads @code{graphicx}.")
     (license license:lppl1.3c+)))
 
+(define-public texlive-sanskrit
+  (package
+    (name "texlive-sanskrit")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/sanskrit/"
+                   "fonts/source/public/sanskrit/"
+                   "fonts/tfm/public/sanskrit/"
+                   "source/latex/sanskrit/"
+                   "tex/latex/sanskrit/")
+             (base32
+              "0qc0mylgdcc4rnid29was51s6mzil0smrs7kgnnrv8kvlb6mzydl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/sanskrit")
+    (synopsis "Sanskrit support")
+    (description
+     "This package provides a font and pre-processor suitable for the
+production of documents written in Sanskrit.  Type 1 versions of the fonts are
+available.")
+    (license license:lppl)))
+
+(define-public texlive-sanskrit-t1
+  (package
+    (name "texlive-sanskrit-t1")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/sanskrit-t1/"
+                   "fonts/map/dvips/sanskrit-t1/"
+                   "fonts/type1/public/sanskrit-t1/")
+             (base32
+              "0mv9ph7999y9shnq25k0w4sgcbvlf2gav5d1fpycjxan3h6rc7vi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/sanskrit-t1")
+    (synopsis "Type 1 version of @code{skt} fonts for Sanskrit")
+    (description
+     "The sanskrit-t1 font package provides Type 1 version of Charles Wikner's
+@code{skt} font series for the Sanskrit language.")
+    (license license:lppl)))
+
 (define-public texlive-sansmath
   (package
     (name "texlive-sansmath")
@@ -18093,6 +28528,31 @@ Computer Modern.")
 string between different encodings.  Both LaTeX and plain-TeX are supported.")
     (license license:lppl1.3c+)))
 
+(define-public texlive-svg-inkscape
+  (package
+    (name "texlive-svg-inkscape")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/svg-inkscape/")
+             (base32
+              "1gw3jp7wph0ys6372z2rgjwlpmmawdax7xpgrp4hzg5hxz748pn5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/svg-inkscape")
+    (synopsis "How to include an SVG image in LaTeX using Inkscape")
+    (description
+     "The document demonstrates the use of SVG images in LaTeX documents.
+Using the @samp{PDF+LaTeX output} option of Inkscape, it is possible to
+include SVG in documents, in which LaTeX typesets the text.  This results in
+uniform text style throughout the document, including text in images;
+moreover, LaTeX commands may be used in the image's text, providing such
+things as mathematics and references.
+
+The document also describes how to automate the conversion from SVG to
+@samp{PDF+LaTeX} using Inkscape.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-svn-prov
   (package
     (name "texlive-svn-prov")
@@ -18184,6 +28644,26 @@ package provides the @code{\\luaexec} command and the @code{luacode}
 environments to help with these problems.")
     (license license:lppl1.3+)))
 
+(define-public texlive-lualatex-doc-de
+  (package
+    (name "texlive-lualatex-doc-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/lualatex-doc-de/")
+             (base32
+              "0vnmgs475bzbqi14m9sm45cwjfsbvbk45wkb8m73j1bnk7wg7hh4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/lualatex-doc-de")
+    (synopsis "Guide to LuaLaTeX (German translation)")
+    (description
+     "The document is a German translation of the map/guide to the world of
+LuaLaTeX.  Coverage supports both new users and package developers.  Apart
+from the introductory material, the document gathers information from several
+sources, and offers links to others.")
+    (license license:fdl1.3+)))
+
 (define-public texlive-lualatex-math
   (package
     (name "texlive-lualatex-math")
@@ -18345,6 +28825,27 @@ upgrade smoothly to the new support structure.")
      "The package provides emulation of pdfTeX primitives for LuaTeX v0.85+.")
     (license license:lppl1.3+)))
 
+(define-public texlive-luatexja
+  (package
+    (name "texlive-luatexja")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/luatex/luatexja/"
+                   "source/luatex/luatexja/"
+                   "tex/luatex/luatexja/")
+             (base32
+              "1j4dvzxgjyx5aa7akg5wg2w694vds6ra70zk9crrlm83aryqkda7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-luatexbase))
+    (home-page "https://ctan.org/pkg/luatexja")
+    (synopsis "Typeset Japanese with Lua(La)TeX")
+    (description
+     "The package offers support for typesetting Japanese documents with LuaTeX.
+Either of the Plain and LaTeX2e formats may be used with the package.")
+    (license license:bsd-3)))
+
 (define-public texlive-luahbtex
   (package
     (name "texlive-luahbtex")
@@ -18475,6 +28976,25 @@ similar) definitions.")
 
 (define-deprecated-package texlive-latex-amsmath texlive-amsmath)
 
+(define-public texlive-amsmath-it
+  (package
+    (name "texlive-amsmath-it")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/amsmath-it/")
+             (base32
+              "0xcwsk8q9q3nsz8wbklgpbw0vzjw7iw0chffzcbp2zsk6rypqf7w")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/amsmath-it")
+    (synopsis "Italian translations of some old @code{amsmath} documents")
+    (description
+     "This package provides an Italian translation for some old @code{amsmath}
+documents.  The documents are: @file{diffs-m.txt} of December 1999, and
+@file{amsmath.faq} of March 2000.")
+    (license license:lppl)))
+
 (define-public texlive-manfnt
   (package
     (name "texlive-manfnt")
@@ -18670,6 +29190,86 @@ needed.")
 sorts with MetaPost.")
     (license license:public-domain)))
 
+(define-public texlive-bbm
+  (package
+    (name "texlive-bbm")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/bbm/" "fonts/source/public/bbm/"
+                   "fonts/tfm/public/bbm/")
+             (base32
+              "0fyzr8zfcv3i1ymzvpifbkmfxqvrva029vh4v0siia63sl36lvq3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; FIXME: Font metrics cannot be generated due to "bad pos"
+               ;; errors with "bbmitt" fonts.
+               (delete 'generate-font-metrics))))
+    (native-inputs (list texlive-metafont))
+    (home-page "https://ctan.org/pkg/bbm")
+    (synopsis "Blackboard-style CM fonts")
+    (description
+     "This package provides blackboard variants of Computer Modern fonts.  The
+fonts are distributed as Metafont source (only); LaTeX support is available
+with the @code{bbm-macros} package.  A sample of these fonts appears in the
+blackboard bold sampler.")
+    ;; The package states "You may freely use, modify and/or distribute this
+    ;; file." everywhere, notably in the file below.
+    (license (license:fsf-free "file://doc/fonts/bbm/README"))))
+
+(define-public texlive-bbm-macros
+  (package
+    (name "texlive-bbm-macros")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bbm-macros/"
+                   "source/latex/bbm-macros/"
+                   "tex/latex/bbm-macros/")
+             (base32
+              "11klh7hwi06yr2wx5bpk230hn7rpfspk6sd55j6rmw8kz2wa3lr7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bbm-macros")
+    (synopsis "LaTeX support for blackboard-style CM fonts")
+    (description
+     "This package provides LaTeX support for Blackboard variants of Computer
+Modern fonts.  It declares a font family @code{bbm} so you can in principle
+write running text in blackboard bold, and lots of math alphabets for using
+the fonts within maths.")
+    (license license:lppl)))
+
+(define-public texlive-bbold
+  (package
+    (name "texlive-bbold")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bbold/"
+                   "fonts/source/public/bbold/"
+                   "fonts/tfm/public/bbold/"
+                   "source/latex/bbold/" "tex/latex/bbold/")
+             (base32
+              "0x3fhz582xcv33s9yiwka82j8bz3nxribgmni3j8j03r6dih8d8r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments
+     (list #:build-targets #~(list "bbold.dtx")
+           #:tex-format "latex"))
+    (native-inputs
+     (list (texlive-updmap.cfg
+            (list texlive-hypdoc texlive-metafont))))
+    (home-page "https://ctan.org/pkg/bbold")
+    (synopsis "Sans serif blackboard bold")
+    (description
+     "This package provides a geometric sans serif blackboard bold font, for
+use in mathematics; Metafont sources are provided, as well as macros for use
+with LaTeX.")
+    (license license:bsd-3)))
+
 (define-public texlive-blockdraw-mp
   (package
     (name "texlive-blockdraw-mp")
@@ -18929,6 +29529,49 @@ The OPmac macros can generate a bibliography without any external program.")
 right-aligned table and (multiple-)figure floats, with footnotes.")
     (license license:lppl)))
 
+(define-public texlive-babel-albanian
+  (package
+    (name "texlive-babel-albanian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-albanian/"
+                   "source/generic/babel-albanian/"
+                   "tex/generic/babel-albanian/")
+             (base32
+              "1sgyxj2f2w5fb22ys0idcfy10m1wbz3mk3rkpvv7cwa0v3a0arhl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-albanian")
+    (synopsis "Support for Albanian within Babel")
+    (description
+     "The package provides support for typesetting Albanian (as part of the
+Babel system).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-azerbaijani
+  (package
+    (name "texlive-babel-azerbaijani")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-azerbaijani/"
+                   "source/generic/babel-azerbaijani/"
+                   "tex/generic/babel-azerbaijani/")
+             (base32
+              "0vpgx76316gfhxp9maiqnd3z1hjavzlnjibxi4yhalbby0dnswi1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-azerbaijani")
+    (synopsis "Support for Azerbaijani within Babel")
+    (description
+     "This is the Babel style for Azerbaijani.  This language poses special
+challenges because no traditional font encoding contains the full character
+set, and therefore a mixture must be used (e.g., T2A and T1).  This package is
+compatible with Unicode engines LuaTeX and XeTeX, which are very likely the
+most convenient way to write Azerbaijani documents.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-basque
   (package
     (name "texlive-babel-basque")
@@ -18947,6 +29590,127 @@ right-aligned table and (multiple-)figure floats, with footnotes.")
     (description "The package establishes Basque conventions in a document.")
     (license license:lppl1.3+)))
 
+(define-public texlive-babel-belarusian
+  (package
+    (name "texlive-babel-belarusian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-belarusian/"
+                   "source/generic/babel-belarusian/"
+                   "tex/generic/babel-belarusian/")
+             (base32
+              "1055gyy9hab9whnr5c2p4i4yczkn5pwm0n54ylnnsl8wg8q58w1z")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-belarusian")
+    (synopsis "Babel support for Belarusian")
+    (description
+     "The package provides support for use of Babel in documents written in
+Belarusian.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-babel-bosnian
+  (package
+    (name "texlive-babel-bosnian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-bosnian/"
+                   "source/generic/babel-bosnian/"
+                   "tex/generic/babel-bosnian/")
+             (base32
+              "097j3cwq29x17hc6wbdj2m4h7m2yv47i1m2irqxkrjvywq0b5bqd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-bosnian")
+    (synopsis "Babel contrib support for Bosnian")
+    (description
+     "The package provides a language definition file that enables support of
+Bosnian with Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-breton
+  (package
+    (name "texlive-babel-breton")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-breton/"
+                   "source/generic/babel-breton/"
+                   "tex/generic/babel-breton/")
+             (base32
+              "0hvb2qjin8jx4lmw3w2y04jnnnc6w0033kjhgflfyp309dmvhzhl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-breton")
+    (synopsis "Babel contributed support for Breton")
+    (description
+     "Breton (being, principally, a spoken language) does not have typographic
+rules of its own; this package provides an appropriate selection of French and
+British typographic rules.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-bulgarian
+  (package
+    (name "texlive-babel-bulgarian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-bulgarian/"
+                   "source/generic/babel-bulgarian/"
+                   "tex/generic/babel-bulgarian/")
+             (base32
+              "065j31rl7r4x8krkwxhq0lwdkmbq90jr8666if4br36kw0g3kzv3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-bulgarian")
+    (synopsis "Babel contributed support for Bulgarian")
+    (description
+     "The package provides support for documents in Bulgarian (or simply
+containing some Bulgarian text).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-catalan
+  (package
+    (name "texlive-babel-catalan")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-catalan/"
+                   "source/generic/babel-catalan/"
+                   "tex/generic/babel-catalan/")
+             (base32
+              "162ih5948z2kbxqxf7bp94ffg7f2b5l8ffa9w304868hj9ik6jfk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-catalan")
+    (synopsis "Babel contributed support for Catalan")
+    (description
+     "The package establishes Catalan conventions in a document (or a subset
+of the conventions, if Catalan is not the main language of the document).")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-croatian
+  (package
+    (name "texlive-babel-croatian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-croatian/"
+                   "source/generic/babel-croatian/"
+                   "tex/generic/babel-croatian/")
+             (base32
+              "1r3cccrc2i57sza8qc24hxm2p6igvhbkr8a6lnsrcrhbji2smi07")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-croatian")
+    (synopsis "Babel contributed support for Croatian")
+    (description
+     "The package establishes Croatian conventions in a document (or a subset
+of the conventions, if Croatian is not the main language of the document).")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-english
   (package
     (name "texlive-babel-english")
@@ -18971,6 +29735,48 @@ Canadian and USA text.")
 
 (define-deprecated-package texlive-generic-babel-english texlive-babel-english)
 
+(define-public texlive-babel-esperanto
+  (package
+    (name "texlive-babel-esperanto")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-esperanto/"
+                   "source/generic/babel-esperanto/"
+                   "tex/generic/babel-esperanto/")
+             (base32
+              "1av9x9d5rff6hsssssbn1jnyrqnj1c2n5fa4kgxlla95xn7zs65m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-esperanto")
+    (synopsis "Babel support for Esperanto")
+    (description
+     "The package provides the language definition file for support of
+Esperanto in Babel.  Some shortcuts are defined, as well as translations to
+Esperanto of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-estonian
+  (package
+    (name "texlive-babel-estonian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-estonian/"
+                   "source/generic/babel-estonian/"
+                   "tex/generic/babel-estonian/")
+             (base32
+              "0pi4rmbwjg8mrxi9y6jhczfv6nbrb25n025sx56yn36f579rwwiy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-estonian")
+    (synopsis "Babel support for Estonian")
+    (description
+     "The package provides the language definition file for support of
+Estonian in Babel.  Some shortcuts are defined, as well as translations to
+Estonian of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-french
   (package
     (name "texlive-babel-french")
@@ -18993,6 +29799,66 @@ the conventions, if French is not the main language of the document).")
 
 (define-deprecated-package texlive-generic-babel-french texlive-babel-french)
 
+(define-public texlive-babel-friulan
+  (package
+    (name "texlive-babel-friulan")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-friulan/"
+                   "source/generic/babel-friulan/"
+                   "tex/generic/babel-friulan/")
+             (base32
+              "082xhr083hcbp0lqvkfj48hnqj4fa7x30vn6sk6v2f1g57zq9v69")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-friulan")
+    (synopsis "Babel and Polyglossia support for Friulan(Furlan)")
+    (description
+     "The package provides a language description file that enables support of
+Friulan either with Babel or with Polyglossia.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-galician
+  (package
+    (name "texlive-babel-galician")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-galician/"
+                   "source/generic/babel-galician/"
+                   "tex/generic/babel-galician/")
+             (base32
+              "13giby8mzyxjccyvhb9dsnyqc2h17k70fch84z5mi8si3jnm9sq4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-galician")
+    (synopsis "Babel and Polyglossia support for Galician")
+    (description
+     "The package provides a language description file that enables support of
+Galician either with Babel or with Polyglossia.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-georgian
+  (package
+    (name "texlive-babel-georgian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-georgian/"
+                   "tex/generic/babel-georgian/")
+             (base32
+              "1qjpaxzgm0qh88j6x1zvnjb1n994prxqnzchrp05pgsbyjcf410p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-georgian")
+    (synopsis "Babel support for Georgian")
+    (description
+     "The package provides support for use of Babel in documents written in
+Georgian.  The package is adapted for use both under traditional TeX engines,
+and under XeTeX and LuaTeX.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-german
   (package
     (name "texlive-babel-german")
@@ -19018,6 +29884,49 @@ German.")
 
 (define-deprecated-package texlive-generic-babel-german texlive-babel-german)
 
+(define-public texlive-babel-greek
+  (package
+    (name "texlive-babel-greek")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-greek/"
+                   "source/generic/babel-greek/"
+                   "tex/generic/babel-greek/")
+             (base32
+              "116nifgjwx588f63fwkyny36i8p7i9prsz785m81hwnhylii2fhj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-greek")
+    (synopsis "Babel support for documents written in Greek")
+    (description
+     "The file provides modes for monotonic (single-diacritic) and polytonic
+(multiple-diacritic) modes of writing.  Provision is made for Greek function
+names in mathematics, and for classical-era symbols.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-hebrew
+  (package
+    (name "texlive-babel-hebrew")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-hebrew/"
+                   "source/generic/babel-hebrew/"
+                   "tex/generic/babel-hebrew/")
+             (base32
+              "1h4ksd9nvicdgi88fxv8jfh9r5gabg0w75jpqgnngszfnfw486k2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-hebrew")
+    (synopsis "Babel support for Hebrew")
+    (description
+     "The package provides the language definition file for support of Hebrew
+in babel.  Macros to control the use of text direction control of TeX--XeT and
+e-TeX are provided (and may be used elsewhere).  Some shortcuts are defined,
+as well as translations to Hebrew of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-hungarian
   (package
     (name "texlive-babel-hungarian")
@@ -19037,6 +29946,89 @@ German.")
 Magyar (Hungarian) with Babel.")
     (license license:lppl)))
 
+(define-public texlive-babel-icelandic
+  (package
+    (name "texlive-babel-icelandic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-icelandic/"
+                   "source/generic/babel-icelandic/"
+                   "tex/generic/babel-icelandic/")
+             (base32
+              "1cz6q6mn34h19k1rd2c5pfw3s6allqcbsvm0pyriinnylpx9i44d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-icelandic")
+    (synopsis "Babel support for Icelandic")
+    (description
+     "The package provides the language definition file for support of
+Icelandic in Babel.  Some shortcuts are defined, as well as translations to
+Icelandic of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-indonesian
+  (package
+    (name "texlive-babel-indonesian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-indonesian/"
+                   "source/generic/babel-indonesian/"
+                   "tex/generic/babel-indonesian/")
+             (base32
+              "1ilkl7s5dh8cs6z211p4imyzg3d2axfa5vkmrxn4d3lbx1g3chs1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-indonesian")
+    (synopsis "Support for Indonesian within Babel")
+    (description "This is the Babel style for Indonesian.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-interlingua
+  (package
+    (name "texlive-babel-interlingua")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-interlingua/"
+                   "source/generic/babel-interlingua/"
+                   "tex/generic/babel-interlingua/")
+             (base32
+              "0mxyfa6rsaxwazliblg9p4cbr0vip12c00mkvnz4dak2adnhzvbg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-interlingua")
+    (synopsis "Babel support for Interlingua")
+    (description
+     "The package provides the language definition file for support of
+Interlingua in Babel.  This includes translations to Interlingua of standard
+LaTeX names (no shortcuts are provided).  Interlingua itself is an auxiliary
+language, built from the common vocabulary of Spanish/Portuguese, English,
+Italian and French, with some normalisation of spelling.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-irish
+  (package
+    (name "texlive-babel-irish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-irish/"
+                   "source/generic/babel-irish/"
+                   "tex/generic/babel-irish/")
+             (base32
+              "0j78inzjbv653gla11g3rzmn0b5fvzbkmppmhbgq9qi8102p7k55")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-irish")
+    (synopsis "Babel support for Irish")
+    (description
+     "The package provides the language definition file for support of Irish
+Gaelic in Babel.  The principal content is translations to Irish of standard
+LaTeX names.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-italian
   (package
     (name "texlive-babel-italian")
@@ -19056,6 +30048,192 @@ Magyar (Hungarian) with Babel.")
 Babel.")
     (license license:lppl1.3c)))
 
+(define-public texlive-babel-japanese
+  (package
+    (name "texlive-babel-japanese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-japanese/"
+                   "source/generic/babel-japanese/"
+                   "tex/generic/babel-japanese/")
+             (base32
+              "0jn2pl080c0dd6ryj6y5b87h6ijg3lcd2hw7g5kyw7p9r7a6b8i0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-japanese")
+    (synopsis "Babel support for Japanese")
+    (description
+     "This package provides a japanese option for the Babel package.  It
+defines all the language definition macros in Japanese.  Currently this
+package works with pLaTeX, upLaTeX, XeLaTeX and LuaLaTeX.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-kurmanji
+  (package
+    (name "texlive-babel-kurmanji")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-kurmanji/"
+                   "source/generic/babel-kurmanji/"
+                   "tex/generic/babel-kurmanji/")
+             (base32
+              "021dzdjhiymsvqxc1cq409vkm7390lrr691snydr9xr35x0k3wr1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-kurmanji")
+    (synopsis "Babel support for Kurmanji")
+    (description
+     "The package provides the language definition file for support of
+Kurmanji in Babel.  Kurmanji belongs to the family of Kurdish languages.  Some
+shortcuts are defined, as well as translations to Kurmanji of standard LaTeX
+names.  Note that the package is dealing with Northern Kurdish, written using
+a Latin-based alphabet.  The @code{arabxetex} package offers support for
+Kurdish written in Arabic script.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-latin
+  (package
+    (name "texlive-babel-latin")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-latin/"
+                   "source/generic/babel-latin/"
+                   "tex/generic/babel-latin/")
+             (base32
+              "1ykiny7rcz5czsadxfxl53403ixkyxi67dqlphqaxkvvm2k61kpb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-latin")
+    (synopsis "Babel support for Latin")
+    (description
+     "The Babel-latin package provides the Babel languages @code{latin},
+ @code{classiclatin}, @code{medievallatin}, and @code{ecclesiasticlatin}.  It
+also defines several useful shorthands as well as some modifiers for
+typographical fine-tuning.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-latvian
+  (package
+    (name "texlive-babel-latvian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-latvian/"
+                   "source/generic/babel-latvian/"
+                   "tex/generic/babel-latvian/")
+             (base32
+              "1a605a9ksibxf8kbrqa2bmk24j9wmgzpz5f12jwcym02jm66sw82")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-latvian")
+    (synopsis "Babel support for Latvian")
+    (description
+     "The package provides the language definition file for support of Latvian
+in Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-lithuanian
+  (package
+    (name "texlive-babel-lithuanian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-lithuanian/"
+                   "source/generic/babel-lithuanian/"
+                   "tex/generic/babel-lithuanian/")
+             (base32
+              "08ifkjb61m9nx3wn8hvca9vfrzlmxpwvrh21hq1rh6dwmqli11j6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-lithuanian")
+    (synopsis "Babel support for documents written in Lithuanian")
+    (description
+     "Babel support material for documents written in Lithuanian moved from
+the @code{lithuanian} package into a new package @code{babel-lithuanian} to
+match Babel support for other languages.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-macedonian
+  (package
+    (name "texlive-babel-macedonian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-macedonian/"
+                   "source/generic/babel-macedonian/"
+                   "tex/generic/babel-macedonian/")
+             (base32
+              "0fps3nlbr4j2vy8pww4xkp2xsxiclzal4ifcpc1a0dsc4blll5nr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-macedonian")
+    (synopsis "Babel module to support Macedonian Cyrillic")
+    (description
+     "The package provides support for Macedonian documents written in
+Cyrillic, in Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-malay
+  (package
+    (name "texlive-babel-malay")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-malay/"
+                   "source/generic/babel-malay/"
+                   "tex/generic/babel-malay/")
+             (base32
+              "1gbjrsf4drmrplhwl0avpzv5yfyb30znhza4pxk704i1khabnwzk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-malay")
+    (synopsis "Support for Malay within Babel")
+    (description "This is the Babel style for Malay.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-occitan
+  (package
+    (name "texlive-babel-occitan")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-occitan/"
+                   "source/generic/babel-occitan/"
+                   "tex/generic/babel-occitan/")
+             (base32
+              "0apg6i95lhhlwwci3mm8gqrs5x5qchxkc9w615cj083bvsri8vnk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-occitan")
+    (synopsis "Babel support for Occitan")
+    (description "This package provides Occitan language description file for
+Babel, with usage instructions.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-piedmontese
+  (package
+    (name "texlive-babel-piedmontese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-piedmontese/"
+                   "source/generic/babel-piedmontese/"
+                   "tex/generic/babel-piedmontese/")
+             (base32
+              "04hig8rd6nxwwz1zjskpmap00gixmb63qh08p5fxqc6mb4bdh78b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-piedmontese")
+    (synopsis "Babel support for Piedmontese")
+    (description
+     "The package provides the language definition file for support of
+Piedmontese in Babel.  Some shortcuts are defined, as well as translations to
+Piedmontese of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-portuges
   (package
     (name "texlive-babel-portuges")
@@ -19077,6 +30255,218 @@ Portuguese and Brazilian Portuguese in Babel.  Some shortcuts are defined, as
 well as translations to Portuguese of standard LaTeX names.")
     (license license:lppl1.3+)))
 
+(define-public texlive-babel-romanian
+  (package
+    (name "texlive-babel-romanian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-romanian/"
+                   "source/generic/babel-romanian/"
+                   "tex/generic/babel-romanian/")
+             (base32
+              "0yyzcw7pm0b7fmxwn3j677g066dlmkmpa1flrivkqzbcn4mykwir")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-romanian")
+    (synopsis "Babel support for Romanian")
+    (description
+     "The package provides the language definition file for support of
+Romanian in Babel.  Translations to Romanian of standard LaTeX names are
+provided.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-romansh
+  (package
+    (name "texlive-babel-romansh")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-romansh/"
+                   "source/generic/babel-romansh/"
+                   "tex/generic/babel-romansh/")
+             (base32
+              "08lc76yglblidg24s5ap9j0xmzbxgsfwcf9f6g1m4bwbqwkh089x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:tex-format "latex"))
+    (native-inputs (list (texlive-updmap.cfg (list texlive-hypdoc))))
+    (home-page "https://ctan.org/pkg/babel-romansh")
+    (synopsis "Babel and Polyglossia support for the Romansh language")
+    (description
+     "The package provides a language description file that enables support of
+Romansh either with Babel or with Polyglossia.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-russian
+  (package
+    (name "texlive-babel-russian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-russian/"
+                   "source/generic/babel-russian/"
+                   "tex/generic/babel-russian/")
+             (base32
+              "0sy3b7qx5l6smpixa9896zqqrh6ymrz31pd4026f815jy78k3cfb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-russian")
+    (synopsis "Russian language module for Babel")
+    (description
+     "The package provides support for use of Babel in documents written in
+Russian (in both traditional and modern forms).  The support is adapted for
+use both under traditional TeX engines, and under XeTeX and LuaTeX.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-babel-samin
+  (package
+    (name "texlive-babel-samin")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-samin/"
+                   "source/generic/babel-samin/"
+                   "tex/generic/babel-samin/")
+             (base32
+              "17ackyknv665jzcd9ywf54lnmdnl1qgnhdlwybwsjj6m86y71mjl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-samin")
+    (synopsis "Babel support for Samin")
+    (description
+     "The package provides the language definition file for support of North
+Sami in Babel.  Several Sami dialects/languages are spoken in Finland, Norway,
+Sweden and on the Kola Peninsula of Russia.  Not all use the same alphabet,
+and no attempt is made to support any other than North Sami here.  Some
+shortcuts are defined, as well as translations to Norsk of standard LaTeX
+names.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-scottish
+  (package
+    (name "texlive-babel-scottish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-scottish/"
+                   "source/generic/babel-scottish/"
+                   "tex/generic/babel-scottish/")
+             (base32
+              "0wnrahbjkqrgxr4ra2lpnj5yiygbd8pyivcndzax1r7x2ci0f805")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-scottish")
+    (synopsis "Babel support for Scottish Gaelic")
+    (description
+     "The package provides the language definition file for support of Gaidhlig
+(Scottish Gaelic) in Babel.  Some shortcuts are defined, as well as
+translations of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-serbian
+  (package
+    (name "texlive-babel-serbian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-serbian/"
+                   "source/generic/babel-serbian/"
+                   "tex/generic/babel-serbian/")
+             (base32
+              "089w8phd1pyzh8dmn4v2bspnmx4hqi63mby1yn7xk596qxi3nqrz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-serbian")
+    (synopsis "Babel and Polyglossia support for Serbian")
+    (description
+     "The package provides support for Serbian documents written in Latin, in
+Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-serbianc
+  (package
+    (name "texlive-babel-serbianc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-serbianc/"
+                   "source/generic/babel-serbianc/"
+                   "tex/generic/babel-serbianc/")
+             (base32
+              "1ji77vlb10vxdka5bsnqkrlf34c4qhpl162xizrzxf11z6099wng")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-serbianc")
+    (synopsis "Babel module to support Serbian Cyrillic")
+    (description
+     "The package provides support for Serbian documents written in Cyrillic,
+in Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-slovak
+  (package
+    (name "texlive-babel-slovak")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-slovak/"
+                   "source/generic/babel-slovak/"
+                   "tex/generic/babel-slovak/")
+             (base32
+              "16w95j3ckvjvmwccx2qvf7lq3b3zvnlf7ygm35i8xq22f3lm2a9k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-slovak")
+    (synopsis "Babel support for typesetting Slovak")
+    (description
+     "The package provides the language definition file for support of Slovak
+in Babel, including Slovak variants of LaTeX built-in-names.  Shortcuts are
+also defined.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-slovenian
+  (package
+    (name "texlive-babel-slovenian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-slovenian/"
+                   "source/generic/babel-slovenian/"
+                   "tex/generic/babel-slovenian/")
+             (base32
+              "08bf1732vsa148km0vkfj6k1cg3j3yrhkzsvnhv283bbr1wqprz6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-slovenian")
+    (synopsis "Babel support for typesetting Slovenian")
+    (description
+     "The package provides the language definition file for support of
+Slovenian in Babel.  Several shortcuts are defined, as well as translations to
+Slovenian of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-sorbian
+  (package
+    (name "texlive-babel-sorbian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-sorbian/"
+                   "source/generic/babel-sorbian/"
+                   "tex/generic/babel-sorbian/")
+             (base32
+              "1b6qqk0qik294z8sirvf58cf5v8mhsz4hj91gw7zg8b4j362lp8y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-sorbian")
+    (synopsis "Babel support for Upper and Lower Sorbian")
+    (description
+     "The package provides language definitions file for support of both Upper
+and Lower Sorbian, in Babel.  Some shortcuts are defined, as well as
+translations to the relevant language of standard LaTeX names.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-babel-spanish
   (package
     (name "texlive-babel-spanish")
@@ -19117,6 +30507,144 @@ provided for those who wish to typeset Spanish as written in Mexico.")
      "The package provides the language definition file for Swedish.")
     (license license:lppl1.3+)))
 
+(define-public texlive-babel-thai
+  (package
+    (name "texlive-babel-thai")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-thai/"
+                   "source/generic/babel-thai/"
+                   "tex/generic/babel-thai/")
+             (base32
+              "1wgprys500a1fn56bnsmq8fhmb9y8cfwsqn5hginfb36d3gym4p6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-thai")
+    (synopsis "Support for Thai within babel")
+    (description
+     "The package provides support for typesetting Thai text within the Babel
+system.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-turkish
+  (package
+    (name "texlive-babel-turkish")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-turkish/"
+                   "source/generic/babel-turkish/"
+                   "tex/generic/babel-turkish/")
+             (base32
+              "0q88q0kfa4jjd4m51mvj798scxr5c5l7bjp9sfv8s5pq3ym19bq0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-turkish")
+    (synopsis "Babel support for Turkish documents")
+    (description
+     "The package provides support, within Babel, of the Turkish language.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-ukrainian
+  (package
+    (name "texlive-babel-ukrainian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-ukrainian/"
+                   "source/generic/babel-ukrainian/"
+                   "tex/generic/babel-ukrainian/")
+             (base32
+              "1nz8yzpc5khyv6wgm5ndwfdxx591wqlg311crzxk08ardg8zwvgs")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-ukrainian")
+    (synopsis "Babel support for Ukrainian")
+    (description
+     "The package provides support for use of babel in documents written in
+Ukrainian.  The support is adapted for use under legacy TeX engines as well as
+XeTeX and LuaTeX.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-babel-vietnamese
+  (package
+    (name "texlive-babel-vietnamese")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-vietnamese/"
+                   "source/generic/babel-vietnamese/"
+                   "tex/generic/babel-vietnamese/")
+             (base32
+              "12nnrdk0k2xfab33249s3gzs1815p7j197bv4zisndxvrmiv6hdf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-vietnamese")
+    (synopsis "Babel support for typesetting Vietnamese")
+    (description
+     "The package provides the language definition file for support of
+Vietnamese in Babel.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-babel-welsh
+  (package
+    (name "texlive-babel-welsh")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/babel-welsh/"
+                   "source/generic/babel-welsh/"
+                   "tex/generic/babel-welsh/")
+             (base32
+              "0qba526ralldh4y6w0pzdw2vb2ng31mw416qzn0zzjp8sppc3hyw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/babel-welsh")
+    (synopsis "Babel support for Welsh")
+    (description
+     "The package provides the language definition file for Welsh.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-cyklop
+  (package
+    (name "texlive-cyklop")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cyklop/"
+                   "fonts/afm/public/cyklop/"
+                   "fonts/enc/dvips/cyklop/"
+                   "fonts/map/dvips/cyklop/"
+                   "fonts/opentype/public/cyklop/"
+                   "fonts/tfm/public/cyklop/"
+                   "fonts/type1/public/cyklop/"
+                   "tex/latex/cyklop/")
+             (base32
+              "0jfri15l1jycqzjac8s5bz6izypdwfjagfz6jhw95ixj1s9brnpl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cyklop")
+    (synopsis "The Cyclop typeface")
+    (description
+     "The Cyclop typeface was designed in the 1920s at the workshop of Warsaw
+type foundry @emph{Odlewnia Czcionek J. Idzkowski i S-ka}.  This sans serif
+typeface has a highly modulated stroke so it has high typographic contrast.
+The vertical stems are much heavier then horizontal ones.  Most characters
+have thin rectangles as additional counters giving the unique shape of the
+characters.  The lead types of Cyclop typeface were produced in slanted
+variant at sizes 8-48 pt.  It was heavily used for heads in newspapers and
+accidents prints.  Typesetters used Cyclop in the inter-war period, during the
+occupation in the underground press.  The typeface was used until the
+beginnings of the offset print and computer typesetting era.  Nowadays it is
+hard to find the metal types of this typeface.
+
+The fonts are distributed in the Type1 and OpenType formats along with the
+files necessary for use these fonts in TeX and LaTeX including encoding
+definition files: T1 (ec), T5 (Vietnamese), OT4, QX, texnansi and nonstandard
+ones (IL2 for Czech fonts).")
+    (license license:gfl1.0)))
+
 (define-public texlive-cyrillic-bin
   (package
     (name "texlive-cyrillic-bin")
@@ -19287,6 +30815,25 @@ between various classes of Unix systems.")
 
 (define-deprecated-package texlive-latex-ifplatform texlive-ifplatform)
 
+(define-public texlive-ifptex
+  (package
+    (name "texlive-ifptex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/ifptex/" "tex/generic/ifptex/")
+             (base32
+              "0l5mclz9cwj756ah0nqbiai0b5m9368dz4ykb0ih5irm6cmswdfm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ifptex")
+    (synopsis "Check if the engine is pTeX or one of its derivatives")
+    (description
+     "The @code{ifptex} package is a counterpart of @code{ifxetex},
+@code{ifluatex}, etc.@: for the pTeX engine.  The @code{ifuptex} package is an
+alias to @code{ifptex} provided for backward compatibility.")
+    (license license:expat)))
+
 (define-public texlive-iftex
   (package
     (name "texlive-iftex")
@@ -19312,6 +30859,26 @@ the engine in use.")
 (define-deprecated-package texlive-generic-iftex texlive-iftex)
 (define-deprecated-package texlive-generic-ifxetex texlive-iftex)
 
+(define-public texlive-ifxptex
+  (package
+    (name "texlive-ifxptex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/ifxptex/"
+                   "tex/generic/ifxptex/")
+             (base32
+              "0r77j010a9fcn47kjy6vwv72i8fynb8jsilas6hs9c9lgk5bal1g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ifxptex")
+    (synopsis "Detect pTeX and its derivatives")
+    (description
+     "The package provides commands for detecting pTeX and its derivatives
+(e-pTeX, upTeX, e-upTeX, and ApTeX).  Both LaTeX and plain TeX are
+supported.")
+    (license license:knuth)))
+
 (define-public texlive-tipa
   (package
     (name "texlive-tipa")
@@ -19339,6 +30906,24 @@ T3, and the set of addendum symbols as encoding TS3.  Times-like Adobe Type
 1 versions are provided for both the T3 and the TS3 fonts.")
     (license license:lppl)))
 
+(define-public texlive-tipa-de
+  (package
+    (name "texlive-tipa-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tipa-de/")
+             (base32
+              "16gwc0dpdls6s2vdl3hmd6307d88gfzsa3kbw3vhl0z5iawvwj4h")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tipa-de")
+    (synopsis "German translation of @code{tipa} documentation")
+    (description
+     "This is a German translation of Fukui Rei's @code{tipaman} from the
+@code{tipa} bundle.")
+    (license license:lppl)))
+
 (define-public texlive-amsrefs
   (package
     (name "texlive-amsrefs")
@@ -19984,6 +31569,26 @@ Unicode blocks, for automatic font tagging of multilingual text.")
 Easter nomogram.")
     (license license:lppl)))
 
+(define-public texlive-garuda-c90
+  (package
+    (name "texlive-garuda-c90")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "dvips/garuda-c90/"
+                   "fonts/map/dvips/garuda-c90/"
+                   "fonts/tfm/public/garuda-c90/"
+                   "source/fonts/garuda-c90/")
+             (base32
+              "1f6rlfxq3ccv9wdf7pzfgs1081yflxd3fzhkzi23mpyl777l7q9y")))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-fonts-tlwg))
+    (home-page "https://ctan.org/pkg/garuda-c90")
+    (synopsis "TeX support (from CJK) for the Garuda font")
+    (description
+     "This package provides TeX support (from CJK) for the Garuda font.")
+    (license license:gpl2+)))
+
 (define-public texlive-hanging
   (package
     (name "texlive-hanging")
@@ -20172,6 +31777,26 @@ is much more flexible, since it can be used as direct replacement for
 provided by @code{tex.mp}.")
     (license license:public-domain)))
 
+(define-public texlive-marathi
+  (package
+    (name "texlive-marathi")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/marathi/" "source/latex/marathi/"
+                   "tex/latex/marathi/")
+             (base32
+              "0xlyvdb6dadg4x2xixcxr1ixqsz69ssifpbh5p46lzsz080pwd58")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/marathi")
+    (synopsis "Typeset Marathi language using XeLaTeX or LuaLaTeX")
+    (description
+     "This package is used to typeset Marathi language with LuaLaTeX and XeLaTeX.
+It will provide localizations needed for the Marathi language.  Currently the
+package localizes package @code{blindtext} and package @code{expex}.")
+    (license (list license:gpl3+ license:fdl1.3+))))
+
 (define-public texlive-markdown
   (package
     (name "texlive-markdown")
@@ -20694,6 +32319,45 @@ of node lists.  It uses a similar visual representation for node lists as the
 UNIX @command{tree} command for a folder structure.")
     (license license:lppl1.3+)))
 
+(define-public texlive-nomencl
+  (package
+    (name "texlive-nomencl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/nomencl/" "makeindex/nomencl/"
+                   "source/latex/nomencl/" "tex/latex/nomencl/")
+             (base32
+              "176lqab9ypsym7x7mk9d0pbqf3fl9iwi539zjqv3l6nbmxj9ga88")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/nomencl")
+    (synopsis "Produce lists of symbols as in nomenclature")
+    (description
+     "This package produces lists of symbols using the capabilities of the
+MakeIndex program.")
+    (license license:lppl)))
+
+(define-public texlive-norasi-c90
+  (package
+    (name "texlive-norasi-c90")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "dvips/norasi-c90/"
+                   "fonts/map/dvips/norasi-c90/"
+                   "fonts/tfm/public/norasi-c90/"
+                   "source/fonts/norasi-c90/")
+             (base32
+              "19ynw46dbk71sbzx6rna359gdddjmwl57gw3kfz3f9ywvhq01m1k")))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-fonts-tlwg))
+    (home-page "https://ctan.org/pkg/norasi-c90")
+    (synopsis  "TeX support (from CJK) for the Norasi font")
+    (description
+     "This package provides TeX support (from CJK) for the Norasi font.")
+    (license license:gpl2+)))
+
 (define-public texlive-noto
   (package
     (name "texlive-noto")
@@ -20903,6 +32567,24 @@ rotated.")
 
 (define-deprecated-package texlive-latex-psfrag texlive-psfrag)
 
+(define-public texlive-psfrag-italian
+  (package
+    (name "texlive-psfrag-italian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/psfrag-italian/")
+             (base32
+              "0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/psfrag-italian")
+    (synopsis "PSfrag documentation in Italian")
+    (description
+     "This is a translation of the documentation that comes with the
+@code{psfrag} package.")
+    (license license:gpl3+)))
+
 (define-public texlive-pstool
   (package
     (name "texlive-pstool")
@@ -21101,6 +32783,26 @@ may itself contain text).")
 @end itemize")
     (license license:lppl)))
 
+(define-public texlive-sauter
+  (package
+    (name "texlive-sauter")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "fonts/source/public/sauter/")
+             (base32
+              "037skfr46198y0vczwcy6dzq9ry8w5imj1ih9nfy9mrb0hmj8caq")))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/sauter")
+    (synopsis "Wide range of design sizes for CM fonts")
+    (description
+     "This package includes extensions, originally to the CM fonts, providing
+a parameterization scheme to build Metafont fonts at true design sizes, for
+a large range of sizes.  The scheme has now been extended to a range of other
+fonts, including the AMS fonts, @code{bbm}, @code{bbold}, @code{rsfs} and
+@code{wasy} fonts.")
+    (license license:gpl3+)))
+
 (define-public texlive-selinput
   (package
     (name "texlive-selinput")
@@ -21243,6 +32945,28 @@ circles (useful for visually demonstrating the nature of fractions) in
 MetaPost.")
     (license license:lppl1.3+)))
 
+(define-public texlive-short-math-guide
+  (package
+    (name "texlive-short-math-guide")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/short-math-guide/")
+             (base32
+              "1wjcjgw0xk4zx57f364cpl57qpxj3lq4lahlkbk6iiin1h9v2prf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/short-math-guide")
+    (synopsis "Guide to typeset mathematical notation with LaTeX")
+    (description
+     "@emph{The Short Math Guide} is intended to be a concise introduction to
+the use of the facilities provided by @code{amsmath} and various other LaTeX
+packages for typesetting mathematical notation.  Originally created by Michael
+Downes of the American Mathematical Society based only on @code{amsmath}, it
+has been brought up to date with references to related packages and other
+useful information.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-showexpl
   (package
     (name "texlive-showexpl")
@@ -21303,6 +33027,24 @@ technical report, in XeLaTeX.  This simple template that can be further
 customized or extended, with numerous examples.")
     (license license:public-domain)))
 
+(define-public texlive-simplified-latex
+  (package
+    (name "texlive-simplified-latex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/simplified-latex/")
+             (base32
+              "1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/simplified-latex")
+    (synopsis "Simplified introduction to LaTeX")
+    (description
+     "This package provides an accessible introduction to LaTeX for the
+beginner.")
+    (license license:lppl)))
+
 (define-public texlive-slideshow
   (package
     (name "texlive-slideshow")
@@ -21547,6 +33289,25 @@ definition, or to define space-stripped macros.")
 and books created by Edward Tufte.")
     (license license:asl2.0)))
 
+(define-public texlive-turkmen
+  (package
+    (name "texlive-turkmen")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/turkmen/" "source/latex/turkmen/"
+                   "tex/latex/turkmen/")
+             (base32
+              "0jgz9vkqpp853pxvhknafrwpl41h04j7fr1gfjrzqzcrdq7d855i")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/turkmen")
+    (synopsis "Babel support for Turkmen")
+    (description
+     "The package provides support for Turkmen in Babel, but integration with
+Babel is not available.")
+    (license license:lppl)))
+
 (define-public texlive-ucharclasses
   (package
     (name "texlive-ucharclasses")
@@ -21770,6 +33531,26 @@ The package is a reimplementation of the @code{spotcolor} package for use with
 XeLaTeX.  As such, it has the same user interface and the same capabilities.")
     (license license:lppl1.3c)))
 
+(define-public texlive-xetex-devanagari
+  (package
+    (name "texlive-xetex-devanagari")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xetex/xetex-devanagari/"
+                   "fonts/misc/xetex/fontmapping/xetex-devanagari/")
+             (base32
+              "17br9aq1af36wadq2cmndbb0z2jdhr1mn7jdb3cq642wwngcfi13")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xetex-devanagari")
+    (synopsis "XeTeX input map for Unicode Devanagari")
+    (description
+     "The package provides a map for use with Jonathan Kew's TECkit, to
+translate Devanagari (encoded according to the Harvard/Kyoto convention) to
+Unicode (range 0900-097F).")
+    (license license:lppl)))
+
 (define-public texlive-xetex-itrans
   (package
     (name "texlive-xetex-itrans")
@@ -21870,6 +33651,24 @@ texts), using XeTeX.  It enhances the existing support, in XeTeX, providing
 features that provide quality typesetting.")
     (license license:lppl1.3c)))
 
+(define-public texlive-xetexref
+  (package
+    (name "texlive-xetexref")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xetex/xetexref/")
+             (base32
+              "0d6xwyd09rrmd0pjvrdha05l1qldppd2k7wcpyfb475pd9q05r5r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xetexref")
+    (synopsis "Reference documentation of XeTeX")
+    (description
+     "The package comprises reference documentation for XeTeX detailing its
+extended features.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-xevlna
   (package
     (name "texlive-xevlna")
@@ -21916,6 +33715,24 @@ available, together with the parent (including file) and parents (all
 including files to the root of the tree).  The package supersedes FiNK.")
     (license license:lppl1.3+)))
 
+(define-public texlive-cursolatex
+  (package
+    (name "texlive-cursolatex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/cursolatex/")
+             (base32
+              "048s5fg8c19s3zbl2dkmh8ffkicb8fd9n46m0iqrc39i0wrh7p12")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/cursolatex")
+    (synopsis "LaTeX tutorial, in Portuguese")
+    (description
+     "This package provides a LaTeX tutorial, in Portuguese.  The tutorial is
+presented as a set of slides.")
+    (license license:gpl3+)))
+
 (define-public texlive-calrsfs
   (package
     (name "texlive-calrsfs")
@@ -22188,6 +34005,55 @@ BibLaTeX, and is considered experimental.")
 
 (define-deprecated-package texlive-latex-gcite texlive-gcite)
 
+(define-public texlive-gckanbun
+  (package
+    (name "texlive-gckanbun")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gckanbun/" "tex/latex/gckanbun/")
+             (base32
+              "1hjp7nw2b34pkfxh6n2722zc83hjpn492q77gb063jzi79pgbprx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gckanbun")
+    (synopsis "Kanbun typesetting for (u)pLaTeX and LuaLaTeX")
+    (description
+     "This package provides a Kanbun (Han Wen, ``Chinese writing'')
+typesetting for @code{(u)pLaTeX} and LuaLaTeX.")
+    (license license:expat)))
+
+(define-public texlive-gentombow
+  (package
+    (name "texlive-gentombow")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/gentombow/"
+                   "tex/latex/gentombow/")
+             (base32
+              "1pc1cxsxlnj9d2qnvm31r3cw15mf7fwr5dadd10473mww8bp8irf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/gentombow")
+    (synopsis "Generate Japanese-style crop marks")
+    (description
+     "This bundle provides a LaTeX package for generating Japanese-style crop
+marks (called tombow in Japanese) for practical use in self-publishing.
+
+The bundle contains the following packages:
+@itemize
+@item @file{gentombow.sty}: Generate crop marks (called tombow in
+Japanese) for practical use in self-publishing.  It provides the core
+tombow feature if not available.
+@item @file{pxgentombow.sty}: Superseded by @file{gentombow.sty}; kept
+for compatibility only.
+@item @file{bounddvi.sty}: Set papersize special to DVI file.  Can be
+used on LaTeX, pLaTeX, upLaTeX (with DVI output mode) with dvips or
+dvipdfmx drivers.
+@end itemize")
+    (license license:bsd-3)))
+
 (define-public texlive-geometry
   (package
     (name "texlive-geometry")
@@ -22354,6 +34220,34 @@ running text or as separate paragraphs with a preceding number or symbol.  It
 also provides compacted versions of @code{enumerate} and @code{itemize}.")
     (license license:lppl1.0+)))
 
+(define-public texlive-polski
+  (package
+    (name "texlive-polski")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/polski/" "source/latex/polski/"
+                   "tex/latex/polski/")
+             (base32
+              "0rcqyq8a96dl61fi9yr201rpm93w70sq93872ngfgvnk5m19xy13")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:build-targets #~(list "polski.ins")))
+    (propagated-inputs (list texlive-hyphen-complete texlive-pl))
+    (home-page "https://ctan.org/pkg/polski")
+    (synopsis "Typeset Polish documents with LaTeX and Polish fonts")
+    (description
+     "This package provides tools to typeset monolingual Polish documents in
+LaTeX2e without Babel or Polyglossia.  The package loads Polish hyphenation
+patterns, ensures that a font encoding suitable for Polish is used; in
+particular it enables Polish adaptation of Computer Modern fonts (the
+so-called PL fonts), provides translations of @code{\\today} and names like
+@samp{Bibliography} or @samp{Chapter}, redefines math symbols according to
+Polish typographical tradition, provides macros for dashes according to Polish
+orthography, provides a historical input method for Polish characters, works
+with traditional TeX as well as with Unicode aware variants.")
+    (license license:lppl1.2+)))
+
 (define-public texlive-polyglossia
   (package
     (name "texlive-polyglossia")
@@ -22461,6 +34355,48 @@ written from right to left.
 
 (define-deprecated-package texlive-latex-polyglossia texlive-polyglossia)
 
+(define-public texlive-przechlewski-book
+  (package
+    (name "texlive-przechlewski-book")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/przechlewski-book/"
+                   "doc/latex/przechlewski-book/"
+                   "tex/latex/przechlewski-book/")
+             (base32
+              "06bsdpm26s3qqxhik185pkrxp0mx2n5jxndm14cd917drh162yr8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/przechlewski-book")
+    (synopsis "Examples from Przechlewski's LaTeX book")
+    (description
+     "The bundle provides machine-readable copies of the examples from the
+book @emph{Praca magisterska i dyplomowa z programem LaTeX}.")
+    (license license:lppl)))
+
+(define-public texlive-qpxqtx
+  (package
+    (name "texlive-qpxqtx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/qpxqtx/"
+                   "fonts/tfm/public/qpxqtx/"
+                   "fonts/vf/public/qpxqtx/"
+                   "tex/generic/qpxqtx/")
+             (base32
+              "0ksikdpzsv0rdnl5p536aw3625rlmzpgmhsycb8sbm9jlbrpxvi6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/qpxqtx")
+    (synopsis
+     "Polish macros and fonts supporting Pagella/pxfonts and Termes/txfonts")
+    (description
+     "This package provides Polish macros and fonts supporting Pagella/pxfonts
+and Termes/txfonts")
+    (license license:public-domain)))
+
 (define-public texlive-supertabular
   (package
     (name "texlive-supertabular")
@@ -22485,6 +34421,27 @@ a few situations where longtable has problems.")
 
 (define-deprecated-package texlive-latex-supertabular texlive-supertabular)
 
+(define-public texlive-tap
+  (package
+    (name "texlive-tap")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/tap/" "tex/generic/tap/")
+             (base32
+              "18xfn4p90i0hw5h7am982jgqnsj7qyaijw20zjy3shwihgkaq7fs")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tap")
+    (synopsis "TeX macros for typesetting complex tables")
+    (description
+     "The package offers a simple notation for pretty complex tables (to
+Michael J.@: Ferguson's credit).  With PostScript, the package allows
+shaded/coloured tables, diagonal rules, etc.  The package is supposed to work
+with both Plain and LaTeX.  An AWK converter from ASCII semigraphic tables to
+TAP notation is included.")
+    (license license:public-domain)))
+
 (define-public texlive-texinfo
   (package
     (name "texlive-texinfo")
@@ -22917,6 +34874,24 @@ would automatically change the heading style in use).")
 
 (define-deprecated-package texlive-latex-fancyhdr texlive-fancyhdr)
 
+(define-public texlive-fancyhdr-it
+  (package
+    (name "texlive-fancyhdr-it")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/fancyhdr-it/")
+             (base32
+              "117826hd9zl15i8qf6d1pz2qz57l68a9nxqldxyk21acc29ifalr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fancyhdr-it")
+    (synopsis "Italian translation of @code{fancyhdr} documentation")
+    (description
+     "This package provides an Italian translation of documentation provided
+with the @code{fancyhdr} package.")
+    (license license:lppl)))
+
 (define-public texlive-fancyref
   (package
     (name "texlive-fancyref")
@@ -23120,6 +35095,27 @@ into Python''.  The package is modelled on @code{lipsum}, and may be used for
 similar purposes.")
     (license license:lppl1.3c)))
 
+(define-public texlive-kurdishlipsum
+  (package
+    (name "texlive-kurdishlipsum")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/kurdishlipsum/"
+                   "tex/xelatex/kurdishlipsum/")
+             (base32
+              "0lpdjqbif0pqsb6pmg8jc8igdf06dzwn3yfxh19mnjfzslcxkcmk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/kurdishlipsum")
+    (synopsis "Lipsum package for the Kurdish language")
+    (description
+     "This package provides lipsum-like facilities for the Kurdish language.
+The package gives you easy access to the Kurdish poetry and balladry texts of
+the Diwany Vafaiy, Ahmedy Xani, Naly, Mahwy,....  The package needs to be run
+under XeLaTeX.")
+    (license license:lppl)))
+
 (define-public texlive-kurier
   (package
     (name "texlive-kurier")
@@ -23699,6 +35695,89 @@ what your review will look like on zbMATH Open and you can test whether your
 LaTeX-Code will compile on our system.")
     (license (list license:gpl3 license:cc-by-sa4.0))))
 
+(define-public texlive-zhmetrics
+  (package
+    (name "texlive-zhmetrics")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/zhmetrics/"
+                   "fonts/tfm/zhmetrics/cyberb/"
+                   "fonts/tfm/zhmetrics/gbk/"
+                   "fonts/tfm/zhmetrics/gbkfs/"
+                   "fonts/tfm/zhmetrics/gbkhei/"
+                   "fonts/tfm/zhmetrics/gbkkai/"
+                   "fonts/tfm/zhmetrics/gbkli/"
+                   "fonts/tfm/zhmetrics/gbksong/"
+                   "fonts/tfm/zhmetrics/gbkyou/"
+                   "fonts/tfm/zhmetrics/unifs/"
+                   "fonts/tfm/zhmetrics/unihei/"
+                   "fonts/tfm/zhmetrics/unikai/"
+                   "fonts/tfm/zhmetrics/unili/"
+                   "fonts/tfm/zhmetrics/unisong/"
+                   "fonts/tfm/zhmetrics/uniyou/"
+                   "source/fonts/zhmetrics/"
+                   "tex/generic/zhmetrics/"
+                   "tex/latex/zhmetrics/")
+             (base32
+              "0953rxs3k3vil9aq9v8hacwbnchz73ql8xp0dp0ynpw6v8iabxyg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zhmetrics")
+    (synopsis "TFM subfont files for using Chinese fonts in 8-bit TeX")
+    (description
+     "These are metrics to use existing Chinese TrueType fonts in workflows
+that use LaTeX and @command{dvipdfmx}, or pdfLaTeX.  The fonts themselves are
+not included in the package.  Six font families are supported: Kai, Song,
+Lishu, Fangsong, Youyuan and Hei.  Two encodings (GBK and UTF-8) are
+supported.")
+    (license license:lppl)))
+
+(define-public texlive-zhmetrics-uptex
+  (package
+    (name "texlive-zhmetrics-uptex")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/zhmetrics-uptex/"
+                   "fonts/tfm/public/zhmetrics-uptex/"
+                   "fonts/vf/public/zhmetrics-uptex/")
+             (base32
+              "1598l2k32g8nvxqzbgc6mzsib4v0pmsn9h221r4m1d95vm3n0pvd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/zhmetrics-uptex")
+    (synopsis "Chinese font metrics for upTeX")
+    (description
+     "The package contains some Chinese font metrics (JFM, VF, etc) for upTeX
+engine, together with a simple DVIPDFMx font mapping of Fandol fonts for
+DVIPDFMx.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-zhnumber
+  (package
+    (name "texlive-zhnumber")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/zhnumber/"
+                   "source/latex/zhnumber/"
+                   "tex/latex/zhnumber/")
+             (base32
+              "170lwb97ji9zgmmayzxmpawjkzk50g7rwqmwr11w72zfqkc2v9g2")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    ;; FIXME: I couldn't find how to build this package from source.
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases (delete 'build))))
+    (home-page "https://ctan.org/pkg/zhnumber")
+    (synopsis "Typeset Chinese representations of numbers")
+    (description
+     "The package provides commands to typeset Chinese representations of
+numbers.  The main difference between this package and CJKnumb is that the
+commands provided are expandable in the proper way.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-zhspacing
   (package
     (name "texlive-zhspacing")
@@ -23777,6 +35856,63 @@ via one of the packages @code{calrsfs} and @code{mathrsfs}.")
 
 (define-deprecated-package texlive-fonts-rsfs texlive-rsfs)
 
+(define-public texlive-es-tex-faq
+  (package
+    (name "texlive-es-tex-faq")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/es-tex-faq/")
+             (base32
+              "0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/faq-es")
+    (synopsis "CervanTeX (Spanish TeX Group) FAQ")
+    (description
+     "This package provides the SGML source, converted LaTeX version, and
+readable copies of the FAQ from the Spanish TeX users group.")
+    (license license:lppl)))
+
+(define-public texlive-eskd
+  (package
+    (name "texlive-eskd")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/eskd/" "source/latex/eskd/"
+                   "tex/latex/eskd/")
+             (base32
+              "1q83pvycckrmyaiwwg3mcl77jy5wrcy8jy7kz004x7asq2p0a2ls")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/eskd")
+    (synopsis "Modern Russian typesetting")
+    (description
+     "The class offers modern Russian text formatting, in accordance with
+accepted design standards.  Fonts not (apparently) available on CTAN are
+required for use of the class.")
+    (license license:lppl)))
+
+(define-public texlive-eskdx
+  (package
+    (name "texlive-eskdx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/eskdx/" "tex/latex/eskdx/")
+             (base32
+              "07c9gbvgr4455s5sfsdjxbbdllx2lhmb5d1c2sdk7rpkvjh64lv8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/eskdx")
+    (synopsis "Modern Russian typesetting")
+    (description
+     "Eskdx is a collection of LaTeX classes and packages to typeset textual
+and graphical documents in accordance with Russian (and probably post USSR)
+standards for designers.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-eso-pic
   (package
     (name "texlive-eso-pic")
@@ -23863,6 +35999,26 @@ provides means for easy customization of the list of notes.")
 document.")
     (license license:lppl1.2+)))
 
+(define-public texlive-endnotesj
+  (package
+    (name "texlive-endnotesj")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/endnotesj/"
+                   "tex/latex/endnotesj/")
+             (base32
+              "1yv8jzvps79svd4013f6cpm41mh3mx2m64jx7bv01ryqdgjzq2g9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/endnotesj")
+    (synopsis "Japanese-style endnotes")
+    (description
+     "This package provides customized styles for endnotes to be used with
+Japanese documents.  It can be used on pLaTeX, upLaTeX, and LuaLaTeX
+(LuaTeX-ja).")
+    (license license:bsd-3)))
+
 (define-public texlive-enumitem
   (package
     (name "texlive-enumitem")
@@ -24200,6 +36356,175 @@ according to the natural width of the widest cell in the column.")
 
 (define-deprecated-package texlive-latex-tabulary texlive-tabulary)
 
+(define-public texlive-tamethebeast
+  (package
+    (name "texlive-tamethebeast")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/bibtex/tamethebeast/")
+             (base32
+              "13shw7hcimckn7pp8pj0cr1zsi1wq6r400x1v6akpmwwjxkw09g5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tamethebeast")
+    (synopsis "Manual about bibliographies and especially BibTeX")
+    (description
+     "This package is an as complete as possible manual about bibliographies
+in LaTeX, and thus mainly about BibTeX.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-tds
+  (package
+    (name "texlive-tds")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/tds/" "doc/info/tds.info")
+             (base32
+              "04lhavbayyisxxqfm1vpfq38xx1xwkn136hdnjaa3szky2xyn3yh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tds")
+    (synopsis "TeX Directory Structure standard")
+    (description
+     "This package defines a structure for placement of TeX-related files on
+an hierarchical file system, in a way that is well-defined, and is readily
+implementable.")
+    (license license:fdl1.1+)))
+
+(define-public texlive-tex-font-errors-cheatsheet
+  (package
+    (name "texlive-tex-font-errors-cheatsheet")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tex-font-errors-cheatsheet/")
+             (base32
+              "0pfd5qphmizhxb2p4gg6809xcx1rlfkwqa6vs4f74457chcwljwn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-font-errors-cheatsheet")
+    (synopsis "Cheat sheet outlining the most common TeX font errors")
+    (description
+     "This is a compact three-pages document highlighting the TeX flow of
+integrating fonts, and explains how some of the most common font-related error
+messages occur.  Also, hints are given on how to address those.")
+    (license license:lppl)))
+
+(define-public texlive-tex-nutshell
+  (package
+    (name "texlive-tex-nutshell")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/tex-nutshell/")
+             (base32
+              "1pc9hx4fzk0k6lwab6galf7gxm55x4z250dymsmbz4fan76xk51x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-nutshell")
+    (synopsis "Short document about TeX principles")
+    (description
+     "This document is meant for users who are looking for information about
+the basics of TeX.  Its main goal is its brevity.  The pure TeX features are
+described, no features provided by macro extensions.  Only the last section
+gives a summary of plain TeX macros.")
+    (license license:public-domain)))
+
+(define-public texlive-tex-overview
+  (package
+    (name "texlive-tex-overview")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tex-overview/")
+             (base32
+              "1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-overview")
+    (synopsis "Overview of the development of TeX")
+    (description
+     "The document gives a short overview of TeX and its children, as well as
+the macro packages LaTeX and ConTeXt.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-tex-refs
+  (package
+    (name "texlive-tex-refs")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/tex-refs/")
+             (base32
+              "1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-references")
+    (synopsis "References for TeX and Friends")
+    (description
+     "This is an ongoing project with the aim of providing a help file for
+LaTeX (and its friends like ConTeXt, MetaPost, Metafont, etc.) using
+DocBook/XML source format.")
+    (license license:fdl1.2+)))
+
+(define-public texlive-tex-vpat
+  (package
+    (name "texlive-tex-vpat")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tex-vpat/")
+             (base32
+              "16nfvhzzg46vk6pqli6spxq9y9r0manqd5b7b4k6r9lssdqxf8ld")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tex-vpat")
+    (synopsis "TeX accessibility conformance report")
+    (description
+     "This package provides the TeX accessibility conformance report based on
+ITI VPAT(R) guidelines.")
+    (license license:cc-by3.0)))
+
+(define-public texlive-texbytopic
+  (package
+    (name "texlive-texbytopic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/texbytopic/")
+             (base32
+              "0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/texbytopic")
+    (synopsis "@emph{TeX by Topic} book")
+    (description
+     "@emph{TeX by Topic} is a book originally published by Addison-Wesley.
+It describes itself as ``a TeXnician's reference'', and covers the way
+TeX (the engine) works in as much detail as most ordinary TeX programmers will
+ever need to know.")
+    (license license:fdl1.3+)))
+
+(define-public texlive-texonly
+  (package
+    (name "texlive-texonly")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/plain/texonly/")
+             (base32
+              "0h40f8hj03ha0ilpj2fx5kzzvdv0yplmr4528s2rmmy62l9kgdkd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/texonly")
+    (synopsis "Sample document in Plain TeX")
+    (description
+     "This package provides a file written with TeX, not using any packages,
+to be compiled with TeX or pdfTeX only, not with LaTeX and al.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-threeparttable
   (package
     (name "texlive-threeparttable")
@@ -24248,6 +36573,100 @@ package @code{thumbpdf.sty} to automatically include the thumbnails.  This
 arrangement works with both plain TeX and LaTeX.")
     (license license:lppl1.3+)))
 
+(define-public texlive-titlepages
+  (package
+    (name "texlive-titlepages")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/titlepages/")
+             (base32
+              "17ib7rpb2dhb2m724x66fdzddv8cqd808wxy5kkvx0vb3rl27hyh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/titlepages")
+    (synopsis "Sample titlepages, and how to code them")
+    (description
+     "The document provides examples of over two dozen title page designs
+based on a range of published books and theses, together with the LaTeX code
+used to create them.")
+    (license license:lppl)))
+
+(define-public texlive-tlc2
+  (package
+    (name "texlive-tlc2")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tlc2/")
+             (base32
+              "1ysb233rjb8gpl9s35qql1dny5rj6fn8ssy2dqdqsn5xj9pdasyy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tlc2-examples")
+    (synopsis "Examples from @emph{The LaTeX Companion}, second edition")
+    (description
+     "This package provides the source of the examples printed in @emph{The
+LaTeX Companion} book, together with necessary supporting files.")
+    (license license:lppl)))
+
+(define-public texlive-tlc3-examples
+  (package
+    (name "texlive-tlc3-examples")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/tlc3-examples/")
+             (base32
+              "01ny6r3ycji0af0cdywn2fmxd0fyz3y7afdnn983a5gy1j9rza7v")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tlc3-examples")
+    (synopsis "All examples from @emph{The LaTeX Companion}, third edition")
+    (description
+     "This package provides the PDFsand sources for all examples from
+@emph{The LaTeX Companion}, third edition (Parts I+II), together with
+necessary supporting files.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-tlmgr-intro-zh-cn
+  (package
+    (name "texlive-tlmgr-intro-zh-cn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/tlmgr-intro-zh-cn/")
+             (base32
+              "127fad3aq66rnn4jkccyw7qc8pdcwapyjb6lj9kn49nqcy3jm6nk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tlmgr-intro-zh-cn")
+    (synopsis "Short tutorial on using @command{tlmgr} in Chinese")
+    (description
+     "This is a Chinese translation of the @command{tlmgr} documentation.  It
+introduces some of the common usage of the TeX Live Manager.  The original can
+be found in the @code{tlmgrbasics} package.")
+    (license license:gpl3+)))
+
+(define-public texlive-tlmgrbasics
+  (package
+    (name "texlive-tlmgrbasics")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/tlmgrbasics/")
+             (base32
+              "0zychfw7zvx7pj8zp89zg0rjablm8p6ja2nibbdbgvan0gfc1m97")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/tlmgrbasics")
+    (synopsis "Simplified documentation for @command{tlmgr}")
+    (description
+     "This package provides simplified documentation for @command{tlmgr}, the
+TeX Live manager.  It describes the most commonly-used actions and options in
+a convenient format.")
+    (license license:gpl2+)))
+
 (define-public texlive-txfonts
   (package
     (name "texlive-txfonts")
@@ -24436,6 +36855,176 @@ command).")
     ;; The license text is found at the header of the jadetex.dtx file.
     (license license:expat)))
 
+(define-public texlive-japanese-mathformulas
+  (package
+    (name "texlive-japanese-mathformulas")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/lualatex/japanese-mathformulas/"
+                   "tex/lualatex/japanese-mathformulas/")
+             (base32
+              "0a5kqgkl89m5yc9zgkhlz44dvvi52jfaja3lwcf7g7q039k2h6fg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/japanese-mathformulas")
+    (synopsis "Compiling basic math formulas in Japanese using LuaLaTeX")
+    (description
+     "This is a style file for compiling basic maths formulas in Japanese
+using LuaLaTeX.  @code{\\NewDocumentCommand} allows you to specify whether the
+formula should be used within a sentence or on a new line.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-japanese-otf
+  (package
+    (name "texlive-japanese-otf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/japanese-otf/"
+                   "fonts/ofm/public/japanese-otf/"
+                   "fonts/tfm/public/japanese-otf/"
+                   "fonts/vf/public/japanese-otf/"
+                   "source/fonts/japanese-otf/"
+                   "tex/platex/japanese-otf/")
+             (base32
+              "125z1fi13dnksngsc442n6fcmicv7hhrxrq8anzxax4ic3dqfvha")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/japanese-otf")
+    (synopsis "Advanced font selection for platex and its friends")
+    (description
+     "The package contains pLaTeX support files and virtual fonts for
+supporting a wide variety of fonts in LaTeX using the pTeX engine.")
+    (license license:bsd-3)))
+
+(define-public texlive-jieeetran
+  (package
+    (name "texlive-jieeetran")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/jieeetran/"
+                   "doc/bibtex/jieeetran/")
+             (base32
+              "122g618j9wli9amx9c82whjp81i5cpjz1mj4pnmyfa8x5mfdh6dp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jieeetran")
+    (synopsis
+     "UnofficiaL BibTeX style for citing Japanese articles in IEEE format")
+    (description
+     "This package provides an unofficial BibTeX style for authors trying to
+cite Japanese articles in the Institute of Electrical and Electronics
+Engineers (IEEE) format.")
+    (license license:expat)))
+
+(define-public texlive-jlreq
+  (package
+    (name "texlive-jlreq")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/jlreq/"
+                   "fonts/tfm/public/jlreq/"
+                   "fonts/vf/public/jlreq/"
+                   "source/latex/jlreq/"
+                   "tex/latex/jlreq/"
+                   "tex/luatex/jlreq/")
+             (base32
+              "11jyj5mcyd9yxhb7mnm7naaaj26cgdk5iqkwna20109pcc2qy0wz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jlreq")
+    (synopsis
+     "Japanese document class based on requirements for Japanese text layout")
+    (description
+     "This package provides a Japanese document class based on requirements
+for Japanese text layout.  The class file and the JFM (Japanese font metric)
+files for LuaTeX-ja, pLaTeX, or upLaTeX are provided.")
+    (license license:bsd-2)))
+
+(define-public texlive-jlreq-deluxe
+  (package
+    (name "texlive-jlreq-deluxe")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/platex/jlreq-deluxe/"
+                   "fonts/tfm/public/jlreq-deluxe/"
+                   "fonts/vf/public/jlreq-deluxe/"
+                   "tex/platex/jlreq-deluxe/")
+             (base32
+              "0l80iqgsnhvqisrkhgflwpxs5fqyz2ddv6vp3b17vnxvymyzzvg4")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jlreq-deluxe")
+    (synopsis "Multi-weight Japanese font support for the @code{jlreq} class")
+    (description
+     "This package provides multi-weight Japanese font support for the
+@code{jlreq} class.")
+    (license license:expat)))
+
+(define-public texlive-jpneduenumerate
+  (package
+    (name "texlive-jpneduenumerate")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/jpneduenumerate/"
+                   "tex/latex/jpneduenumerate/")
+             (base32
+              "0ndg4ig5bg9ns2pxcf070c7jyh7d7r3r7c7xg5d99k3qlg4vkd9n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jpneduenumerate")
+    (synopsis "Enumerative expressions in Japanese education")
+    (description
+     "Mathematical equation representation in Japanese education differs
+somewhat from the standard LaTeX writing style.  This package introduces
+enumerative expressions in Japanese education.")
+    (license license:expat)))
+
+(define-public texlive-jpnedumathsymbols
+  (package
+    (name "texlive-jpnedumathsymbols")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/jpnedumathsymbols/"
+                   "tex/latex/jpnedumathsymbols/")
+             (base32
+              "0ap370bp831xxrq45zllyrbhhxs0yv3qb1l5pkpvgsildfk5rk7m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/jpnedumathsymbols")
+    (synopsis "Mathematical equation representation in Japanese education")
+    (description
+     "Mathematical equation representation in Japanese education differs
+somewhat from the standard LaTeX writing style.  This package introduces
+mathematical equation representation in Japanese education.")
+    (license license:expat)))
+
+(define-public texlive-kanbun
+  (package
+    (name "texlive-kanbun")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/kanbun/" "tex/latex/kanbun/")
+             (base32
+              "1a922jly8f791r4jbz4097h8js5z29435zphm5i52pvkl6p245wy")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/kanbun")
+    (synopsis "Typeset kanbun-kundoku with support for kanbun annotation")
+    (description
+     "This package allows users to manually input macros for elements in
+a kanbun-kundoku (Han Wen Xun Du) paragraph.  More importantly, it accepts
+plain text input in the kanbun annotation form when used with LuaLaTeX, which
+allows typesetting kanbun-kundoku paragraphs efficiently.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-libertine
   (package
     (name "texlive-libertine")
@@ -26239,6 +38828,26 @@ not only with KOMA-Script classes but also with the standard classes.")
 
 (define-deprecated-package texlive-latex-koma-script texlive-koma-script)
 
+(define-public texlive-koma-script-examples
+  (package
+    (name "texlive-koma-script-examples")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/koma-script-examples/")
+             (base32
+              "1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/koma-script-examples")
+    (synopsis "Examples from the KOMA-Script book")
+    (description
+     "This package contains some examples from the 6th edition of the book
+@emph{KOMA-Script<, Eine Sammlung von Klassen und Paketen fur LaTeX2e} by
+Markus Kohm, published by Lehmanns Media.  There are no further descriptions
+of these examples.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-atbegshi
   (package
     (name "texlive-atbegshi")
@@ -26633,6 +39242,48 @@ in places where the standard @code{verbatim} environment (which is based on a
 
 (define-deprecated-package texlive-latex-verbatimbox texlive-verbatimbox)
 
+(define-public texlive-verifica
+  (package
+    (name "texlive-verifica")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/verifica/"
+                   "source/latex/verifica/"
+                   "tex/latex/verifica/")
+             (base32
+              "1q7kdx7rywc98sdgycj33v8w3a3rk30qil5nqh9h0kgmc7a91mpc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/verifica")
+    (synopsis "Typeset (Italian high school) exercises")
+    (description
+     "This class provides various environments and commands to produce the
+typical exercises contained in a test.  It is mainly intended for Italian high
+school teachers, as the style is probably more in line with Italian high
+school tests.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-exam-zh
+  (package
+    (name "texlive-exam-zh")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/xelatex/exam-zh/" "tex/latex/exam-zh/")
+             (base32
+              "1p0zy0y2c75mq84n3bqbd39hw1phiyfl22q0fzid58v5ngcf0ip1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/exam-zh")
+    (synopsis "LaTeX template for Chinese exams")
+    (description
+     "This package provides a class @file{exam-zh.cls} suitable for Chinese
+exams of all types.  It also includes several module packages like
+@file{exam-zh-question.sty} and @file{exam-zh-choices.sty}, which can be used
+individually.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-examplep
   (package
     (name "texlive-examplep")
@@ -26718,6 +39369,22 @@ AMS-LaTeX, AMS-TeX, and plain TeX).  The distribution includes Michael Barr's
 
 (define-deprecated-package texlive-generic-xypic texlive-xypic)
 
+(define-public texlive-xypic-tut-pt
+  (package
+    (name "texlive-xypic-tut-pt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/xypic-tut-pt/")
+             (base32
+              "0d9ivdz5jnhnh3pg8qb2jn7qfxad06hxff65scyhdd6wbsfaizi9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xypic-tut-pt")
+    (synopsis "Tutorial for XY-pic, in Portuguese")
+    (description "This is a tutorial for XY-pic, in Portuguese.")
+    (license license:gpl3+)))
+
 (define-public texlive-bibtex
   (package
     (name "texlive-bibtex")
@@ -26744,6 +39411,32 @@ be specified in the document itself (one often needs a LaTeX citation-style
 package, such as @command{natbib} as well).")
     (license license:knuth)))
 
+(define-public texlive-charissil
+  (package
+    (name "texlive-charissil")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/charissil/"
+                   "fonts/enc/dvips/charissil/"
+                   "fonts/map/dvips/charissil/"
+                   "fonts/tfm/SIL/charissil/"
+                   "fonts/truetype/SIL/charissil/"
+                   "fonts/type1/SIL/charissil/"
+                   "fonts/vf/SIL/charissil/"
+                   "tex/latex/charissil/")
+             (base32
+              "0hdwxbck39xjkyq981fm3zxxkjw753mnr05jb7h7824k9x9wpfsl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/charissil")
+    (synopsis "CharisSIL fonts with support for all LaTeX engines")
+    (description
+     "This package provides the CharisSIL family of fonts adapted by SIL
+International from Bitstream Charter in TrueType format, with support for
+LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX.")
+    (license (list license:silofl1.1 license:lppl))))
+
 (define-public texlive-charter
   (package
     (name "texlive-charter")
@@ -27721,6 +40414,24 @@ effects, varying slide transitions and animations.")
 
 (define-deprecated-package texlive-latex-beamer texlive-beamer)
 
+(define-public texlive-beamer-tut-pt
+  (package
+    (name "texlive-beamer-tut-pt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/beamer-tut-pt/")
+             (base32
+              "0ayh3kbh11l4nyyzp2kcwzn0phqhzawppy044iyl1wwwc2v3zx5b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/beamer-tut-pt")
+    (synopsis "Introduction to the @code{beamer} class, in Portuguese")
+    (description
+     "This package provides an introduction to the @code{beamer} class, in
+Portuguese.")
+    (license license:gpl3+)))
+
 (define-public texlive-xmpincl
   (package
     (name "texlive-xmpincl")
@@ -27849,6 +40560,27 @@ not (yet) be used with other packages, since the implementation might
 change.")
     (license license:lppl1.3+)))
 
+(define-public texlive-yet-another-guide-latex2e
+  (package
+    (name "texlive-yet-another-guide-latex2e")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/yet-another-guide-latex2e/")
+             (base32
+              "1bxpk66cfmqc6g0d29vvfd4d6y83nhdxsb9gsfwqbh38yr6rlq1b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/yet-another-guide-latex2e")
+    (synopsis "Short guide to using LaTeX2e to typeset high quality documents")
+    (description
+     "This document is a short guide to using LaTeX2e to typeset high quality
+documents.  It focuses on users of Windows and guides the reader through
+installation, some of LaTeX's conventions, and creating the front matter, body
+and end matter.  The appendices contain a list of useful facilities not
+otherwise covered in this document and a list of helpful resources.")
+    (license license:fdl1.3+)))
+
 (define-public texlive-pstricks
   (package
     (name "texlive-pstricks")
@@ -27873,6 +40605,1905 @@ and with colour support.  There are macros for colouring or shading the cells
 of tables.")
     (license license:lppl1.3+)))
 
+(define-public texlive-pst-2dplot
+  (package
+    (name "texlive-pst-2dplot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-2dplot/"
+                   "tex/latex/pst-2dplot/")
+             (base32
+              "1lq39hdlqf4af16lx7qrs6x2hj10rsashgd3yl8659346a2mq75a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-2dplot")
+    (synopsis "PSTricks package for drawing 2D curves")
+    (description
+     "Pst-2dplot is a PSTricks package that offers an intuitive tool for
+plotting 2-d curves.  It defines an environment with commands similar to
+MATLAB for plotting.")
+    (license license:lppl)))
+
+(define-public texlive-pst-3d
+  (package
+    (name "texlive-pst-3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-3d/" "dvips/pst-3d/"
+                   "source/generic/pst-3d/"
+                   "tex/generic/pst-3d/" "tex/latex/pst-3d/")
+             (base32
+              "12gpsg14glcjavlwsb7g0dkxcax89z2adkx7p29cpzvssnimdj50")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-3d")
+    (synopsis "PSTricks package for tilting and other pseudo-3D tricks")
+    (description
+     "The package provides basic macros that use PSTricks for shadows, tilting
+and three dimensional representations of text or graphical objects.")
+    (license license:lppl)))
+
+(define-public texlive-pst-3dplot
+  (package
+    (name "texlive-pst-3dplot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-3dplot/"
+                   "dvips/pst-3dplot/"
+                   "tex/generic/pst-3dplot/"
+                   "tex/latex/pst-3dplot/")
+             (base32
+              "0k49c4kc126zacv2p2crdv00l50cg6kfpdnsa9m223naigifzf22")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-3dplot")
+    (synopsis "Draw 3D objects in parallel projection, using PSTricks")
+    (description
+     "This package provides a package using PSTricks to draw a large variety
+of graphs and plots, including 3D maths functions.  Data can be read from
+external data files, making this package a generic tool for graphing within
+TeX or LaTeX, without the need for external tools.")
+    (license license:lppl)))
+
+(define-public texlive-pst-abspos
+  (package
+    (name "texlive-pst-abspos")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-abspos/"
+                   "source/generic/pst-abspos/"
+                   "tex/generic/pst-abspos/"
+                   "tex/latex/pst-abspos/")
+             (base32
+              "12k786hfhp8vrq4a6a6caf6fi1p16hd79r3lf19d5vcyykppdcm8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-abspos")
+    (synopsis "Put objects at an absolute position")
+    (description
+     "This PSTricks package provides a command @code{\\pstPutAbs(x,y)} to put
+an object at an arbitrary absolute (or even a relative) position on the
+page.")
+    (license license:lppl)))
+
+(define-public texlive-pst-am
+  (package
+    (name "texlive-pst-am")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-am/"
+                   "source/generic/pst-am/" "tex/latex/pst-am/")
+             (base32
+              "1dyhjycy6ccamxcp65761gbszxpvxdsiirqbpljkywsbynwfcn6q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-am")
+    (synopsis "Simulation of modulation and demodulation")
+    (description
+     "The package allows the simulation of the modulated and demodulated
+amplitude of radio waves.  The user may plot curves of modulated signals, wave
+carrier, signal modulation, signal recovery and signal demodulation.")
+    (license license:lppl)))
+
+(define-public texlive-pst-antiprism
+  (package
+    (name "texlive-pst-antiprism")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-antiprism/"
+                   "dvips/pst-antiprism/"
+                   "tex/generic/pst-antiprism/"
+                   "tex/latex/pst-antiprism/")
+             (base32
+              "158691m8i8zd0w7d7vsbmkjm4y1ixfvj4j7bxszcw67cz2q2cmyi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-antiprism")
+    (synopsis "PSTricks related package which draws an antiprism")
+    (description
+     "@code{pst-antiprism} is a PSTricks related package which draws an antiprism,
+which is a semiregular polyhedron constructed with 2-gons and triangles.")
+    (license license:lppl)))
+
+(define-public texlive-pst-arrow
+  (package
+    (name "texlive-pst-arrow")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-arrow/"
+                   "tex/generic/pst-arrow/"
+                   "tex/latex/pst-arrow/")
+             (base32
+              "1z216b5189f390mdzxxcc240i0iav13nicqjqwcn31f4j4wclpzj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-arrow")
+    (synopsis "Special arrows for PSTricks")
+    (description
+     "This package has all the code from the package @code{pstricks-add},
+which was related to arrows, like multiple arrows and so on.")
+    (license license:lppl)))
+
+(define-public texlive-pst-asr
+  (package
+    (name "texlive-pst-asr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-asr/"
+                   "tex/generic/pst-asr/" "tex/latex/pst-asr/")
+             (base32
+              "0hxp905d2r4j2z8hfbl9v45xid20lm41k8xy52fdj5grpshhg2z1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-asr")
+    (synopsis "Typeset autosegmental representations for linguists")
+    (description
+     "The package allows the user to typeset autosegmental representations.")
+    (license license:lppl)))
+
+(define-public texlive-pst-bar
+  (package
+    (name "texlive-pst-bar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-bar/" "dvips/pst-bar/"
+                   "tex/generic/pst-bar/" "tex/latex/pst-bar/")
+             (base32
+              "19x8a3r09m28g6mpa98rz94274yahajznkkqarzwh1n8v54bb7hd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-bar")
+    (synopsis "Produces bar charts using PSTricks")
+    (description
+     "The package uses PSTricks to draw bar charts from data stored in
+a comma-delimited file.  Several types of bar charts may be drawn, and the
+drawing parameters are highly customizable.")
+    (license license:lppl)))
+
+(define-public texlive-pst-barcode
+  (package
+    (name "texlive-pst-barcode")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-barcode/"
+                   "dvips/pst-barcode/"
+                   "tex/generic/pst-barcode/"
+                   "tex/latex/pst-barcode/")
+             (base32
+              "10990hhhj961rizfffplx8v3rhnv7knm8nz2zd1aqp686fr3fkgv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-barcode")
+    (synopsis "Print barcodes using PostScript")
+    (description
+     "The @code{pst-barcode} package allows printing of barcodes, in a huge
+variety of formats, including quick-response (QR) codes.  As a PSTricks
+package, the package requires pstricks.  The package uses @code{PostScript}
+for calculating the bars.  For PDF output use a multi-pass mechansism such as
+@code{pst-pdf}.")
+    (license license:lppl)))
+
+(define-public texlive-pst-bezier
+  (package
+    (name "texlive-pst-bezier")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-bezier/"
+                   "dvips/pst-bezier/"
+                   "tex/generic/pst-bezier/"
+                   "tex/latex/pst-bezier/")
+             (base32
+              "181232snaqfjdc5mzazsdgjvmjn27pcfx45mydkk0cpp61kdr9yk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-bezier")
+    (synopsis "Draw Bezier curves")
+    (description
+     "The package provides a macro @code{\\psbcurve} for drawing a Bezier curve.
+Provision is made for full control of over all the control points of the
+curve.")
+    (license license:lppl)))
+
+(define-public texlive-pst-blur
+  (package
+    (name "texlive-pst-blur")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-blur/" "dvips/pst-blur/"
+                   "source/generic/pst-blur/"
+                   "tex/generic/pst-blur/"
+                   "tex/latex/pst-blur/")
+             (base32
+              "1zz5ixznkl3i59zlv9lxz7f1cfqwbar3qjy5x4323gmzjw2k9f8m")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-blur")
+    (synopsis "PSTricks package for blurred shadows")
+    (description
+     "Pst-blur is a package built for use with PSTricks.  It provides macros
+that apply blurring to the normal shadow function of PSTricks.")
+    (license license:lppl)))
+
+(define-public texlive-pst-bspline
+  (package
+    (name "texlive-pst-bspline")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-bspline/"
+                   "dvips/pst-bspline/"
+                   "tex/generic/pst-bspline/"
+                   "tex/latex/pst-bspline/")
+             (base32
+              "0djf1izf9779lgmbw5zhcz7k5hf8ay96nlgdgpsm1zj4ncwkpibg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-bspline")
+    (synopsis "Draw cubic Bspline curves and interpolations")
+    (description
+     "The package draws uniform, cubic B-spline curves, open and closed, based
+on a sequence of B-spline control points.  There is also code which permits
+drawing the open or closed cubic Bspline curve interpolating a sequence of
+points.  Graphical output is created using PStricks.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-calculate
+  (package
+    (name "texlive-pst-calculate")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-calculate/"
+                   "tex/latex/pst-calculate/")
+             (base32
+              "19yi0n8p4gj2p16nsk8f3i02a9adlqssyv57r67dc0qh6a0ipa9k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-calculate")
+    (synopsis "Support for floating point operations at LaTeX level")
+    (description
+     "This package provides an interface to the LaTeX3 floating point unit,
+mainly used for PSTricks related packages to allow math expressions at LaTeX
+level.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-calendar
+  (package
+    (name "texlive-pst-calendar")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-calendar/"
+                   "tex/latex/pst-calendar/")
+             (base32
+              "07vc1jxrr0n0iwjx6qjww53xji1pv42dvlc2ghi1r14nypgm8j5n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-calendar")
+    (synopsis "Plot calendars in fancy ways")
+    (description
+     "The package draws tabular calendars, or calendars on dodecahedra with
+a month to each face.  The package works for years 2000--2099, and has options
+for calendars in French German and English, but the documentation is not
+available in English.")
+    (license license:lppl)))
+
+(define-public texlive-pst-cie
+  (package
+    (name "texlive-pst-cie")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-cie/" "dvips/pst-cie/"
+                   "tex/generic/pst-cie/" "tex/latex/pst-cie/")
+             (base32
+              "0g5yry8m935idznwn486gn75vjyhbdzs2w99l0szh95026kd4f0a")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-cie")
+    (synopsis "CIE color space")
+    (description
+     "pst-cie is a PSTricks related package to show the different CIE color
+spaces: Adobe, CIE, ColorMatch, NTSC, Pal-Secam, ProPhoto, SMPTE, and sRGB.")
+    (license license:lppl)))
+
+(define-public texlive-pst-circ
+  (package
+    (name "texlive-pst-circ")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-circ/" "dvips/pst-circ/"
+                   "tex/generic/pst-circ/"
+                   "tex/latex/pst-circ/")
+             (base32
+              "0255xcjhm0jcgw352cmdn8d8062g2mihfzhii20zh4j0zznmk7hj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-circ")
+    (synopsis "PSTricks package for drawing electric circuits")
+    (description
+     "The package can easily draw current 2-terminal devices and some 3- and
+4-terminal devices used in electronic or electric theory.  The package's
+macros are designed with a view to logical representation of circuits, as far
+as possible, so as to relieve the user of purely graphical considerations when
+expressing a circuit.")
+    (license license:lppl)))
+
+(define-public texlive-pst-coil
+  (package
+    (name "texlive-pst-coil")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-coil/" "dvips/pst-coil/"
+                   "tex/generic/pst-coil/"
+                   "tex/latex/pst-coil/")
+             (base32
+              "0d3wqrv19zc9qwp3gbr32siad408z4g23k5861p0hqy2hw8f908q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-coil")
+    (synopsis "PSTricks package for coils, etc")
+    (description
+     "Pst-coil is a PSTricks based package for coils and zigzags and for coil
+and zigzag node connections.")
+    (license license:lppl)))
+
+(define-public texlive-pst-contourplot
+  (package
+    (name "texlive-pst-contourplot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-contourplot/"
+                   "tex/generic/pst-contourplot/"
+                   "tex/latex/pst-contourplot/")
+             (base32
+              "00nqg59x1x3nh30cclqjdyyyjzinyl9czjfywznh68dzari1fvqk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-contourplot")
+    (synopsis
+     "Draw implicit functions using the marching squares algorithm")
+    (description
+     "This package allows to draw implicit functions @samp{f(x,y) = 0} with
+options for coloring the inside of the surfaces, for marking the points and
+arrowing the curve at points chosen by the user.  The package uses the
+marching squares algorithm.")
+    (license license:lppl)))
+
+(define-public texlive-pst-cox
+  (package
+    (name "texlive-pst-cox")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-cox/" "dvips/pst-cox/"
+                   "tex/generic/pst-cox/" "tex/latex/pst-cox/")
+             (base32
+              "1bw2qmsc735q3ji4h7l166s37wcpd6s4fvi98ggagndm29mcbia3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-cox")
+    (synopsis "Drawing regular complex polytopes with PSTricks")
+    (description
+     "Pst-cox is a PSTricks package for drawing 2-dimensional projections of
+complex regular polytopes (after the work of Coxeter).  The package consists
+of a macro library for drawing the projections.  The complex polytopes appear
+in the study of the root systems and play a crucial role in many domains
+related to mathematics and physics.  These polytopes have been completely
+described by Coxeter in his book @emph{Regular Complex Polytopes}.  There
+exist only a finite numbers of exceptional regular complex polytopes (for
+example the icosahedron) and some infinite series (for example, one can
+construct a multi-dimensional analogue of the hypercube in any finite
+dimension).
+
+The library contains two packages.  The first, @code{pst-coxcoor}, is devoted
+to the exceptional complex regular polytopes whose coordinates have been
+pre-computed.  The second, @code{pst-coxeterp}, is devoted to the infinite
+series.")
+    (license license:lgpl3+)))
+
+(define-public texlive-pst-dart
+  (package
+    (name "texlive-pst-dart")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-dart/"
+                   "tex/generic/pst-dart/"
+                   "tex/latex/pst-dart/")
+             (base32
+              "1834hxlg4hfqmrl6k5i2c1jimzd0lcdi6x82b8lfj8dhnddlbgzr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-dart")
+    (synopsis "Plotting dart boards")
+    (description
+     "@code{pst-dart} is a PSTricks related package and draws dart boards.
+Optional arguments are the unit and the fontsize.")
+    (license license:lppl)))
+
+(define-public texlive-pst-dbicons
+  (package
+    (name "texlive-pst-dbicons")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-dbicons/"
+                   "source/generic/pst-dbicons/"
+                   "tex/latex/pst-dbicons/")
+             (base32
+              "0pzfahir5vvxw28095myqppfpyik7agzncm9vm42gvldw45byr4q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-dbicons")
+    (synopsis "Support for drawing ER diagrams")
+    (description
+     "The package provides some useful macros in the database area.  The
+package focusses on typesetting ER-Diagrams in a declarative style, i.e., by
+positioning some nodes and defining the position of all other nodes relative
+to them by using the standard database terminology.")
+    (license license:lppl)))
+
+(define-public texlive-pst-diffraction
+  (package
+    (name "texlive-pst-diffraction")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-diffraction/"
+                   "source/generic/pst-diffraction/"
+                   "tex/generic/pst-diffraction/"
+                   "tex/latex/pst-diffraction/")
+             (base32
+              "1wi67md3046nj0arqi1wmbgdhdrsnfqgmmb0ayk2iswfhvx32myr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-diffraction")
+    (synopsis "Print diffraction patterns from various apertures")
+    (description
+     "The package enables the user to draw (using PSTricks) the diffraction
+patterns for different geometric forms of apertures for monochromatic light.
+The aperture stops can have rectangular, circular or triangular openings.  The
+view of the diffraction may be planar, or three-dimensional.  Options
+available are the dimensions of the aperture under consideration and of the
+particular optical setting, e.g., the radius in case of an circular opening.
+Moreover one can choose the wavelength of the light (the associated color will
+be calculated by the package).")
+    (license license:lppl)))
+
+(define-public texlive-pst-electricfield
+  (package
+    (name "texlive-pst-electricfield")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-electricfield/"
+                   "dvips/pst-electricfield/"
+                   "source/generic/pst-electricfield/"
+                   "tex/generic/pst-electricfield/"
+                   "tex/latex/pst-electricfield/")
+             (base32
+              "1awc5nqp7giqmczx1xd1y78j5vgsw7y8m767mbhgs5j12j3yl4yd")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-electricfield")
+    (synopsis "Draw electric field and equipotential lines with PSTricks")
+    (description
+     "The package provides macros to plot electric field and equipotential
+lines using PStricks.  There may be any number of charges which can be placed
+in a cartesian coordinate system.")
+    (license license:lppl)))
+
+(define-public texlive-pst-eps
+  (package
+    (name "texlive-pst-eps")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-eps/"
+                   "source/generic/pst-eps/"
+                   "tex/generic/pst-eps/" "tex/latex/pst-eps/")
+             (base32
+              "1lf106rw3w6gicn6021jpj4bgbpgjyixp64l9aqqxn6ip6vm4yh3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-eps")
+    (synopsis "Create EPS files from PSTricks figures")
+    (description
+     "Pst-eps is a PSTricks-based package for exporting PSTricks images on the
+fly to encapsulated PostScript (EPS) image files, which can then be read into
+a document in the usual way.")
+    (license license:lppl)))
+
+(define-public texlive-pst-eucl
+  (package
+    (name "texlive-pst-eucl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-eucl/" "dvips/pst-eucl/"
+                   "tex/generic/pst-eucl/"
+                   "tex/latex/pst-eucl/")
+             (base32
+              "070f7chfvj65mhhdnghblhlq0ywvy76bw17dcb8519ixra6p4f4d")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-eucl")
+    (synopsis "Euclidian geometry with PSTricks")
+    (description
+     "The package allows the drawing of Euclidean geometric figures using TeX
+PSTricks macros for specifying mathematical constraints.  It is thus possible
+to build point using common transformations or intersections.  The use of
+coordinates is limited to points which controlled the figure.")
+    (license license:lppl)))
+
+(define-public texlive-pst-eucl-translation-bg
+  (package
+    (name "texlive-pst-eucl-translation-bg")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-eucl-translation-bg/")
+             (base32
+              "06c9ajnfl01sl81z5r8a5lzmaygq9rdmgym2v40y7xp7z033gwwv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-eucl-translation-bg")
+    (synopsis "Bulgarian translation of the @code{pst-eucl} documentation")
+    (description
+     "The package provides the @code{pst-eucl} package documentation in
+Bulgarian language.")
+    (license license:lppl)))
+
+(define-public texlive-pst-exa
+  (package
+    (name "texlive-pst-exa")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-exa/" "tex/latex/pst-exa/")
+             (base32
+              "1jbkk5nircdv0mas1vbydqhca1r5vcmrxyyi5xwzi1qhfbw3xa8g")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-exa")
+    (synopsis "Typeset PSTricks examples, with code")
+    (description
+     "The (PSTricks-related) package provides an environment @code{PSTexample}
+to put code and output side by side or one above the other.")
+    (license license:lppl)))
+
+(define-public texlive-pst-feyn
+  (package
+    (name "texlive-pst-feyn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-feyn/" "dvips/pst-feyn/"
+                   "tex/generic/pst-feyn/"
+                   "tex/latex/pst-feyn/")
+             (base32
+              "08m8pwl5kk2rs835pnksap8ld6ir0chlbswchgpvks229i6gkrj0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-feyn")
+    (synopsis "Draw graphical elements for Feynman diagrams")
+    (description
+     "@code{pst-feyn} is a set of drawing graphical elements which are used
+for Feynman diagrams.")
+    (license license:lppl)))
+
+(define-public texlive-pst-fill
+  (package
+    (name "texlive-pst-fill")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-fill/"
+                   "tex/generic/pst-fill/"
+                   "tex/latex/pst-fill/")
+             (base32
+              "0anzq671nsprckhy92ybp2y93g5f2z1s0qja9wx2mrjpb4xq8ng0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-fill")
+    (synopsis "Fill or tile areas with PSTricks")
+    (description
+     "Pst-fill is a PSTricks-based package for filling and tiling areas or
+characters.")
+    (license license:lppl)))
+
+(define-public texlive-pst-fit
+  (package
+    (name "texlive-pst-fit")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-fit/"
+                   "tex/generic/pst-fit/" "tex/latex/pst-fit/")
+             (base32
+              "0w2vnd6zb9vdrqbk256ynr7lg7p9ps53rrdq9l999bw8f8vip1as")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-fit")
+    (synopsis "Macros for curve fitting")
+    (description
+     "The package uses PSTricks to fit curves to: linear functions; power
+functions; exp function; logarithm functions; Recip; Kings Law data; Gaussian;
+and fourth order polynomials.")
+    (license license:lppl)))
+
+(define-public texlive-pst-flags
+  (package
+    (name "texlive-pst-flags")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-flags/"
+                   "tex/latex/pst-flags/")
+             (base32
+              "13078q4mg1r8hg5zvywfasfz26phcr9dvsw4s05spc116b8fz9gn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-flags")
+    (synopsis "Draw flags of countries using PSTricks")
+    (description
+     "This package provides a number of macros for rendering flags of
+countries and their associated artefacts using PSTricks.  Formatting of the
+resulting drawings is entirely controlled by TeX macros.  A good working
+knowledge of LaTeX should be sufficient to design flags of sovereign countries
+and adapt them to create new designs.  Features such as color or shape
+customisation and dynamic modifications are possible by cleverly adjusting the
+options supplied to the TeX macros.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-fr3d
+  (package
+    (name "texlive-pst-fr3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-fr3d/"
+                   "source/generic/pst-fr3d/"
+                   "tex/generic/pst-fr3d/"
+                   "tex/latex/pst-fr3d/")
+             (base32
+              "0y8xsq6wklpygzf0lfdy683vkdrglw5jl00qyfwk6rl08wb4l17y")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-fr3d")
+    (synopsis "Draw 3-dimensional framed boxes using PSTricks")
+    (description
+     "This package provides a package using PSTricks to draw three dimensional
+framed boxes using a macro @code{\\PstFrameBoxThreeD}.  The macro is
+especially useful for drawing 3D-seeming buttons.")
+    (license license:lppl)))
+
+(define-public texlive-pst-fractal
+  (package
+    (name "texlive-pst-fractal")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-fractal/"
+                   "dvips/pst-fractal/"
+                   "tex/generic/pst-fractal/"
+                   "tex/latex/pst-fractal/")
+             (base32
+              "0jc9zwjp23l6njr7y63jh0xv4a6qy2610bb88fdiwdsqnh70gs72")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-fractal")
+    (synopsis "Draw fractal sets using PSTricks")
+    (description
+     "The package uses PSTricks to draw the Julia and Mandelbrot sets, the
+Sierpinski triangle, Koch flake, and Apollonius Circle as well as fractal
+trees (which need not be balanced) with a variety of different
+parameters (including varying numbers of iterations).")
+    (license license:lppl)))
+
+(define-public texlive-pst-fun
+  (package
+    (name "texlive-pst-fun")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-fun/" "dvips/pst-fun/"
+                   "source/generic/pst-fun/"
+                   "tex/generic/pst-fun/" "tex/latex/pst-fun/")
+             (base32
+              "070nv0yv0rcfvx36xmya953pk89whrr26irvy0ccb41k66fvw5j1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-fun")
+    (synopsis "Draw funny objects with PSTricks")
+    (description
+     "This is a PSTricks related package for drawing funny objects, like ant, bird,
+fish, kangaroo, etc.  Such objects may be useful for testing other PSTricks
+macros and/or packages. (Or they can be used for fun...)")
+    (license license:lppl)))
+
+(define-public texlive-pst-func
+  (package
+    (name "texlive-pst-func")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-func/" "dvips/pst-func/"
+                   "tex/generic/pst-func/"
+                   "tex/latex/pst-func/")
+             (base32
+              "01ibjcyb71l5wqm0x2vq3i4by7q0hp6jmghyw9gkrapmdlwqig5q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-func")
+    (synopsis "PSTricks package for plotting mathematical functions")
+    (description
+     "The package is built for use with PSTricks.  It provides macros for
+plotting and manipulating various mathematical functions:
+
+@itemize
+@item polynomials and their derivatives,
+@item Fourier sums,
+@item the Bessel function defined by its order;
+@item the Gauss function defined by sigma and mu,
+@item Bezier curves from order 1 (two control points) to order 9 (10 control
+points),
+@item the superellipse function (the Lame curve),
+@item Chebyshev polynomials of the first and second kind,
+@item the Thomae (or popcorn) function,
+@item the Weierstrass function,
+@item various integration-derived functions: normal, binomial, poisson, gamma,
+chi-squared, student's t, F, beta, Cauchy and Weibull distribution functions
+and the Lorenz curve,
+@item the zeroes of a function, or the intermediate point of two functions,
+@item the Vasicek function for describing the evolution of interest rates,
+@item implicit functions.
+@end itemize
+
+The plots may be generated as volumes of rotation about the X-axis, as well.")
+    (license license:lppl)))
+
+(define-public texlive-pst-gantt
+  (package
+    (name "texlive-pst-gantt")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-gantt/"
+                   "tex/generic/pst-gantt/"
+                   "tex/latex/pst-gantt/")
+             (base32
+              "1ziahdc0r8pkxxn6p6ijrx1diihkbbrmwbbc1pzi1sddqg05l5sc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-gantt")
+    (synopsis "Draw GANTT charts with PSTricks")
+    (description
+     "The package uses PSTricks to draw GANTT charts, which are a kind of bar
+chart that displays a project schedule.")
+    (license license:lppl)))
+
+(define-public texlive-pst-geo
+  (package
+    (name "texlive-pst-geo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-geo/" "dvips/pst-geo/"
+                   "tex/generic/pst-geo/" "tex/latex/pst-geo/")
+             (base32
+              "1zqmjjg9zmmzjqmhx2jwcc761f1rrxcchsnrd5s686f9p6z4w7c6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-geo")
+    (synopsis "Geographical projections")
+    (description
+     "The package offers a set of PSTricks related packages for various
+cartographic projections of the terrestrial sphere.  The package
+@code{pst-map2d} provides conventional projections such as Mercator, Lambert,
+cylindrical, etc.  The package @code{pst-map3d} treats representation in three
+dimensions of the terrestrial sphere.  Packages @code{pst-map2dII} and
+@code{pst-map3dII} allow use of the CIA World DataBank II. Various parameters
+of the packages allow for choice of the level of the detail and the layouts
+possible (cities, borders, rivers etc).  Substantial data files are provided,
+in an (internally) compressed format.  Decompression happens on-the-fly as
+a document using the data is displayed, printed or converted to PDF format.
+A Perl script is provided for the user to do the decompression, if the need
+should arise.")
+    (license license:lppl)))
+
+(define-public texlive-pst-geometrictools
+  (package
+    (name "texlive-pst-geometrictools")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-geometrictools/"
+                   "tex/generic/pst-geometrictools/"
+                   "tex/latex/pst-geometrictools/")
+             (base32
+              "14mhyjq8w3llkyjij274n5sdwbp3ak2xi6q6ggqdakgn032a7yhn")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-geometrictools")
+    (synopsis "PSTricks package to draw geometric tools")
+    (description
+     "This PSTricks package facilitates the drawing of protractors, rulers,
+compasses and pencils.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-gr3d
+  (package
+    (name "texlive-pst-gr3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-gr3d/"
+                   "source/latex/pst-gr3d/"
+                   "tex/generic/pst-gr3d/"
+                   "tex/latex/pst-gr3d/")
+             (base32
+              "0pppd4l4yrdgy0vss8l2kndd0cg9nxip7d7vcyrfr0cz9kw0z45n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-gr3d")
+    (synopsis "Three dimensional grids with PSTricks")
+    (description
+     "This PSTricks package provides a command @code{\\PstGridThreeD} that
+will draw a three dimensional grid, offering a number of options for its
+appearance.")
+    (license license:lppl)))
+
+(define-public texlive-pst-grad
+  (package
+    (name "texlive-pst-grad")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-grad/" "dvips/pst-grad/"
+                   "tex/generic/pst-grad/"
+                   "tex/latex/pst-grad/")
+             (base32
+              "10b8b7mb6c1kkwvwrq31zwmn184qprd69ckypp0gs5s1nz9klc4l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-grad")
+    (synopsis "Filling with colour gradients, using PSTricks")
+    (description
+     "The package fills with colour gradients, using PSTricks.  The RGB, CMYK
+and HSB models are supported.  Other colour gradient mechanisms are to be
+found in package @code{pst-slpe}.")
+    (license license:lppl)))
+
+(define-public texlive-pst-graphicx
+  (package
+    (name "texlive-pst-graphicx")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-graphicx/"
+                   "tex/generic/pst-graphicx/")
+             (base32
+              "0x1053a92hi1msbmw7s0222k0vfg28172qrinz3hdv94igaxi38q")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-graphicx")
+    (synopsis "PSTricks-compatible @code{graphicx} for use with Plain TeX")
+    (description
+     "The package provides a version of @code{graphicx} that avoids loading
+the graphics bundle's (original) @code{keyval} package, which clashes with
+PSTricks use of @code{xkeyval}.")
+    (license license:lppl)))
+
+(define-public texlive-pst-hsb
+  (package
+    (name "texlive-pst-hsb")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-hsb/"
+                   "tex/generic/pst-hsb/" "tex/latex/pst-hsb/")
+             (base32
+              "0cv81bbkg2yhszjs2y7b5vs241y272by5mcb7adg347jzyrs8s74")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-hsb")
+    (synopsis "Curves with continuous colours")
+    (description
+     "This is a PSTricks-related package.  It can plot lines and/or curves
+with continuous colours.  Only colours defined in the HSB model are
+supported.")
+    (license license:lppl)))
+
+(define-public texlive-pst-infixplot
+  (package
+    (name "texlive-pst-infixplot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-infixplot/"
+                   "tex/generic/pst-infixplot/"
+                   "tex/latex/pst-infixplot/")
+             (base32
+              "07yqjzznayk3pjbsaxjz5b63hiabmkdywv2h6kshpjqmh2q1zi6w")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-infixplot")
+    (synopsis "Use PSTricks plotting capacities with infix expressions")
+    (description
+     "Plotting functions with pst-plot is very powerful but sometimes
+difficult to learn since the syntax of @code{\\psplot} and
+@code{\\parametricplot} requires some PostScript knowledge.  The infix-RPN and
+@code{pst-infixplot} styles simplify the usage of @code{pst-plot} for the
+beginner, providing macro commands that convert natural mathematical
+expressions to PostScript syntax.")
+    (license license:lppl)))
+
+(define-public texlive-pst-intersect
+  (package
+    (name "texlive-pst-intersect")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-intersect/"
+                   "dvips/pst-intersect/"
+                   "source/latex/pst-intersect/"
+                   "tex/generic/pst-intersect/"
+                   "tex/latex/pst-intersect/")
+             (base32
+              "157yqj923kikm8abiv3giyf9rrr6cw0jwqj37ri5ya5iyxlfvmmv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-intersect")
+    (synopsis "Compute intersections of arbitrary curves")
+    (description
+     "The package computes the intersections between arbitrary PostScript
+paths or Bezier curves, using the Bezier clipping algorithm.")
+    (license license:lppl)))
+
+(define-public texlive-pst-jtree
+  (package
+    (name "texlive-pst-jtree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-jtree/"
+                   "tex/generic/pst-jtree/"
+                   "tex/latex/pst-jtree/")
+             (base32
+              "07vzx418syv1v04z1552k9iwjz4b4kmw7g2m1i4nqdfg2lvina8s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-jtree")
+    (synopsis "Typeset complex trees for linguists")
+    (description
+     "jTree uses PSTricks to enable linguists to typeset complex trees.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-knot
+  (package
+    (name "texlive-pst-knot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-knot/" "dvips/pst-knot/"
+                   "tex/generic/pst-knot/"
+                   "tex/latex/pst-knot/")
+             (base32
+              "1b69m4qwd37vd3x734r4hp4wzsirsp6k5m87yqmxlhlkrf0wmrwc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-knot")
+    (synopsis "PSTricks package for displaying knots")
+    (description
+     "The package can produce a fair range of knot shapes, with all the
+standard graphics controls one expects.")
+    (license license:lppl)))
+
+(define-public texlive-pst-labo
+  (package
+    (name "texlive-pst-labo")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-labo/"
+                   "tex/generic/pst-labo/"
+                   "tex/latex/pst-labo/")
+             (base32
+              "10c2qv2fpijb49yn7p00b116icimhiva5kq0bfgj2975y90fncjb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-labo")
+    (synopsis "Draw objects for Chemistry laboratories")
+    (description
+     "Pst-labo is a PSTricks related package for drawing basic and complex
+chemical objects.  The documentation of the package is illuminated with plenty
+of illustrations together with their source code, making it an easy read.")
+    (license license:lppl)))
+
+(define-public texlive-pst-layout
+  (package
+    (name "texlive-pst-layout")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-layout/"
+                   "tex/latex/pst-layout/")
+             (base32
+              "1f07j551kiajqyrfjlsj7xk40zv18ik2b3fih5iyzkf4zk4f650r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-layout")
+    (synopsis "Page layout macros based on PSTricks packages")
+    (description
+     "The package provides a means of creating elaborate (``pseudo-tabular'')
+layouts of material, typically to be overlaid on an included graphic.")
+    (license license:lppl)))
+
+(define-public texlive-pst-lens
+  (package
+    (name "texlive-pst-lens")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-lens/"
+                   "source/generic/pst-lens/"
+                   "tex/generic/pst-lens/"
+                   "tex/latex/pst-lens/")
+             (base32
+              "0h2930i4izgfjk96445yiwsk6x8cg5cl4zlqrg5rsv7nr2k8njy3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-lens")
+    (synopsis "Lenses with PSTricks")
+    (description
+     "This PSTricks package provides a really rather simple command
+@code{\\PstLens} that will draw a lens.  Command parameters provide
+a remarkable range of effects.")
+    (license license:lppl)))
+
+(define-public texlive-pst-light3d
+  (package
+    (name "texlive-pst-light3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-light3d/"
+                   "dvips/pst-light3d/"
+                   "source/generic/pst-light3d/"
+                   "tex/generic/pst-light3d/"
+                   "tex/latex/pst-light3d/")
+             (base32
+              "0kwdbf64m2kmplk4r7ifxckajh3d5sgjini70fmababnrp1g8nzf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-light3d")
+    (synopsis "Three dimensional lighting effects (PSTricks)")
+    (description
+     "This package provides a PSTricks package for three dimensional lighting
+effects on characters and PSTricks graphics, like lines, curves, plots, ...")
+    (license license:lppl)))
+
+(define-public texlive-pst-lsystem
+  (package
+    (name "texlive-pst-lsystem")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-lsystem/"
+                   "dvips/pst-lsystem/"
+                   "tex/generic/pst-lsystem/"
+                   "tex/latex/pst-lsystem/")
+             (base32
+              "1k3krdcfqa5cyzaq0jp8dzil6arfvs5ah2mp87460pl2wvfza0lr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-lsystem")
+    (synopsis "Create images based on a L-system")
+    (description
+     "@code{pst-lsystem} is a PSTricks based package for creating images based
+on a L-system.  A L-system (Lindenmayer system) is a set of rules which can be
+used to model the morphology of a variety of organisms or fractals like the
+Kochflake or Hilbert curve.")
+    (license license:lppl)))
+
+(define-public texlive-pst-magneticfield
+  (package
+    (name "texlive-pst-magneticfield")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-magneticfield/"
+                   "dvips/pst-magneticfield/"
+                   "tex/generic/pst-magneticfield/"
+                   "tex/latex/pst-magneticfield/")
+             (base32
+              "0gxz7yfj16b23lwn5pq68r8yb6klm7xhmq5m0addmrq1dvb3id5n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-magneticfield")
+    (synopsis "Plotting a magnetic field with PSTricks")
+    (description
+     "@code{pst-magneticfield} is a PSTricks related package to draw the
+magnetic field lines of Helmholtz coils in a two or three dimensional view.
+There are several parameters to create a different output.")
+    (license license:lppl)))
+
+(define-public texlive-pst-marble
+  (package
+    (name "texlive-pst-marble")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-marble/"
+                   "dvips/pst-marble/"
+                   "tex/generic/pst-marble/"
+                   "tex/latex/pst-marble/")
+             (base32
+              "1j5jags1m4wwwfkd25n57q49ggdwc7b9qjp8da4q255yf0i54w91")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-marble")
+    (synopsis "PSTricks package to draw marble-like patterns")
+    (description "This is a PSTricks package to draw marble-like patterns.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-math
+  (package
+    (name "texlive-pst-math")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-math/" "dvips/pst-math/"
+                   "tex/generic/pst-math/"
+                   "tex/latex/pst-math/")
+             (base32
+              "1h9fg3wz7k28kgmlanli8jzz8kqif11lf0y50w5wxrnaasdmh1ib")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-math")
+    (synopsis "Enhancement of PostScript math operators to use with PSTricks")
+    (description
+     "PostScript lacks a lot of basic operators such as tan, acos, asin, cosh,
+sinh, tanh, acosh, asinh, atanh, exp (with e base).  Also (oddly) cos and sin
+use arguments in degrees.  Pst-math provides all those operators in a header
+file @file{pst-math.pro} with wrappers @file{pst-math.sty} and
+@file{pst-math.tex}.  In addition, sinc, gauss, gammaln and bessel are
+implemented (only partially for the latter).  The package is designed
+essentially to work with @code{pst-plot} but can be used in whatever PS code.
+The package also provides a routine SIMPSON for numerical integration and
+a solver of linear equation systems.")
+    (license license:lppl)))
+
+(define-public texlive-pst-mirror
+  (package
+    (name "texlive-pst-mirror")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-mirror/"
+                   "dvips/pst-mirror/"
+                   "tex/generic/pst-mirror/"
+                   "tex/latex/pst-mirror/")
+             (base32
+              "0b2q1islf9mwphzcs6g04vq69hlmyisx4rb5fb77yiw3na5xlnq0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-mirror")
+    (synopsis "Images on a spherical mirror")
+    (description
+     "The package provides commands and supporting PostScript material for
+drawing images as if reflected by a spherical mirror.")
+    (license license:lppl)))
+
+(define-public texlive-pst-moire
+  (package
+    (name "texlive-pst-moire")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-moire/" "dvips/pst-moire/"
+                   "tex/generic/pst-moire/"
+                   "tex/latex/pst-moire/")
+             (base32
+              "0i2p5b2cfhnbmszcs5ydlk4nfxhwgl84kq148kpg6cx07gg8rr6l")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-moire")
+    (synopsis "PSTricks package to draw moiré patterns")
+    (description "This is a PSTricks package to draw moiré patterns.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-node
+  (package
+    (name "texlive-pst-node")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-node/" "dvips/pst-node/"
+                   "tex/generic/pst-node/"
+                   "tex/latex/pst-node/")
+             (base32
+              "0w9j1l5hlid98sp6hm7ny0z3nh6jcccvxglprq0wr08w89zb7dmz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-node")
+    (synopsis "Nodes and node connections in PSTricks")
+    (description
+     "The package enables the user to connect information, and to place labels,
+without knowing (in advance) the actual positions of the items to be
+connected, or where the connecting line should go.  The macros are useful for
+making graphs and trees, mathematical diagrams, linguistic syntax diagrams,
+and so on.")
+    (license license:lppl)))
+
+(define-public texlive-pst-ob3d
+  (package
+    (name "texlive-pst-ob3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-ob3d/"
+                   "source/generic/pst-ob3d/"
+                   "tex/generic/pst-ob3d/"
+                   "tex/latex/pst-ob3d/")
+             (base32
+              "1j6y3v4x5gkshzxnmklwl2hqbz7nr904v1qa1dr9l4m814p2jhcc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-ob3d")
+    (synopsis "Three dimensional objects using PSTricks")
+    (description
+     "The package uses PSTricks to provide basic three-dimensional objects.
+As yet, only cubes (which can be deformed to rectangular parallelipipeds) and
+dies (which are only a special kind of cubes) are defined.")
+    (license license:lppl)))
+
+(define-public texlive-pst-ode
+  (package
+    (name "texlive-pst-ode")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-ode/" "dvips/pst-ode/"
+                   "tex/generic/pst-ode/" "tex/latex/pst-ode/")
+             (base32
+              "0mx6wsdl4m0nr6848qpyfi6rn7x1nsqljnflsp0yk010r0vsmid5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-ode")
+    (synopsis
+     "Solve initial value problems for sets of Ordinary Differential
+Equations")
+    (description
+     "The package defines @code{\\pstODEsolve} for solving initial value
+problems for sets of Ordinary Differential Equations (ODE) using the
+Runge-Kutta-Fehlberg (RKF45) method with automatic step size adjustment.  The
+result is stored as a PostScript object and may be plotted later using macros
+from other PSTricks packages, such as @code{\\listplot} (from @code{pst-plot})
+and @code{\\listplotThreeD} (from @code{pst-3dplot}), or may be further
+processed by user-defined PostScript procedures.  Optionally, the computed
+state vectors can be written as a table to a text file.")
+    (license license:lppl)))
+
+(define-public texlive-pst-optexp
+  (package
+    (name "texlive-pst-optexp")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-optexp/" "dvips/pst-optexp/"
+                   "makeindex/pst-optexp/"
+                   "source/latex/pst-optexp/"
+                   "tex/latex/pst-optexp/")
+             (base32
+              "0m835c700a6bxd8r8m84injzz862j1xdxbbh8waxh97yrfwmhp45")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-optexp")
+    (synopsis "Drawing optical experimental setups")
+    (description
+     "The package is a collection of optical components that facilitate easy
+sketching of optical experimental setups.  The package uses PSTricks for its
+output.  A wide range of free-ray and fibre components is provided, the
+alignment, positioning and labelling of which can be achieved in very simple
+and flexible ways.  The components may be connected with fibers or beams, and
+realistic raytraced beam paths are also possible.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-optic
+  (package
+    (name "texlive-pst-optic")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-optic/"
+                   "tex/generic/pst-optic/"
+                   "tex/latex/pst-optic/")
+             (base32
+              "1qgxqygcfv3v6wkf6igkyp5aimp9f9nvfyizcwlxlxr32mjvvbly")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-optic")
+    (synopsis "Drawing optics diagrams")
+    (description
+     "This package provides a package for drawing both reflective and
+refractive optics diagrams.")
+    (license license:lppl)))
+
+(define-public texlive-pst-osci
+  (package
+    (name "texlive-pst-osci")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-osci/"
+                   "tex/generic/pst-osci/"
+                   "tex/latex/pst-osci/")
+             (base32
+              "0h7wnpm26z8v904yj0wvadrjsh3j5fsn73ihilxhb4zd88zqib99")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-osci")
+    (synopsis "Oscgons with PSTricks")
+    (description
+     "This PSTricks package enables you to produce oscilloscope screen shots.
+Three channels can be used to represent the most common signals (damped or
+not): namely sinusoidal, rectangular, triangular, dog's tooth (left and right
+oriented).  The third channel allows you to add, to subtract or to multiply
+the two other signals.  Lissajous diagrams (XY-mode) can also be obtained.")
+    (license license:lppl)))
+
+(define-public texlive-pst-ovl
+  (package
+    (name "texlive-pst-ovl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-ovl/" "dvips/pst-ovl/"
+                   "tex/generic/pst-ovl/" "tex/latex/pst-ovl/")
+             (base32
+              "0v9f4k475cm922y7i2x6w6p1w3nnbaw69rniznwap9bhliv0ynfg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-ovl")
+    (synopsis "Create and manage graphical overlays")
+    (description
+     "The package is useful when building an image from assorted material, as
+in the slides of a projected presentation.")
+    (license license:lppl)))
+
+(define-public texlive-pst-pad
+  (package
+    (name "texlive-pst-pad")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-pad/"
+                   "source/generic/pst-pad/"
+                   "tex/generic/pst-pad/" "tex/latex/pst-pad/")
+             (base32
+              "1vvgjf2g9dynjg1y6dm1d47v40sga4a34ngyy3h5lfmy58860jri")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-pad")
+    (synopsis "Draw simple attachment systems with PSTricks")
+    (description
+     "The package collects a set of graphical elements based on PStricks that
+can be used to facilitate display of attachment systems such as two
+differently shaped surfaces with or without a fluid wedged in between.  These
+macros ease the display of wet adhesion models and common friction systems
+such as boundary lubrication, elastohydrodynamic lubrication and hydrodynamic
+lubrication.")
+    (license license:lppl)))
+
+(define-public texlive-pst-pdf
+  (package
+    (name "texlive-pst-pdf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-pdf/" "scripts/pst-pdf/"
+                   "source/latex/pst-pdf/" "tex/latex/pst-pdf/")
+             (base32
+              "1as5q9p6z9y3ps3hm8v8par18xmxmhrcxmknpl6rhjq0wbyjlj26")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "ps4pdf")))
+    (home-page "https://ctan.org/pkg/pst-pdf")
+    (synopsis "Make PDF versions of graphics by processing between runs")
+    (description
+     "The package @code{pst-pdf} simplifies the use of graphics from PSTricks
+and other PostScript code in PDF documents.  As in building a bibliography
+with BibTeX, additional external programmes are invoked.  In this case they
+are used to create a PDF file that will contain all the graphics material.  In
+the final document these contents will be inserted instead of the original
+PostScript code.")
+    (license license:lppl1.2+)))
+
+(define-public texlive-pst-pdgr
+  (package
+    (name "texlive-pst-pdgr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-pdgr/"
+                   "source/generic/pst-pdgr/"
+                   "tex/generic/pst-pdgr/"
+                   "tex/latex/pst-pdgr/")
+             (base32
+              "08v28601j7ygp7d8xliwhfbrl2gh93ikf6kbl4p86wfxsbxlhg0c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-pdgr")
+    (synopsis "Draw medical pedigrees using PSTricks")
+    (description
+     "The package provides a set of macros based on PSTricks to draw medical
+pedigrees according to the recommendations for standardized human pedigree
+nomenclature.  The drawing commands place the symbols on a @code{pspicture}
+canvas.  An interface for making trees is also provided.  The package may be
+used both with LaTeX and PlainTeX.  A separate Perl program for generating TeX
+files from spreadsheets is available.")
+    (license license:lppl)))
+
+(define-public texlive-pst-perspective
+  (package
+    (name "texlive-pst-perspective")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-perspective/"
+                   "tex/generic/pst-perspective/"
+                   "tex/latex/pst-perspective/")
+             (base32
+              "0dm7qqar0kjnc68xwhp7vn4m8bcsmzcs6qzh61ainbls7gni5aq8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-perspective")
+    (synopsis "Draw perspective views using PSTricks")
+    (description
+     "The package provides the means to draw an orthogonal parallel projection
+with an arbitrarily chosen angle and a variable shortening factor.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-platon
+  (package
+    (name "texlive-pst-platon")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-platon/"
+                   "source/generic/pst-platon/"
+                   "tex/latex/pst-platon/")
+             (base32
+              "0a4w47varc1i22h5iwd49c0clwb2k8hdlva5l6nfmc889wgwp0d7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-platon")
+    (synopsis "Platonic solids in PSTricks")
+    (description
+     "The package adds to PSTricks the ability to draw 3-dimensional views of
+the five Platonic solids.")
+    (license license:lppl)))
+
+(define-public texlive-pst-plot
+  (package
+    (name "texlive-pst-plot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-plot/"
+                   "tex/generic/pst-plot/"
+                   "tex/latex/pst-plot/")
+             (base32
+              "12jrn04nxfhw07y86pjkr6bbvdvwcnhfxr6aj9ni13383dxcwl7j")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-plot")
+    (synopsis "Plot data using PSTricks")
+    (description
+     "The package provides plotting of data (typically from external files),
+using PSTricks.  Plots may be configured using a wide variety of parameters.")
+    (license license:lppl)))
+
+(define-public texlive-pst-poker
+  (package
+    (name "texlive-pst-poker")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-poker/"
+                   "tex/latex/pst-poker/")
+             (base32
+              "0c1v75rxw717hvjgzb4i0ahk7acmqpgl9czaihvw36r9yaicsm5n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-poker")
+    (synopsis "Drawing poker cards")
+    (description
+     "This PSTricks related package can create poker cards in various
+manners.")
+    (license license:lgpl3)))
+
+(define-public texlive-pst-poly
+  (package
+    (name "texlive-pst-poly")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-poly/"
+                   "tex/generic/pst-poly/"
+                   "tex/latex/pst-poly/")
+             (base32
+              "1fasd2y6vv28id1w858kq4rc3qd46rkds9z7vi8k102aqvv9as8n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-poly")
+    (synopsis "Polygons with PSTricks")
+    (description
+     "This PSTricks package provides a really rather simple command
+@code{\\PstPolygon} that will draw various regular and non-regular
+polygons (according to command parameters); various shortcuts to commonly-used
+polygons are provided, as well as a command @code{\\pspolygonbox} that frames
+text with a polygon.")
+    (license license:lppl)))
+
+(define-public texlive-pst-pulley
+  (package
+    (name "texlive-pst-pulley")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-pulley/"
+                   "tex/generic/pst-pulley/"
+                   "tex/latex/pst-pulley/")
+             (base32
+              "1n1kv743vxjw8b6nqrlivb3m3pg3z9kw56bzxij438p5him3sdaa")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-pulley")
+    (synopsis "Plot pulleys, using PSTricks")
+    (description
+     "The package enables the user to draw pulley systems with up to 6 pulleys.
+The pulley diagrams are labelled with the physical properties of the system.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-qtree
+  (package
+    (name "texlive-pst-qtree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-qtree/"
+                   "tex/generic/pst-qtree/"
+                   "tex/latex/pst-qtree/")
+             (base32
+              "1hdmv4lar1hdg9bh049kmsjqd14rdv2066qrcaacwmd39nh816z5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-qtree")
+    (synopsis "Simple syntax for trees")
+    (description "The package provides a Qtree-like front end for PSTricks.")
+    (license license:gpl3+)))
+
+(define-public texlive-pst-rputover
+  (package
+    (name "texlive-pst-rputover")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-rputover/"
+                   "tex/generic/pst-rputover/"
+                   "tex/latex/pst-rputover/")
+             (base32
+              "1d25sdhvira5vlibgv3r51dk64jplqbpf4fdimh2l1flq5h0d9dw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-rputover")
+    (synopsis "Place text over objects without obscuring background colors")
+    (description
+     "This is a PSTricks package which allows to place text over objects
+without obscuring background colors.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-rubans
+  (package
+    (name "texlive-pst-rubans")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-rubans/"
+                   "source/generic/pst-rubans/"
+                   "tex/generic/pst-rubans/"
+                   "tex/latex/pst-rubans/")
+             (base32
+              "1izpw60jm4w8xgd5aiqc7qxhjd0js1g9k9anwbpni9sn1qma66zs")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-rubans")
+    (synopsis "Draw three-dimensional ribbons")
+    (description
+     "The package uses PStricks and @code{pst-solides3d} to draw three
+dimensional ribbons on a cylinder, torus, sphere, cone or paraboloid.  The
+width of the ribbon, the number of turns, the colour of the outer and the
+inner surface of the ribbon may be set.  In the case of circular and conical
+helices, one may also choose the number of ribbons.")
+    (license license:lppl)))
+
+(define-public texlive-pst-shell
+  (package
+    (name "texlive-pst-shell")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-shell/" "dvips/pst-shell/"
+                   "source/generic/pst-shell/"
+                   "tex/generic/pst-shell/"
+                   "tex/latex/pst-shell/")
+             (base32
+              "18w5csarnjv3ws554vjw2zlmpc5mcd03fc8fircv0pbxxl53l11r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-shell")
+    (synopsis "Plotting sea shells")
+    (description
+     "@code{pst-shell} is a PSTricks related package to draw seashells in 3D
+view: Argonauta, Epiteonium, Lyria, Turritella, Tonna, Achatina, Oxystele,
+Conus, Ammonite, Codakia, Escalaria, Helcion, Natalina, Planorbis, and
+Nautilus, all with different parameters.")
+    (license license:lppl)))
+
+(define-public texlive-pst-sigsys
+  (package
+    (name "texlive-pst-sigsys")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-sigsys/"
+                   "tex/generic/pst-sigsys/"
+                   "tex/latex/pst-sigsys/")
+             (base32
+              "18g1s1afh3lnkb3993k1ypkzbb4a88jw5paclwgyn59yqjq8x737")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-sigsys")
+    (synopsis "Support of signal processing-related disciplines")
+    (description
+     "The package offers a collection of useful macros for disciplines related
+to signal processing.  It defines macros for plotting a sequence of numbers,
+drawing the pole-zero diagram of a system, shading the region of convergence,
+creating an adder or a multiplier node, placing a framed node at a given
+coordinate, creating an up-sampler or a down-sampler node, drawing the block
+diagram of a system, drawing adaptive systems, sequentially connecting a list
+of nodes, and connecting a list of nodes using any node-connecting macro.")
+    (license license:lppl)))
+
+(define-public texlive-pst-slpe
+  (package
+    (name "texlive-pst-slpe")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-slpe/" "dvips/pst-slpe/"
+                   "source/generic/pst-slpe/"
+                   "tex/generic/pst-slpe/"
+                   "tex/latex/pst-slpe/")
+             (base32
+              "12m6iss3hqsngq2dk7n3d1zz6z2rq4j2w1di9l26hpzly2mdp26n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-slpe")
+    (synopsis "Sophisticated colour gradients")
+    (description
+     "This PStricks package covers all the colour gradient functionality of
+@code{pst-grad} (part of the base PSTricks distribution), and provides the
+following facilities:
+
+@itemize
+@item it permits the user to specify an arbitrary number of colours, along
+with the points at which they are to be reached;
+@item it converts between RGB and HSV behind the scenes;
+@item it provides concentric and radial gradients;
+@item it provides a command @code{\\psBall} that generates bullets with
+a three-dimensional appearance.
+@end itemize")
+    (license license:lppl)))
+
+(define-public texlive-pst-solarsystem
+  (package
+    (name "texlive-pst-solarsystem")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-solarsystem/"
+                   "dvips/pst-solarsystem/"
+                   "tex/generic/pst-solarsystem/"
+                   "tex/latex/pst-solarsystem/")
+             (base32
+              "147mbrir52fl1ra3qqwlmmgk7789nrpr9hh015kc07mx10zfmc5x")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-solarsystem")
+    (synopsis "Plot the solar system for a specific date")
+    (description
+     "The package uses PSTricks to produce diagrams of the visible planets,
+projected on the plane of the ecliptic.  It is not possible to represent all
+the planets in their real proportions, so only Mercury, Venus, Earth and Mars
+have their orbits in correct proportions and their relative sizes are
+observed.  Saturn and Jupiter are in the right direction, but not in the
+correct size.")
+    (license license:lppl)))
+
+(define-public texlive-pst-solides3d
+  (package
+    (name "texlive-pst-solides3d")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-solides3d/"
+                   "dvips/pst-solides3d/"
+                   "tex/generic/pst-solides3d/"
+                   "tex/latex/pst-solides3d/")
+             (base32
+              "1w6qpaw5k6x5c90k15q3r397f3ai7fd443yzwif2fhkqb2wjv3k8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-solides3d")
+    (synopsis "Draw perspective views of 3D solids")
+    (description
+     "The package is designed to draw solids in 3d perspective.  Its features
+include:
+@itemize
+@item create primitive solids;
+@item create solids by including a list of its vertices and faces;
+@item faces of solids and surfaces can be colored by choosing from a very
+large palette of colors;
+@item draw parametric surfaces in algebraic and reverse polish notation;
+@item create explicit and parameterized algebraic functions drawn in 2 or
+3 dimensions;
+@item project text onto a plane or onto the faces of a solid;
+@item support for including external database files.
+@end itemize")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-soroban
+  (package
+    (name "texlive-pst-soroban")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-soroban/"
+                   "source/generic/pst-soroban/"
+                   "tex/latex/pst-soroban/")
+             (base32
+              "1cpmqgaj1h2dh3acypm9xkjinmlw9wd40n1s2vdab5ascvprbr6n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-soroban")
+    (synopsis "Draw a soroban using PSTricks")
+    (description
+     "The package uses PSTricks to draw a Japanese abacus, or soroban.  The
+soroban is still used in Japan today.")
+    (license license:lppl)))
+
+(define-public texlive-pst-spectra
+  (package
+    (name "texlive-pst-spectra")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-spectra/"
+                   "dvips/pst-spectra/"
+                   "tex/generic/pst-spectra/"
+                   "tex/latex/pst-spectra/")
+             (base32
+              "0l88wag5i1jy6pd1lx3s9cijiymzdgwvl52hkarc84d8qpn53wcw")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-spectra")
+    (synopsis "Draw continuum, emission and absorption spectra with PSTricks")
+    (description
+     "The package is a PSTricks extension, based on a NASA lines database.  It
+allows you to draw continuum, emission and absorption spectra.  A Total of 16
+880 visible lines from 99 elements can be displayed.")
+    (license license:lppl)))
+
+(define-public texlive-pst-spinner
+  (package
+    (name "texlive-pst-spinner")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-spinner/"
+                   "dvips/pst-spinner/"
+                   "tex/generic/pst-spinner/"
+                   "tex/latex/pst-spinner/")
+             (base32
+              "0fm70v1kgjs32pvyvcnh2j47clqgdr4hll4j7fr935584d604g49")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-spinner")
+    (synopsis "Drawing a fidget spinner")
+    (description
+     "This package aims to propose a model of the fidget spinner gadget.  It
+exists under different forms with 2, 3 poles and even more.  We chose the most
+popular model: the triple fidget spinner.")
+    (license license:lppl)))
+
+(define-public texlive-pst-stru
+  (package
+    (name "texlive-pst-stru")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-stru/"
+                   "tex/generic/pst-stru/"
+                   "tex/latex/pst-stru/")
+             (base32
+              "1zxf0bj43picgd86bwgc38d8valpx0fn0pr3pgfv2kn42r2pampj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-stru")
+    (synopsis "Civil engineering diagrams, using PSTricks")
+    (description
+     "This PSTricks-based package provides facilities to draw structural
+schemes in civil engineering analysis, for beams, portals, arches and piles.")
+    (license license:lppl)))
+
+(define-public texlive-pst-support
+  (package
+    (name "texlive-pst-support")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-support/")
+             (base32
+              "1470n03zanpw35dnfzyjqm7d5lgddrimypz28x0zsk9nqpamnqnv")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-support")
+    (synopsis "Assorted support files for use with PSTricks")
+    (description
+     "This package provides an appropriate set of job options, together with
+process scripts for use with TeXnicCenter.")
+    (license license:lppl)))
+
 (define-public texlive-pst-text
   (package
     (name "texlive-pst-text")
@@ -27894,6 +42525,280 @@ a different path and manipulating characters.  It includes the functionality
 of the old package @code{pst-char}.")
     (license license:lppl)))
 
+(define-public texlive-pst-thick
+  (package
+    (name "texlive-pst-thick")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-thick/"
+                   "source/generic/pst-thick/"
+                   "tex/generic/pst-thick/"
+                   "tex/latex/pst-thick/")
+             (base32
+              "1clg9ahhg3zg91phlp2ni1j5m6pb68bdk74glh398r8y2gj2b5fb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-thick")
+    (synopsis "Drawing very thick lines and curves")
+    (description
+     "The package supports drawing of very thick lines and curves in PSTricks,
+with various fillings for the body of the lines.")
+    (license license:lppl)))
+
+(define-public texlive-pst-tools
+  (package
+    (name "texlive-pst-tools")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-tools/" "dvips/pst-tools/"
+                   "tex/generic/pst-tools/"
+                   "tex/latex/pst-tools/")
+             (base32
+              "1ws149np6121mc7msw32wkc6pn528ldsd5g95w4n4vcm6r54pmgq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-tools")
+    (synopsis "PSTricks support functions")
+    (description
+     "The package provides helper functions for other PSTricks related
+packages.")
+    (license license:lppl)))
+
+(define-public texlive-pst-tree
+  (package
+    (name "texlive-pst-tree")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-tree/"
+                   "tex/generic/pst-tree/"
+                   "tex/latex/pst-tree/")
+             (base32
+              "1vznc4qyjpnni3smdxlpqi7h3qxd13kv5pigvlly0zq676n6gw8n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-tree")
+    (synopsis "Trees, using PSTricks")
+    (description
+     "@code{pst-tree} defines a macro \\pstree that offers a structured way of
+joining nodes created using @code{pst-node} in order to draw trees.")
+    (license license:lppl)))
+
+(define-public texlive-pst-turtle
+  (package
+    (name "texlive-pst-turtle")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-turtle/"
+                   "dvips/pst-turtle/"
+                   "tex/generic/pst-turtle/"
+                   "tex/latex/pst-turtle/")
+             (base32
+              "0mgpjs9jkgfx0hbd9l5jw60rf0vpdkv933ksjlwcjlh98y9gay4c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-turtle")
+    (synopsis "Commands for Turtle operations")
+    (description
+     "This is a PSTricks related package for creating Turtle graphics.")
+    (license license:lppl)))
+
+(define-public texlive-pst-tvz
+  (package
+    (name "texlive-pst-tvz")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-tvz/"
+                   "source/generic/pst-tvz/"
+                   "tex/generic/pst-tvz/" "tex/latex/pst-tvz/")
+             (base32
+              "1xpzvfgngv5r5cdnvip87wr1i0pmrc6ibwi5gzmibfzl64w7vkqr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-tvz")
+    (synopsis "Draw trees with more than one root node, using PSTricks")
+    (description
+     "The package uses PSTricks to draw trees with more than one root node.
+It is similar to @code{pst-tree}, though it uses a different placement
+algorithm.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-pst-uml
+  (package
+    (name "texlive-pst-uml")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-uml/"
+                   "source/generic/pst-uml/"
+                   "tex/latex/pst-uml/")
+             (base32
+              "0sgsyg9gk4wxgz7r44h6a7f5f7gl5b522f864n0kv35cgmwnzyr7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (propagated-inputs (list texlive-multido))
+    (home-page "https://ctan.org/pkg/pst-uml")
+    (synopsis "UML diagrams with PSTricks")
+    (description
+     "This a PSTricks package that provides support for drawing moderately
+complex UML (Universal Modelling Language) diagrams.  (The PDF documentation
+is written in French.)")
+    (license license:lppl)))
+
+(define-public texlive-pst-vectorian
+  (package
+    (name "texlive-pst-vectorian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-vectorian/"
+                   "dvips/pst-vectorian/"
+                   "tex/latex/pst-vectorian/")
+             (base32
+              "0knvzl4gqz79jzvb4w7a9ka1iiz5f3pjivnwvwmd1kmibykqwb67")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-vectorian")
+    (synopsis "Printing ornaments")
+    (description
+     "The package uses PSTricks to draw ornaments (a substantial repertoire of
+ornaments is provided).")
+    (license license:lppl)))
+
+(define-public texlive-pst-vehicle
+  (package
+    (name "texlive-pst-vehicle")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-vehicle/"
+                   "tex/generic/pst-vehicle/"
+                   "tex/latex/pst-vehicle/")
+             (base32
+              "1b0s5fy4w4k2q486sdwlrh649n99k9s5hy5m2v01lh7qnjl1z4c3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-vehicle")
+    (synopsis "Rolling vehicles on graphs of mathematical functions")
+    (description
+     "This package permits to represent vehicles rolling without slipping on
+mathematical curves.  Different types of vehicles are proposed, the shape of
+the curve is to be defined by its equation in algebraic notation.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-pst-venn
+  (package
+    (name "texlive-pst-venn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pst-venn/"
+                   "tex/latex/pst-venn/")
+             (base32
+              "0gz7sxwycqd71yy8jln7h3v064mrzhh1852fc7b785v55x8kna2n")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-venn")
+    (synopsis "PSTricks package for drawing Venn sets")
+    (description
+     "This is a PSTricks related package for drawing Venn diagrams with three
+circles.")
+    (license license:lppl)))
+
+(define-public texlive-pst-vowel
+  (package
+    (name "texlive-pst-vowel")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pst-vowel/"
+                   "tex/latex/pst-vowel/")
+             (base32
+              "0p0qnfbmd1lh21nk6xq246xr6y50q0y55rdcq3i9vkg4j7kkkfy6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pst-vowel")
+    (synopsis "Enable arrows showing diphthongs on vowel charts")
+    (description
+     "The package extends the @code{vowel} package (distributed as part of the
+@code{tipa} bundle) by allowing the user to draw arrows between vowels to show
+relationships such as diphthong membership.")
+    (license license:lppl)))
+
+(define-public texlive-pst2pdf
+  (package
+    (name "texlive-pst2pdf")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/pst2pdf/" "scripts/pst2pdf/")
+             (base32
+              "0yihyrnwwpad5hf8yrjqljpwsnj6kcbb6y6cfnxwxbi1c5pf1jk9")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "pst2pdf.pl")))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/pst2pdf")
+    (synopsis "Script to compile PSTricks documents via pdfTeX")
+    (description
+     "The script extracts the preamble of the document and runs all
+@code{\\begin@{postscript@}...\\end@{postscript@}},
+@code{\\begin@{pspicture@}...\\end@{pspicture@}} and
+@code{\\pspicture...\\endpspicture} separately through LaTeX with the same
+preamble as the original document; thus it creates EPS, PNG and PDF files of
+these snippets.  In a final pdfLaTeX run the script replaces the environments
+with @code{\\includegraphics} to include the processed snippets.")
+    (license license:gpl2)))
+
+(define-public texlive-pstricks-add
+  (package
+    (name "texlive-pstricks-add")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/pstricks-add/"
+                   "dvips/pstricks-add/"
+                   "tex/generic/pstricks-add/"
+                   "tex/latex/pstricks-add/")
+             (base32
+              "18khs28v3dg5z7215k0yv7hxna9x5nh09hlrw2fc4nhmzymy2kjg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pstricks-add")
+    (synopsis "Collection of add-ons and bugfixes for PSTricks")
+    (description
+     "This package collects together examples that have been posted to the
+PSTricks mailing list, together with many additional features for the basic
+@code{pstricks}, @code{pst-plot} and @code{pst-node}, including: bugfixes; new
+options for the pspicture environment; arrows; braces as node
+connection/linestyle; extended axes for plots (e.g., logarithm axes); polar
+plots; plotting tangent lines of curves or functions; solving and printing
+differential equations; box plots; matrix plots; and pie charts.")
+    (license license:lppl)))
+
+(define-public texlive-pstricks-calcnotes
+  (package
+    (name "texlive-pstricks-calcnotes")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pstricks_calcnotes/")
+             (base32
+              "00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pstricks-calcnotes")
+    (synopsis "Use of PSTricks in calculus lecture notes")
+    (description
+     "The bundle shows the construction of PSTricks macros to draw Riemann
+sums of an integral and to draw the vector field of an ordinary differential
+equation.  The results are illustrated in a fragment of lecture notes.")
+    (license license:lppl)))
+
 (define-public texlive-marginnote
   (package
     (name "texlive-marginnote")
@@ -27936,6 +42841,71 @@ sort of tabular, and an environment @code{longtabu} which provides the
 facilities of @code{tabu} in a modified @code{longtable} environment.")
     (license license:lppl1.3+)))
 
+(define-public texlive-uml
+  (package
+    (name "texlive-uml")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/uml/" "source/latex/uml/"
+                   "tex/latex/uml/")
+             (base32
+              "039kg3xk03cm4xfsaj33kx1j5hjqy9330zxamqyzs1jnp8xgcfdz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/uml")
+    (synopsis "UML diagrams in LaTeX")
+    (description
+     "This package provides a PSTricks related package for writing
+UML (Unified Modelling Language) diagrams in LaTeX.  Currently, it implements
+a subset of class diagrams, and some extra constructs as well.  The package
+cannot be used together with @code{pst-uml}.")
+    (license license:lppl)))
+
+(define-public texlive-vaucanson-g
+  (package
+    (name "texlive-vaucanson-g")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/vaucanson-g/"
+                   "tex/generic/vaucanson-g/")
+             (base32
+              "18ig6kszjr2jfr3hvq18clq8ccxbv2zw280pw20mphfjh6rjwbrj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/vaucanson-g")
+    (synopsis "PSTricks macros for drawing automata")
+    (description
+     "VauCanSon-G is a package that enables the user to draw automata within
+texts written using LaTeX.  The package macros make use of commands of
+PSTricks.")
+    (license license:lppl)))
+
+(define-public texlive-vocaltract
+  (package
+    (name "texlive-vocaltract")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/vocaltract/"
+                   "tex/latex/vocaltract/")
+             (base32
+              "072b712bhfxq429jh4r9d786nwpdyl8rlbm6ds4nf9asxg2lg9wr")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/vocaltract")
+    (synopsis "Visualise the vocal tract using LaTeX and PSTricks")
+    (description
+     "The package enables the user to visualise the vocal tract.  The vocal
+tract (in the package) is manipulated by a vector of articulation parameters
+according to the S. Maeda model.  Animation may be achieved by providing
+a sequence of vectors over time (e.g., from Matlab).  A sequence of vectors
+for certain German phonemes is embedded in the package, which allows for
+animation when no other vector is available.  The package's graphics are
+produced using PSTricks.")
+    (license license:lppl)))
+
 (define-public texlive-xkeyval
   (package
     (name "texlive-xkeyval")
@@ -28248,6 +43218,202 @@ especially in the humanities and the social sciences.  All quote styles as
 well as the optional active quotes are freely configurable.")
     (license license:lppl1.3c+)))
 
+(define-public texlive-csquotes-de
+  (package
+    (name "texlive-csquotes-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/csquotes-de/")
+             (base32
+              "087c08c44811vd8p00l1xrkg5w6fsl8as64jq83m6gf1hfan9w4c")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/csquotes-de")
+    (synopsis "German translation of @code{csquotes} documentation")
+    (description
+     "This is a German translation of the documentation of @code{csquotes}.")
+    (license license:lppl)))
+
+(define-public texlive-dhua
+  (package
+    (name "texlive-dhua")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/dhua/" "source/latex/dhua/"
+                   "tex/latex/dhua/")
+             (base32
+              "0npf0bz5cdl6a98gc4l66v0hxwgg94af31bdrz8xai6r4vwjbzhl")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dhua")
+    (synopsis "German abbreviations using thin space")
+    (description
+     "The package provides commands for those abbreviations of German phrases
+for which the use of thin space is recommended.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-dtk-bibliography
+  (package
+    (name "texlive-dtk-bibliography")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bib/dtk-bibliography/"
+                   "doc/bibtex/dtk-bibliography/"
+                   "tex/latex/dtk-bibliography/")
+             (base32
+              "1mrlm2yrzrafq2xhk6mc70wc55ngrxylhxrl3qmgz0yxag5yspn8")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/dtk-bibliography")
+    (synopsis "Bibliography of @emph{Die TeXnische Komodie}")
+    (description
+     "This package contains the bibliography for @emph{Die TeXnische Komodie},
+the journal of the German-speaking TeX User Group.")
+    (license license:lppl1.3c)))
+
+(define-public texlive-etdipa
+  (package
+    (name "texlive-etdipa")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/etdipa/")
+             (base32
+              "1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/etdipa")
+    (synopsis "Simple, lightweight template for scientific documents")
+    (description
+     "This package provides a complete working directory for the scientific
+documentation of arbitrary projects.  It was originally developed to provide
+a template for Austrian @emph{Diplomarbeiten} or @emph{Vorwissenschaftliche
+Arbeiten}, which are scientfic projects of students at a secondary school.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-etoolbox-de
+  (package
+    (name "texlive-etoolbox-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/etoolbox-de/")
+             (base32
+              "1vchha7ymvj51jfnvl76rxv466lzfpxr6xcvwafxhi78w4bk9yry")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/etoolbox-de")
+    (synopsis "German translation of documentation of @code{etoolbox}")
+    (description "This package provides the German translation of
+@code{etoolbox} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-fifinddo-info
+  (package
+    (name "texlive-fifinddo-info")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/fifinddo-info/"
+                   "source/latex/fifinddo-info/")
+             (base32
+              "0m95qyd5kbaa2x8rpjwr6f9c76ajg6l49igzw9yb0hcrwwg7cni6")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/fifinddo-info")
+    (synopsis "German HTML beamer presentation on nicetext and morehype")
+    (description
+     "The bundle: exhibits the process of making an HTML beamer presentation
+with the @code{blogdot} package from the @code{morehype} bundle, and HTML
+generation based on the @code{fifinddo} package.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-german
+  (package
+    (name "texlive-german")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/generic/german/"
+                   "source/generic/german/"
+                   "tex/generic/german/")
+             (base32
+              "0n17j7rc69kxgs3b2cyxjb8hsh6bc9aydxf90x98rdc2ardl9idg")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/german")
+    (synopsis "Support for German typography")
+    (description
+     "This package provides supports the old German orthography (alte deutsche
+Rechtschreibung).")
+    (license license:lppl)))
+
+(define-public texlive-germbib
+  (package
+    (name "texlive-germbib")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/germbib/" "doc/bibtex/germbib/"
+                   "tex/latex/germbib/")
+             (base32
+              "1mc95h4ndzbg2q30vsq2rx9v0a8f0q0vhmjiz709lllkmj6n402p")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/germbib")
+    (synopsis "German variants of standard BibTeX styles")
+    (description
+     "This package provides a development of the (old) @file{german.sty}, this
+bundle provides German packages, BibTeX styles and documentary examples, for
+writing documents with bibliographies.  The author has since developed the
+@code{babelbib} bundle, which (he asserts) supersedes @code{germbib}.")
+    ;; The license is a variation of Knuth's.
+    (license (license:fsf-free "file://doc/bibtex/germbib/apalike.tex"))))
+
+(define-public texlive-germkorr
+  (package
+    (name "texlive-germkorr")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/germkorr/" "tex/latex/germkorr/")
+             (base32
+              "0qgh3j97dljwh7625m577jcsvqhfkas3jn4q09m05jsjfxb7n2bx")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/germkorr")
+    (synopsis "Change kerning for German quotation marks")
+    (description
+     "The package brings some letters nearer to German single and double
+quotes even when that letter wears a standard accent")
+    (license license:gpl3+)))
+
+(define-public texlive-hausarbeit-jura
+  (package
+    (name "texlive-hausarbeit-jura")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/hausarbeit-jura/"
+                   "source/latex/hausarbeit-jura/"
+                   "tex/latex/hausarbeit-jura/")
+             (base32
+              "14raizfrrfnwdgwaq9irxdkg2mg280csjcirsxjq4rpdwqg2nkwh")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/hausarbeit-jura")
+    (synopsis
+     "Class for writing @emph{juristische Hausarbeiten} at German Universities")
+    (description
+     "The class was developed for use by students writing legal
+essays (@emph{juristische Hausarbeit}) at German Universities.  It is based on
+@code{jurabook} and @code{jurabib} and makes it easy for LaTeX beginners to
+get a correct and nicely formatted paper.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-logreq
   (package
     (name "texlive-logreq")
@@ -28479,6 +43645,24 @@ a straight-forward and flexible way.  An alternative package
 bundle.")
     (license license:lppl1.3c)))
 
+(define-public texlive-microtype-de
+  (package
+    (name "texlive-microtype-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/microtype-de/")
+             (base32
+              "069d2f0jcg9m4fv8dli2dr9ags9gz6mkwy6fzz37ns4jzrqfsvwi")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/microtype-de")
+    (synopsis "Translation into German of the documentation of @code{microtype}")
+    (description
+     "This package provides the translation into German of the documentation
+of @code{microtype}.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-minitoc
   (package
     (name "texlive-minitoc")
@@ -28696,6 +43880,29 @@ layouts and designs.  The class also provides the functionality of over thirty
 of the more popular packages, thus simplifying document sources.")
     (license license:lppl1.3+)))
 
+(define-public texlive-milog
+  (package
+    (name "texlive-milog")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/milog/" "tex/latex/milog/")
+             (base32
+              "1114i8hgs84nnvmkiy8azbh6rgk0gjzp387idvvkx651vcyc82kf")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/milog")
+    (synopsis
+     "LaTeX class for documentation duties according to the German minimum wage law
+MiLoG")
+    (description
+     "The @file{milog.cls} class provides means to fulfill the documentation
+duties by the German minimum wage law MiLoG.  The recording of working hours
+is carried out in a simple CSV file from which the class will automatically
+create a time sheet.  Alternatively, data can also be collected by a CSV
+export of a suitable app.")
+    (license license:lppl)))
+
 (define-public texlive-fp
   (package
     (name "texlive-fp")
@@ -29693,6 +44900,899 @@ manipulation, mft, fontinst, etc.  Manipulating OpenType, TrueType, Type 1,and
 for manipulation of PostScript and other image formats.")
     (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
 
+(define-public texlive-collection-formatsextra
+  (package
+    (name "texlive-collection-formatsextra")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-aleph
+           texlive-antomega
+           texlive-collection-basic
+           texlive-collection-latex
+           texlive-edmac
+           texlive-eplain
+           texlive-hitex
+           texlive-jadetex
+           texlive-lambda
+           texlive-lollipop
+           texlive-mltex
+           texlive-mxedruli
+           texlive-omega
+           texlive-omegaware
+           texlive-otibet
+           texlive-passivetex
+           texlive-psizzl
+           texlive-startex
+           texlive-texsis
+           texlive-xmltex
+           texlive-xmltexconfig))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Additional TeX formats")
+    (description
+     "This is a collection of TeX formats, i.e., large-scale macro packages
+designed to be dumped into @file{.fmt} files --- excluding the most common
+ones, such as LaTeX and ConTeXt, which have their own package(s).  It also
+includes the Aleph engine and related Omega formats and packages, and the
+HiTeX engine and related.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-humanities
+  (package
+    (name "texlive-collection-humanities")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-adtrees
+           texlive-bibleref
+           texlive-bibleref-lds
+           texlive-bibleref-mouth
+           texlive-bibleref-parse
+           texlive-collection-latex
+           texlive-covington
+           texlive-diadia
+           texlive-dramatist
+           texlive-dvgloss
+           texlive-ecltree
+           texlive-edfnotes
+           texlive-eledform
+           texlive-eledmac
+           texlive-expex
+           texlive-gb4e
+           texlive-gmverse
+           texlive-jura
+           texlive-juraabbrev
+           texlive-juramisc
+           texlive-jurarsp
+           texlive-langnames
+           texlive-ledmac
+           texlive-lexikon
+           texlive-lexref
+           texlive-ling-macros
+           texlive-linguex
+           texlive-liturg
+           texlive-metrix
+           texlive-nnext
+           texlive-parallel
+           texlive-parrun
+           texlive-phonrule
+           texlive-plari
+           texlive-play
+           texlive-poemscol
+           texlive-poetry
+           texlive-poetrytex
+           texlive-qobitree
+           texlive-qtree
+           texlive-reledmac
+           texlive-rrgtrees
+           texlive-rtklage
+           texlive-screenplay
+           texlive-screenplay-pkg
+           texlive-sides
+           texlive-stage
+           texlive-textglos
+           texlive-thalie
+           texlive-theatre
+           texlive-tree-dvips
+           texlive-verse
+           texlive-xyling))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Humanities packages")
+    (description
+     "This collection contains packages for law, linguistics, social sciences,
+humanities, etc.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langarabic
+  (package
+    (name "texlive-collection-langarabic")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-alkalami
+           texlive-alpha-persian
+           texlive-amiri
+           texlive-arabi
+           texlive-arabi-add
+           texlive-arabic-book
+           texlive-arabluatex
+           texlive-arabtex
+           texlive-bidi
+           texlive-bidihl
+           texlive-collection-basic
+           texlive-dad
+           texlive-ghab
+           texlive-hvarabic
+           texlive-hyphen-complete
+           texlive-imsproc
+           texlive-kurdishlipsum
+           texlive-lshort-persian
+           texlive-luabidi
+           texlive-na-box
+           texlive-persian-bib
+           texlive-quran
+           texlive-sexam
+           texlive-simurgh
+           texlive-texnegar
+           texlive-tram
+           texlive-xepersian
+           texlive-xepersian-hm
+           texlive-xindy-persian))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Arabic and Persian")
+    (description "This collection provides support for Arabic and Persian.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langchinese
+  (package
+    (name "texlive-collection-langchinese")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-arphic
+           texlive-arphic-ttf
+           texlive-asymptote-by-example-zh-cn
+           texlive-asymptote-faq-zh-cn
+           texlive-asymptote-manual-zh-cn
+           texlive-cns
+           texlive-collection-langcjk
+           texlive-ctex
+           texlive-ctex-faq
+           texlive-exam-zh
+           texlive-fandol
+           texlive-fduthesis
+           texlive-hanzibox
+           texlive-hyphen-complete
+           texlive-impatient-cn
+           texlive-install-latex-guide-zh-cn
+           texlive-latex-notes-zh-cn
+           texlive-lshort-chinese
+           texlive-nanicolle
+           texlive-njurepo
+           texlive-pgfornament-han
+           texlive-qyxf-book
+           texlive-texproposal
+           texlive-tlmgr-intro-zh-cn
+           texlive-upzhkinsoku
+           texlive-xpinyin
+           texlive-xtuthesis
+           texlive-zhlineskip
+           texlive-zhlipsum
+           texlive-zhmetrics
+           texlive-zhmetrics-uptex
+           texlive-zhnumber
+           texlive-zhspacing))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Chinese")
+    (description
+     "This collection provides support for Chinese, with additional packages
+from @code{collection-langcjk}.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langcjk
+  (package
+    (name "texlive-collection-langcjk")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-adobemapping
+           texlive-c90
+           texlive-cjk
+           texlive-cjk-gs-integrate
+           texlive-cjkpunct
+           texlive-cjkutils
+           texlive-collection-basic
+           texlive-dnp
+           texlive-evangelion-jfm
+           texlive-fixjfm
+           texlive-garuda-c90
+           texlive-jfmutil
+           texlive-norasi-c90
+           texlive-pxtatescale
+           texlive-xcjk2uni
+           texlive-xecjk
+           texlive-zitie
+           texlive-zxjafont))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Chinese/Japanese/Korean support (base)")
+    (description
+     "This is a collection of packages supporting a combination of Chinese,
+Japanese, Korean, including macros, fonts, documentation.  Also Thai in the
+c90 encoding, since there is some overlap in those fonts; standard Thai
+support is in @code{collection-langother}.  Additional packages for CJK are in
+their individual language collections.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langcyrillic
+  (package
+    (name "texlive-collection-langcyrillic")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-belarusian
+           texlive-babel-bulgarian
+           texlive-babel-russian
+           texlive-babel-serbian
+           texlive-babel-serbianc
+           texlive-babel-ukrainian
+           texlive-churchslavonic
+           texlive-cmcyr
+           texlive-collection-basic
+           texlive-collection-latex
+           texlive-cyrillic
+           texlive-cyrillic-bin
+           texlive-cyrplain
+           texlive-disser
+           texlive-eskd
+           texlive-eskdx
+           texlive-gost
+           texlive-hyphen-complete
+           texlive-lcyw
+           texlive-lh
+           texlive-lhcyr
+           texlive-lshort-bulgarian
+           texlive-lshort-mongol
+           texlive-lshort-russian
+           texlive-lshort-ukr
+           texlive-mongolian-babel
+           texlive-montex
+           texlive-mpman-ru
+           texlive-numnameru
+           texlive-pst-eucl-translation-bg
+           texlive-russ
+           texlive-serbian-apostrophe
+           texlive-serbian-date-lat
+           texlive-serbian-def-cyr
+           texlive-serbian-lig
+           texlive-t2
+           texlive-xecyrmongolian))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Cyrillic scripts")
+    (description
+     "This collection provides packages supporting Cyrillic scripts (Bulgarian,
+Russian, Serbian, Ukrainian), even if Latin alphabets may also be used.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langczechslovak
+  (package
+    (name "texlive-collection-langczechslovak")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-czech
+           texlive-babel-slovak
+           texlive-cnbwp
+           texlive-collection-basic
+           texlive-collection-latex
+           texlive-cs
+           texlive-csbulletin
+           texlive-cslatex
+           texlive-csplain
+           texlive-cstex
+           texlive-hyphen-complete
+           texlive-lshort-czech
+           texlive-lshort-slovak
+           texlive-vlna))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Czech and Slovak")
+    (description
+     "This collection of packages provides support for Czech and Slovak.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langenglish
+  (package
+    (name "texlive-collection-langenglish")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-amiweb2c-guide
+           texlive-amscls-doc
+           texlive-amslatex-primer
+           texlive-around-the-bend
+           texlive-ascii-chart
+           texlive-biblatex-cheatsheet
+           texlive-collection-basic
+           texlive-components
+           texlive-comprehensive
+           texlive-dickimaw
+           texlive-docsurvey
+           texlive-dtxtut
+           texlive-first-latex-doc
+           texlive-fontinstallationguide
+           texlive-forest-quickstart
+           texlive-gentle
+           texlive-guide-to-latex
+           texlive-happy4th
+           texlive-hyphen-complete
+           texlive-impatient
+           texlive-intro-scientific
+           texlive-knuth-errata
+           texlive-knuth-hint
+           texlive-knuth-pdf
+           texlive-l2tabu-english
+           texlive-latex-brochure
+           texlive-latex-course
+           texlive-latex-doc-ptr
+           texlive-latex-for-undergraduates
+           texlive-latex-graphics-companion
+           texlive-latex-refsheet
+           texlive-latex-veryshortguide
+           texlive-latex-web-companion
+           texlive-latex2e-help-texinfo
+           texlive-latex4wp
+           texlive-latexcheat
+           texlive-latexcourse-rug
+           texlive-latexfileinfo-pkgs
+           texlive-lshort-english
+           texlive-macros2e
+           texlive-math-into-latex-4
+           texlive-maths-symbols
+           texlive-memdesign
+           texlive-memoirchapterstyles
+           texlive-metafont-beginners
+           texlive-metapost-examples
+           texlive-patgen2-tutorial
+           texlive-pictexsum
+           texlive-plain-doc
+           texlive-short-math-guide
+           texlive-simplified-latex
+           texlive-svg-inkscape
+           texlive-tamethebeast
+           texlive-tds
+           texlive-tex-font-errors-cheatsheet
+           texlive-tex-nutshell
+           texlive-tex-overview
+           texlive-tex-refs
+           texlive-tex-vpat
+           texlive-texbytopic
+           texlive-texonly
+           texlive-titlepages
+           texlive-tlc2
+           texlive-tlc3-examples
+           texlive-tlmgrbasics
+           texlive-undergradmath
+           texlive-visualfaq
+           ;; texlive-webguide XXX: No license?
+           texlive-xetexref
+           texlive-yet-another-guide-latex2e))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for, and documentation in, English")
+    (description
+     "These packages provide support for, and documentation in, English.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langeuropean
+  (package
+    (name "texlive-collection-langeuropean")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-armtex
+           texlive-babel-albanian
+           texlive-babel-bosnian
+           texlive-babel-breton
+           texlive-babel-croatian
+           texlive-babel-danish
+           texlive-babel-dutch
+           texlive-babel-estonian
+           texlive-babel-finnish
+           texlive-babel-friulan
+           texlive-babel-hungarian
+           texlive-babel-icelandic
+           texlive-babel-irish
+           texlive-babel-kurmanji
+           texlive-babel-latin
+           texlive-babel-latvian
+           texlive-babel-lithuanian
+           texlive-babel-macedonian
+           texlive-babel-norsk
+           texlive-babel-occitan
+           texlive-babel-piedmontese
+           texlive-babel-romanian
+           texlive-babel-romansh
+           texlive-babel-samin
+           texlive-babel-scottish
+           texlive-babel-slovenian
+           texlive-babel-swedish
+           texlive-babel-turkish
+           texlive-babel-welsh
+           texlive-collection-basic
+           texlive-finbib
+           texlive-gloss-occitan
+           texlive-hrlatex
+           texlive-huaz
+           texlive-hulipsum
+           texlive-hyphen-complete
+           texlive-kaytannollista-latexia
+           texlive-lithuanian
+           texlive-lshort-dutch
+           texlive-lshort-estonian
+           texlive-lshort-finnish
+           texlive-lshort-slovenian
+           texlive-lshort-turkish
+           texlive-nevelok
+           texlive-rojud
+           texlive-swebib
+           texlive-turkmen))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for a some European languages")
+    (description
+     "This collection provides support for a number of European languages;
+others (Greek, German, French, ...)  have their own collections, depending
+simply on the size of the support.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langfrench
+  (package
+    (name "texlive-collection-langfrench")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-aeguill
+           texlive-annee-scolaire
+           texlive-apprendre-a-programmer-en-tex
+           texlive-apprends-latex
+           texlive-babel-basque
+           texlive-babel-french
+           texlive-basque-book
+           texlive-basque-date
+           texlive-bib-fr
+           texlive-bibleref-french
+           texlive-booktabs-fr
+           texlive-collection-basic
+           texlive-droit-fr
+           texlive-e-french
+           texlive-epslatex-fr
+           texlive-expose-expl3-dunkerque-2019
+           texlive-facture
+           texlive-formation-latex-ul
+           texlive-frenchmath
+           texlive-frletter
+           texlive-frpseudocode
+           texlive-hyphen-complete
+           texlive-impatient-fr
+           texlive-impnattypo
+           texlive-l2tabu-french
+           texlive-latex2e-help-texinfo-fr
+           texlive-letgut
+           texlive-lshort-french
+           texlive-mafr
+           texlive-matapli
+           texlive-profcollege
+           texlive-proflabo
+           texlive-proflycee
+           texlive-tabvar
+           texlive-tdsfrmath
+           texlive-translation-array-fr
+           texlive-translation-dcolumn-fr
+           texlive-translation-natbib-fr
+           texlive-translation-tabbing-fr
+           texlive-variations
+           texlive-visualfaq-fr
+           texlive-visualtikz))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for French and Basque")
+    (description
+     "This collection provides support packages for French and Basque.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langgerman
+  (package
+    (name "texlive-collection-langgerman")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-apalike-german
+           texlive-babel-german
+           texlive-bibleref-german
+           texlive-booktabs-de
+           texlive-collection-basic
+           texlive-csquotes-de
+           texlive-dhua
+           texlive-dtk-bibliography
+           texlive-etdipa
+           texlive-etoolbox-de
+           texlive-fifinddo-info
+           texlive-german
+           texlive-germbib
+           texlive-germkorr
+           texlive-hausarbeit-jura
+           texlive-hyphen-complete
+           texlive-koma-script-examples
+           texlive-l2picfaq
+           texlive-l2tabu
+           texlive-latexcheat-de
+           texlive-lshort-german
+           texlive-lualatex-doc-de
+           texlive-microtype-de
+           texlive-milog
+           texlive-quran-de
+           texlive-r-und-s
+           texlive-schulmathematik
+           texlive-templates-fenn
+           texlive-templates-sommer
+           texlive-termcal-de
+           texlive-tipa-de
+           texlive-translation-arsclassica-de
+           texlive-translation-biblatex-de
+           texlive-translation-chemsym-de
+           texlive-translation-ecv-de
+           texlive-translation-enumitem-de
+           texlive-translation-europecv-de
+           texlive-translation-filecontents-de
+           texlive-translation-moreverb-de
+           texlive-udesoftec
+           texlive-uhrzeit
+           texlive-umlaute
+           texlive-voss-mathcol))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for German")
+    (description "This collection provides support packages for German.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langgreek
+  (package
+    (name "texlive-collection-langgreek")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-greek
+           texlive-begingreek
+           texlive-betababel
+           texlive-cbfonts
+           texlive-cbfonts-fd
+           texlive-collection-basic
+           texlive-gfsbaskerville
+           texlive-gfsporson
+           texlive-greek-fontenc
+           texlive-greek-inputenc
+           texlive-greekdates
+           texlive-greektex
+           texlive-greektonoi
+           texlive-hyphen-complete
+           texlive-ibycus-babel
+           texlive-ibygrk
+           texlive-kerkis
+           texlive-levy
+           texlive-lgreek
+           texlive-lgrmath
+           texlive-mkgrkindex
+           texlive-talos
+           texlive-teubner
+           texlive-xgreek
+           texlive-yannisgr))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Greek")
+    (description "This collection provides support for Greek.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langitalian
+  (package
+    (name "texlive-collection-langitalian")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-amsldoc-it
+           texlive-amsmath-it
+           texlive-amsthdoc-it
+           texlive-antanilipsum
+           texlive-babel-italian
+           texlive-codicefiscaleitaliano
+           texlive-collection-basic
+           texlive-fancyhdr-it
+           texlive-fixltxhyph
+           texlive-frontespizio
+           texlive-hyphen-complete
+           texlive-itnumpar
+           texlive-l2tabu-italian
+           texlive-latex4wp-it
+           texlive-layaureo
+           texlive-lshort-italian
+           texlive-psfrag-italian
+           texlive-verifica))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Italian")
+    (description "This collection provides support packages for Italian.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langjapanese
+  (package
+    (name "texlive-collection-langjapanese")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-ascmac
+           texlive-asternote
+           texlive-babel-japanese
+           texlive-bxbase
+           texlive-bxcjkjatype
+           texlive-bxghost
+           texlive-bxjaholiday
+           texlive-bxjalipsum
+           texlive-bxjaprnind
+           texlive-bxjatoucs
+           texlive-bxjscls
+           texlive-bxorigcapt
+           texlive-bxwareki
+           texlive-collection-langcjk
+           texlive-convbkmk
+           texlive-endnotesj
+           texlive-gckanbun
+           texlive-gentombow
+           texlive-haranoaji
+           texlive-haranoaji-extra
+           texlive-ieejtran
+           texlive-ifptex
+           texlive-ifxptex
+           texlive-ipaex
+           texlive-japanese-mathformulas
+           texlive-japanese-otf
+           texlive-jieeetran
+           texlive-jlreq
+           texlive-jlreq-deluxe
+           texlive-jpneduenumerate
+           texlive-jpnedumathsymbols
+           texlive-jsclasses
+           texlive-kanbun
+           texlive-lshort-japanese
+           texlive-luatexja
+           texlive-mendex-doc
+           texlive-morisawa
+           texlive-pbibtex-base
+           texlive-pbibtex-manual
+           texlive-platex
+           texlive-platex-tools
+           texlive-platexcheat
+           texlive-plautopatch
+           texlive-ptex
+           texlive-ptex-base
+           texlive-ptex-fontmaps
+           texlive-ptex-fonts
+           texlive-ptex-manual
+           texlive-ptex2pdf
+           texlive-pxbase
+           texlive-pxchfon
+           texlive-pxcjkcat
+           texlive-pxjahyper
+           texlive-pxjodel
+           texlive-pxrubrica
+           texlive-pxufont
+           texlive-uplatex
+           texlive-uptex
+           texlive-uptex-base
+           texlive-uptex-fonts
+           texlive-wadalab
+           texlive-zxjafbfont
+           texlive-zxjatype))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Japanese")
+    (description
+     "This collection provides support for Japanese, with additional packages
+from @code{collection-langcjk}.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langkorean
+  (package
+    (name "texlive-collection-langkorean")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-baekmuk
+           texlive-cjk-ko
+           texlive-collection-langcjk
+           texlive-kotex-oblivoir
+           texlive-kotex-plain
+           texlive-kotex-utf
+           texlive-kotex-utils
+           texlive-lshort-korean
+           texlive-nanumtype1
+           texlive-pmhanguljamo
+           texlive-uhc
+           texlive-unfonts-core
+           texlive-unfonts-extra))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Korean")
+    (description
+     "This collection provides support for Korean, with additional packages
+from @code{collection-langcjk}.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langother
+  (package
+    (name "texlive-collection-langother")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-aalok
+           texlive-akshar
+           texlive-amsldoc-vn
+           texlive-aramaic-serto
+           texlive-babel-azerbaijani
+           texlive-babel-esperanto
+           texlive-babel-georgian
+           texlive-babel-hebrew
+           texlive-babel-indonesian
+           texlive-babel-interlingua
+           texlive-babel-malay
+           texlive-babel-sorbian
+           texlive-babel-thai
+           texlive-babel-vietnamese
+           texlive-bangla
+           texlive-bangtex
+           texlive-bengali
+           texlive-burmese
+           texlive-chhaya
+           texlive-cjhebrew
+           texlive-collection-basic
+           texlive-ctib
+           texlive-ebong
+           texlive-ethiop
+           texlive-ethiop-t1
+           texlive-fc
+           texlive-fonts-tlwg
+           texlive-hindawi-latex-template
+           texlive-hyphen-complete
+           texlive-latex-mr
+           texlive-latexbangla
+           texlive-latino-sine-flexione
+           texlive-lshort-thai
+           texlive-lshort-vietnamese
+           texlive-marathi
+           texlive-ntheorem-vn
+           texlive-padauk
+           texlive-quran-bn
+           texlive-quran-ur
+           texlive-sanskrit
+           texlive-sanskrit-t1
+           texlive-thaienum
+           texlive-thaispec
+           texlive-unicode-alphabets
+           texlive-velthuis
+           texlive-vntex
+           texlive-wnri
+           texlive-wnri-latex
+           texlive-xetex-devanagari))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support other languages")
+    (description
+     "This collection provides support for languages not otherwise listed,
+including Indic, Thai, Vietnamese, Hebrew, Indonesian, African languages, and
+plenty more.  The split is made simply on the basis of the size of the
+support, to keep both collection sizes and the number of collections
+reasonable.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langpolish
+  (package
+    (name "texlive-collection-langpolish")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-polish
+           texlive-bredzenie
+           texlive-cc-pl
+           texlive-collection-basic
+           texlive-collection-latex
+           texlive-gustlib
+           texlive-gustprog
+           texlive-hyphen-complete
+           texlive-lshort-polish
+           texlive-mex
+           texlive-mwcls
+           texlive-pl
+           texlive-polski
+           texlive-przechlewski-book
+           texlive-qpxqtx
+           texlive-tap
+           texlive-tex-virtual-academy-pl
+           texlive-utf8mex))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Polish")
+    (description "This collection provides support packages for Polish.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langportuguese
+  (package
+    (name "texlive-collection-langportuguese")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-portuges
+           texlive-beamer-tut-pt
+           texlive-collection-basic
+           texlive-cursolatex
+           texlive-feupphdteses
+           texlive-hyphen-complete
+           texlive-latex-via-exemplos
+           texlive-latexcheat-ptbr
+           texlive-lshort-portuguese
+           texlive-numberpt
+           texlive-ordinalpt
+           texlive-xypic-tut-pt))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Portuguese")
+    (description "This collection provides support packages for Portuguese.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
+(define-public texlive-collection-langspanish
+  (package
+    (name "texlive-collection-langspanish")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-babel-catalan
+           texlive-babel-galician
+           texlive-babel-spanish
+           texlive-collection-basic
+           texlive-es-tex-faq
+           texlive-hyphen-complete
+           texlive-l2tabu-spanish
+           texlive-latex2e-help-texinfo-spanish
+           texlive-latexcheat-esmx
+           texlive-lshort-spanish))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Support for Spanish")
+    (description "This collection provides support packages for Spanish.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
 (define-public texlive-collection-latex
   (package
     (name "texlive-collection-latex")
@@ -30292,6 +46392,55 @@ science packages.")
 with packages in @code{collection-basic}.")
     (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
 
+(define-public texlive-collection-music
+  (package
+    (name "texlive-collection-music")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-abc
+           texlive-autosp
+           texlive-bagpipe
+           texlive-chordbars
+           texlive-chordbox
+           texlive-collection-latex
+           texlive-ddphonism
+           texlive-figbas
+           texlive-gchords
+           texlive-gregoriotex
+           texlive-gtrcrd
+           texlive-guitar
+           texlive-guitarchordschemes
+           texlive-guitartabs
+           texlive-harmony
+           texlive-latex4musicians
+           texlive-leadsheets
+           texlive-lilyglyphs
+           texlive-lyluatex
+           texlive-m-tx
+           texlive-musical
+           texlive-musicography
+           texlive-musixguit
+           texlive-musixtex
+           texlive-musixtex-fonts
+           texlive-musixtnt
+           texlive-octave
+           texlive-piano
+           texlive-pmx
+           texlive-pmxchords
+           texlive-recorder-fingering
+           texlive-songbook
+           texlive-songproj
+           texlive-songs
+           texlive-xml2pmx
+           texlive-xpiano))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "Music packages")
+    (description "This collection includes music-related fonts and packages.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
 (define-public texlive-collection-pictures
   (package
     (name "texlive-collection-pictures")
@@ -30671,6 +46820,134 @@ PStricks are separate.")
 often LaTeX, and occasionally other formats.")
     (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
 
+(define-public texlive-collection-pstricks
+  (package
+    (name "texlive-collection-pstricks")
+    (version (number->string %texlive-revision))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments (list #:builder #~(mkdir #$output)))
+    (propagated-inputs
+     (list texlive-auto-pst-pdf
+           texlive-bclogo
+           texlive-collection-basic
+           texlive-collection-plaingeneric
+           texlive-dsptricks
+           texlive-luapstricks
+           texlive-makeplot
+           texlive-pdftricks
+           texlive-pdftricks2
+           texlive-pedigree-perl
+           texlive-psbao
+           texlive-pst-2dplot
+           texlive-pst-3d
+           texlive-pst-3dplot
+           texlive-pst-abspos
+           texlive-pst-am
+           texlive-pst-antiprism
+           texlive-pst-arrow
+           texlive-pst-asr
+           texlive-pst-bar
+           texlive-pst-barcode
+           texlive-pst-bezier
+           texlive-pst-blur
+           texlive-pst-bspline
+           texlive-pst-calculate
+           texlive-pst-calendar
+           texlive-pst-cie
+           texlive-pst-circ
+           texlive-pst-coil
+           texlive-pst-contourplot
+           texlive-pst-cox
+           texlive-pst-dart
+           texlive-pst-dbicons
+           texlive-pst-diffraction
+           texlive-pst-electricfield
+           texlive-pst-eps
+           texlive-pst-eucl
+           texlive-pst-exa
+           texlive-pst-feyn
+           texlive-pst-fill
+           texlive-pst-fit
+           texlive-pst-flags
+           texlive-pst-fr3d
+           texlive-pst-fractal
+           texlive-pst-fun
+           texlive-pst-func
+           texlive-pst-gantt
+           texlive-pst-geo
+           texlive-pst-geometrictools
+           texlive-pst-gr3d
+           texlive-pst-grad
+           texlive-pst-graphicx
+           texlive-pst-hsb
+           texlive-pst-infixplot
+           texlive-pst-intersect
+           texlive-pst-jtree
+           texlive-pst-knot
+           texlive-pst-labo
+           texlive-pst-layout
+           texlive-pst-lens
+           texlive-pst-light3d
+           texlive-pst-lsystem
+           texlive-pst-magneticfield
+           texlive-pst-marble
+           texlive-pst-math
+           texlive-pst-mirror
+           texlive-pst-moire
+           texlive-pst-node
+           texlive-pst-ob3d
+           texlive-pst-ode
+           texlive-pst-optexp
+           texlive-pst-optic
+           texlive-pst-osci
+           texlive-pst-ovl
+           texlive-pst-pad
+           texlive-pst-pdf
+           texlive-pst-pdgr
+           texlive-pst-perspective
+           texlive-pst-platon
+           texlive-pst-plot
+           texlive-pst-poker
+           texlive-pst-poly
+           texlive-pst-pulley
+           texlive-pst-qtree
+           texlive-pst-rputover
+           texlive-pst-rubans
+           texlive-pst-shell
+           texlive-pst-sigsys
+           texlive-pst-slpe
+           texlive-pst-solarsystem
+           texlive-pst-solides3d
+           texlive-pst-soroban
+           texlive-pst-spectra
+           texlive-pst-spinner
+           texlive-pst-stru
+           texlive-pst-support
+           texlive-pst-text
+           texlive-pst-thick
+           texlive-pst-tools
+           texlive-pst-tree
+           texlive-pst-turtle
+           texlive-pst-tvz
+           texlive-pst-uml
+           texlive-pst-vectorian
+           texlive-pst-vehicle
+           texlive-pst-venn
+           texlive-pst-vowel
+           texlive-pst2pdf
+           texlive-pstricks
+           texlive-pstricks-add
+           texlive-pstricks-calcnotes
+           texlive-uml
+           texlive-vaucanson-g
+           texlive-vocaltract))
+    (home-page "https://www.tug.org/texlive/")
+    (synopsis "PSTricks core and add-ons")
+    (description
+     "This collection provides PSTricks core and all add-on packages.")
+    (license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
+
 (define-public texlive-collection-xetex
   (package
     (name "texlive-collection-xetex")
@@ -31644,6 +47921,24 @@ in your document (DOT and Neato are both part of @code{graphviz}; DOT creates
 directed graphs, Neato undirected graphs).")
     (license license:gpl3+)))
 
+(define-public texlive-doulossil
+  (package
+    (name "texlive-doulossil")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/doulossil/"
+                   "fonts/truetype/public/doulossil/")
+             (base32
+              "0frhwpm7xzhhz83wpmlrwgz3c3bpvhm8pa0b6vkdgm8qj799irrb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/doulossil")
+    (synopsis "Font for typesetting the International Phonetic Alphabet (IPA)")
+    (description
+     "This package provides the IPA font Doulos SIL in TrueType format.")
+    (license license:silofl1.1)))
+
 (define-public texlive-dpcircling
   (package
     (name "texlive-dpcircling")
@@ -32778,6 +49073,142 @@ to bases 2, 4, 8 and 16.  All constructs TeX accepts as arguments to its
 may be used under LaTeX and plain TeX.")
     (license (license:fsf-free "file:/binhex.dtx"))))
 
+(define-public texlive-translation-arsclassica-de
+  (package
+    (name "texlive-translation-arsclassica-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-arsclassica-de/")
+             (base32
+              "1ix5lafy3ay2bc9zkkbqw2rrw6ng3izb8d9p6rki6h2j7n0qj47s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-arsclassica-de")
+    (synopsis "German version of @code{arsclassica}")
+    (description
+     "This is a German translation of the @code{arsclassica} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-translation-biblatex-de
+  (package
+    (name "texlive-translation-biblatex-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-biblatex-de/")
+             (base32
+              "1ygbz7prjg6pdiqm7lknnk8a9ar05xvpdam38piivif3d3yk5bg1")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-biblatex-de")
+    (synopsis "German translation of the User Guide for BibLaTeX")
+    (description
+     "This package provides a German translation of the User Guide for
+BibLaTeX.")
+    (license license:lppl)))
+
+(define-public texlive-translation-chemsym-de
+  (package
+    (name "texlive-translation-chemsym-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-chemsym-de/")
+             (base32
+              "01liazqafs3lh9ppipw6i6sljcjzr31nq70r83qgknqmb9j0yfl0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-chemsym-de")
+    (synopsis "German version of @code{chemsym}")
+    (description
+     "This is a German translation of the @code{chemsym} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-translation-ecv-de
+  (package
+    (name "texlive-translation-ecv-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-ecv-de/")
+             (base32
+              "06b4vhsgdphi6kdh5x4a2kl74b64z3y5qzxcpkn0hj40038z1av7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-ecv-de")
+    (synopsis "@code{ecv} documentation, in German")
+    (description "This is a German translation of the @code{ecv} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-translation-enumitem-de
+  (package
+    (name "texlive-translation-enumitem-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-enumitem-de/")
+             (base32
+              "121raikamd33gabvbgwygrc8hyi3qhvx4hhv4h8wq2chrglj37dq")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-enumitem-de")
+    (synopsis "@code{enumitem} documentation, in German")
+    (description
+     "This is a German translation of the manual for @code{enumitem}.")
+    (license license:lppl)))
+
+(define-public texlive-translation-europecv-de
+  (package
+    (name "texlive-translation-europecv-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-europecv-de/")
+             (base32
+              "0n3x8g6k3qq3f4drkhzygz4khxyw6isgxmz963xqp91s0y667gws")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-europecv-de")
+    (synopsis "German version of @code{europecv}")
+    (description
+     "This is a German translation of the @code{europecv} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-translation-filecontents-de
+  (package
+    (name "texlive-translation-filecontents-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-filecontents-de/")
+             (base32
+              "0d2ds8kc98yd1can0gzcngm7gsn2gwhriaxnnds5kz3z3al71gkc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-filecontents-de")
+    (synopsis "German version of @code{filecontents}")
+    (description
+     "This is a German translation of the @code{filecontents} documentation.")
+    (license license:lppl)))
+
+(define-public texlive-translation-moreverb-de
+  (package
+    (name "texlive-translation-moreverb-de")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/translation-moreverb-de/")
+             (base32
+              "1jbpmvcm9q73kh09mhrbsb2wlycwwm4n8il342hz4jd15gwhmy8f")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/translation-moreverb-de")
+    (synopsis "German version of @code{moreverb}")
+    (description
+     "This is a German translation of the @code{moreverb} documentation.")
+    (license license:lppl)))
+
 (define-public texlive-translations
   (package
     (name "texlive-translations")
@@ -32873,6 +49304,97 @@ conference posters.")
 
 (define-deprecated-package texlive-latex-textpos texlive-textpos)
 
+(define-public texlive-udesoftec
+  (package
+    (name "texlive-udesoftec")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/udesoftec/"
+                   "doc/latex/udesoftec/"
+                   "source/latex/udesoftec/"
+                   "tex/latex/udesoftec/")
+             (base32
+              "02ja6n570hc1521anr12lkgc5xrcfg97lxca2pylwgi5bfkbsr0b")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/udesoftec")
+    (synopsis "Thesis class for the University of Duisburg-Essen")
+    (description
+     "The class is designed for typesetting theses in the Research Group for
+Business Informatics and Software Engineering.  (The class may also serve as
+a template for such theses.)  The class is designed for use with pdfLaTeX;
+input in UTF-8 encoding is assumed.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-uhc
+  (package
+    (name "texlive-uhc")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/uhc/umj/"
+                   "dvips/uhc/"
+                   "fonts/afm/uhc/umj/"
+                   "fonts/map/dvips/uhc/"
+                   "fonts/tfm/uhc/umj/"
+                   "fonts/tfm/uhc/uwmj/"
+                   "fonts/tfm/uhc/wmj/"
+                   "fonts/type1/uhc/umj/"
+                   "fonts/vf/uhc/uwmj/"
+                   "fonts/vf/uhc/wmj/")
+             (base32
+              "1hpqdzmz4xrcgk443lysif8yk52rbra8rh6cjjfr4kibyfpy77p3")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/uhc")
+    (synopsis "Fonts for the Korean language")
+    (description
+     "This package provides support for Korean documents written in Korean
+standard KSC codes for LaTeX2e.")
+    (license license:lppl)))
+
+(define-public texlive-uhrzeit
+  (package
+    (name "texlive-uhrzeit")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/uhrzeit/" "tex/latex/uhrzeit/")
+             (base32
+              "18qms6ych9q8bras2ajkl4z3dmnrp07gpzizywz206c3i1any3rc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/uhrzeit")
+    (synopsis "Time printing, in German")
+    (description
+     "The primary goal of this package is to facilitate formats and ranges of
+times as formerly used in Germany.  A variety of printing formats are
+available.")
+    (license license:lppl1.3+)))
+
+(define-public texlive-umlaute
+  (package
+    (name "texlive-umlaute")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/umlaute/" "source/latex/umlaute/"
+                   "tex/latex/umlaute/")
+             (base32
+              "1fz2v0p8a46car0iga8m0si7ampff8hqpsmc9v2miqqzmdlqcqcj")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/umlaute")
+    (synopsis "German input encodings in LaTeX")
+    (description
+     "This is an early package for using alternate input encodings.  The
+author considers the package mostly obsolete, since most of its functions are
+taken by the @code{inputenc} package; however, @code{inputenc} doesn't support
+the @code{roman8} and @code{atari} encodings, so umlaute remains the sole
+source of that support.")
+    (license license:lppl)))
+
 (define-public texlive-unicode-math
   (package
     (name "texlive-unicode-math")
@@ -32910,6 +49432,26 @@ fonts:
 @end itemize")
     (license license:lppl1.3c+)))
 
+(define-public texlive-voss-mathcol
+  (package
+    (name "texlive-voss-mathcol")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/voss-mathcol/")
+             (base32
+              "1c7kzk2m2i8f6vqywnzfvcmv11ckanhcjxf72p4rgivw8f0lbwjm")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/voss-mathcol")
+    (synopsis "Typesetting mathematics in colour, in (La)TeX")
+    (description
+     "This is a short paper from the TeXnische Komodie, in German.  Since the
+body of the paper is dominated by clear LaTeX coding examples, most LaTeX
+programmers will understand how to achieve the results shown in the diagrams,
+even if they don't understand German.")
+    (license license:lppl)))
+
 (define-public texlive-xifthen
   (package
     (name "texlive-xifthen")
@@ -32989,6 +49531,23 @@ SGML-based languages.  Xindy is highly configurable, both in markup terms and
 in terms of the collating order of the text being processed.")
     (license license:gpl2+)))
 
+(define-public texlive-xindy-persian
+  (package
+    (name "texlive-xindy-persian")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/support/xindy-persian/")
+             (base32
+              "04w3h65215slnakk5w19m94xmj9cjx01izbk9xijifv5l6dqh447")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/xindy-persian")
+    (synopsis "Support for the Persian language in Xindy")
+    (description
+     "The package offers Persian language support for indexing using Xindy.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-xits
   (package
     (name "texlive-xits")
@@ -33077,6 +49636,24 @@ support for @code{amsmath} displayed-equation environments); and support for
 making a list of theorems, analagous to @code{\\listoffigures}.")
     (license license:lppl)))
 
+(define-public texlive-ntheorem-vn
+  (package
+    (name "texlive-ntheorem-vn")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/ntheorem-vn/")
+             (base32
+              "13lkgb4qjiblbfm4jcxgkxsf08zk90lqz02bxrmim1n8gvyihwcc")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/ntheorem-vn")
+    (synopsis "Vietnamese translation of documentation of @code{ntheorem}")
+    (description
+     "This is a translation of the documentation provided with
+@code{ntheorem}.")
+    (license license:lppl)))
+
 (define-public texlive-fmtcount
   (package
     (name "texlive-fmtcount")
@@ -33251,6 +49828,25 @@ for citations.  The package follows the 6th edition of the APA manual, and is
 designed to work with the @code{apa6} class.")
     (license license:lppl)))
 
+(define-public texlive-apalike-german
+  (package
+    (name "texlive-apalike-german")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "bibtex/bst/apalike-german/"
+                   "doc/bibtex/apalike-german/")
+             (base32
+              "15mr1s9622bj5vmmlw7cp0afcbrz2h4kq9cp303ijklcslfsx748")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/apalike-german")
+    (synopsis "Copy of @file{apalike.bst} with German localization")
+    (description
+     "This package provides a copy of @file{apalike.bst}, which is part of the
+base BibTeX distribution, with German localization.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-endfloat
   (package
     (name "texlive-endfloat")
@@ -33271,6 +49867,54 @@ the end of the document, optionally leaving markers in the text near to where
 the figure (or table) would normally have occurred.")
     (license license:gpl3+)))
 
+(define-public texlive-wadalab
+  (package
+    (name "texlive-wadalab")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/wadalab/"
+                   "fonts/afm/wadalab/dgj/"
+                   "fonts/afm/wadalab/dmj/"
+                   "fonts/afm/wadalab/mc2j/"
+                   "fonts/afm/wadalab/mcj/"
+                   "fonts/afm/wadalab/mr2j/"
+                   "fonts/afm/wadalab/mrj/"
+                   "fonts/map/dvips/wadalab/"
+                   "fonts/tfm/wadalab/dgj/"
+                   "fonts/tfm/wadalab/dmj/"
+                   "fonts/tfm/wadalab/mc2j/"
+                   "fonts/tfm/wadalab/mcj/"
+                   "fonts/tfm/wadalab/mr2j/"
+                   "fonts/tfm/wadalab/mrj/"
+                   "fonts/tfm/wadalab/udgj/"
+                   "fonts/tfm/wadalab/udmj/"
+                   "fonts/tfm/wadalab/umcj/"
+                   "fonts/tfm/wadalab/umrj/"
+                   "fonts/type1/wadalab/dgj/"
+                   "fonts/type1/wadalab/dmj/"
+                   "fonts/type1/wadalab/mc2j/"
+                   "fonts/type1/wadalab/mcj/"
+                   "fonts/type1/wadalab/mr2j/"
+                   "fonts/type1/wadalab/mrj/"
+                   "fonts/vf/wadalab/udgj/"
+                   "fonts/vf/wadalab/udmj/"
+                   "fonts/vf/wadalab/umcj/"
+                   "fonts/vf/wadalab/umrj/")
+             (base32
+              "1i72xbn28wh2rl4j1yzl1rvb5nd8bxmci9q9qjzynwq845zgjvnk")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/wadalab")
+    (synopsis "Wadalab (Japanese) font packages")
+    (description
+     "These are font bundles for the Japanese Wadalab fonts which work with
+the CJK package.  All subfonts now have glyph names compliant to the Adobe
+Glyph List, making ToUnicode CMaps in PDF documents (created automatically by
+@code{dvipdfmx}) work correctly.  All font bundles now contain virtual Unicode
+subfonts.")
+    (license (license:fsf-free "https://fedoraproject.org/wiki/Licensing:Wadalab"))))
+
 (define-public texlive-was
   (package
     (name "texlive-was")
@@ -34051,6 +50695,29 @@ to load external Lua modules, including modules installed via LuaRocks.")
 cells using LaTeX macros.")
     (license license:expat)))
 
+(define-public texlive-luapstricks
+  (package
+    (name "texlive-luapstricks")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/lualatex/luapstricks/"
+                   "fonts/opentype/public/luapstricks/"
+                   "tex/lualatex/luapstricks/")
+             (base32
+              "160y66x93rcm0zpjscxyqbfkhbl0yypv0gyixm6vjwcm50vi2w5k")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/luapstricks")
+    (synopsis "PSTricks backend for LuaLaTeX")
+    (description
+     "This package enables the use of PSTricks directly in LuaLaTeX documents,
+without invoking external programmes, by implementing a PostScript interpreter
+in Lua.  Therefore it does not require shell escape to be enabled or special
+environments, and instead allows PSTricks to be used exactly like in Dvips
+based documents.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-luaquotes
   (package
     (name "texlive-luaquotes")
@@ -34245,6 +50912,26 @@ makecell with an easy to use syntax.  It also adds some enhanced rules for the
 @code{booktabs} package.")
     (license license:expat)))
 
+(define-public texlive-makeplot
+  (package
+    (name "texlive-makeplot")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/makeplot/"
+                   "source/latex/makeplot/"
+                   "tex/latex/makeplot/")
+             (base32
+              "1w34508lvb6rjhp41k78ph2p609mk03n8sp4mfgmhdpay0qxyjz5")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/makeplot")
+    (synopsis "Easy plots from Matlab in LaTeX")
+    (description
+     "Makeplot is a LaTeX package that uses the PSTricks @code{pst-plot}
+functions to plot data that it takes from Matlab output files.")
+    (license license:lppl)))
+
 (define-public texlive-minim
   (package
     (name "texlive-minim")
@@ -34631,6 +51318,94 @@ integrated into the LaTeX kernel (or in parts into permanent support
 packages), and the current testphase bundle will be removed.")
     (license license:lppl1.3c)))
 
+(define-public texlive-pdftricks
+  (package
+    (name "texlive-pdftricks")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pdftricks/"
+                   "tex/latex/pdftricks/")
+             (base32
+              "07vr97rgn0n73zb2b3sb3wkwxl0p6nbnjk0cgxd05drf1k8shxnp")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pdftricks")
+    (synopsis "Support for PSTricks in pdfTeX")
+    (description
+     "The PSTricks macros cannot be used (directly) with pdfTeX, since
+PSTricks uses PostScript arithmetic, which isn't part of PDF.  This package
+circumvents this limitation so that the extensive facilities offered by the
+powerful PSTricks package can be made use of in a pdfTeX document.  This is
+done using the shell escape function available in current TeX implementations.
+The package may also be used in support of other PostScript-output-only
+packages, such as PSfrag.")
+    (license license:gpl3+)))
+
+(define-public texlive-pdftricks2
+  (package
+    (name "texlive-pdftricks2")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/pdftricks2/"
+                   "tex/latex/pdftricks2/")
+             (base32
+              "0znq52nzknv0x16cqbpfi90gz89frzk74ww3sg7ibjacmbpfl3j0")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/pdftricks2")
+    (synopsis "Use PSTricks in pdfTeX")
+    (description
+     "The package provides the means of processing documents that contain
+PSTricks graphics specifications.  The package is inspired by
+@code{pdftricks}.")
+    (license license:gpl2)))
+
+(define-public texlive-pedigree-perl
+  (package
+    (name "texlive-pedigree-perl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/man/man1/pedigree.1"
+                   "doc/man/man1/pedigree.man1.pdf"
+                   "doc/support/pedigree-perl/"
+                   "scripts/pedigree-perl/"
+                   "source/latex/pedigree-perl/")
+             (base32
+              "0s2186j4hx5v12g5r8admif2ysi6nnm8d0xxpwq26brfcjrbbh7r")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:link-scripts #~(list "pedigree.pl")))
+    (inputs (list perl))
+    (home-page "https://ctan.org/pkg/pedigree-perl")
+    (synopsis "Generate TeX pedigree files from CSV files")
+    (description
+     "This program generates TeX commands to typeset pedigrees --- either TeX
+fragments or full LaTeX files, to be processed by the @code{pst-pdgr} package.
+The program has support for multilanguage pedigrees (at the present moment the
+English and Russian languages are supported).")
+    (license license:gpl2)))
+
+(define-public texlive-psbao
+  (package
+    (name "texlive-psbao")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/psbao/" "tex/latex/psbao/")
+             (base32
+              "11gfnjvhrgic18s45pj6hn8slj9kmrmsrh4kqn83sfdxy2mr2y32")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/psbao")
+    (synopsis "Draw Bao diagrams")
+    (description
+     "The package draws Bao diagrams in LaTeX.  The package is a development
+of @code{psgo}, and uses PSTricks to draw the diagrams.")
+    (license license:lppl)))
+
 (define-public texlive-pslatex
   (package
     (name "texlive-pslatex")
@@ -34851,6 +51626,67 @@ a number of @code{\\magsteps} to change size; from this are defined commands
 @code{\\larger}, @code{\\smaller}, @code{\\textlarger}, etc.")
     (license license:public-domain)))
 
+(define-public texlive-russ
+  (package
+    (name "texlive-russ")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/russ/" "tex/latex/russ/")
+             (base32
+              "0ixvdjvgrqn5z8glvbr1i9k4yw00n260d11n034x6j67srxph3rb")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/russ")
+    (synopsis "LaTeX in Russian, without Babel")
+    (description
+     "The package aims to facilitate Russian typesetting (based on input using
+MicroSoft Code Page 1251).  Russian hyphenation is selected, and various
+mathematical commands are set up in Russian style.  Furthermore all Cyrillic
+letters catcodes are set to @samp{letter}, so that commands with Cyrillic
+letters in their names may be defined.")
+    (license license:lppl)))
+
+(define-public texlive-everyhook
+  (package
+    (name "texlive-everyhook")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/everyhook/"
+                   "source/latex/everyhook/"
+                   "tex/latex/everyhook/")
+             (base32
+              "0rcw2d5ncq8avk33nxika34q3da1v4kcmr6jqdxdg49bq4h8ljs7")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (arguments (list #:tex-format "latex"))
+    (native-inputs
+     (list (texlive-updmap.cfg
+            (list texlive-bera
+                  texlive-enumitem
+                  texlive-etoolbox
+                  texlive-hypdoc
+                  texlive-inconsolata
+                  texlive-lipsum
+                  texlive-listings
+                  texlive-mathpazo
+                  texlive-microtype
+                  texlive-palatino
+                  texlive-svn-prov
+                  texlive-upquote
+                  texlive-xkeyval))))
+    (home-page "https://ctan.org/pkg/everyhook")
+    (synopsis "Hooks for standard TeX token lists")
+    (description
+     "The package takes control of the six TeX token registers @code{\\everypar},
+@code{\\everymath}, @code{\\everydisplay}, @code{\\everyhbox},
+@code{\\everyvbox} and @code{\\everycr}.  Real hooks for each of the registers
+may be installed using a stack like interface.  For backwards compatibility,
+each of the @code{\\everyX} token lists can be set without interfering with
+the hooks.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-everypage
   (package
     (name "texlive-everypage")
@@ -34974,6 +51810,28 @@ the @code{abstract} environment, and in particular provides for a one column
 abstract in a two column paper.")
     (license license:lppl)))
 
+(define-public texlive-bredzenie
+  (package
+    (name "texlive-bredzenie")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/latex/bredzenie/"
+                   "tex/latex/bredzenie/")
+             (base32
+              "07ixmdcg2kxnaf2wacq6imp6i159jmyy3xn16135j8ddl2kbxp4s")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (home-page "https://ctan.org/pkg/bredzenie")
+    (synopsis
+     "Polish version of ``lorem ipsum'' in the form of a LaTeX package")
+    (description
+     "This is a polish version of the classic pseudo-Latin ``lorem ipsum dolor
+sit amet''.  It provides access to several paragraphs of pseudo-Polish
+generated with Hidden Markov Models and Recurrent Neural Networks trained on
+a corpus of Polish.")
+    (license license:lppl1.3c)))
+
 (define-public texlive-breqn
   (package
     (name "texlive-breqn")
@@ -35019,6 +51877,29 @@ the middle of the created link: the link comes in one atomic piece.  This
 package allows such line breaks in the generated links.")
     (license license:lppl)))
 
+(define-public texlive-cc-pl
+  (package
+    (name "texlive-cc-pl")
+    (version (number->string %texlive-revision))
+    (source (texlive-origin
+             name version
+             (list "doc/fonts/cc-pl/" "fonts/map/dvips/cc-pl/"
+                   "fonts/source/public/cc-pl/"
+                   "fonts/tfm/public/cc-pl/"
+                   "fonts/type1/public/cc-pl/")
+             (base32
+              "0wxpa4s2rx54z259zmg5km91ycydra4d9kn3y6mhkvjjif1yl8av")))
+    (outputs '("out" "doc"))
+    (build-system texlive-build-system)
+    (native-inputs (list texlive-concrete texlive-metafont texlive-pl))
+    (home-page "https://ctan.org/pkg/cc-pl")
+    (synopsis "Polish extension of Computer Concrete fonts")
+    (description
+     "These Metafont sources rely on the availability of the Metafont Polish
+fonts and of the Metafont sources of the original Concrete fonts.  Adobe Type
+1 versions of the fonts are included.")
+    (license license:public-domain)))
+
 (define-public texlive-comment
   (package
     (name "texlive-comment")
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 4e026fc6f9..2eb0f0986f 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -1470,7 +1470,7 @@ JSON for post-processing
 (define-public ack
   (package
     (name "ack")
-    (version "3.5.0")
+    (version "3.7.0")
     (source (origin
               (method git-fetch)
               (uri
@@ -1479,7 +1479,7 @@ JSON for post-processing
                 (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "00131vqjbzcn6w22m0h3j6x9kp59dimfnnqhpmi78vbcj0jws1dv"))))
+               (base32 "0xrbgjj3nys4158nskd0npqf825xlrqa2x3fqcfz0nnxai2jzbck"))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index f51c47db04..b669ac2e8d 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -659,14 +659,14 @@ kilobytes of RAM.")
 (define-public libressl
   (package
     (name "libressl")
-    (version "3.6.1")
+    (version "3.7.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://openbsd/LibreSSL/"
                                   "libressl-" version ".tar.gz"))
               (sha256
                (base32
-                "0x37037rb0zx34zp0kbbqj2xwd57gh1m6bfn52f92fz92q9wdymc"))))
+                "1csx6gfgiqr43dw23qj2mr5jbkcd99kqavwb4vbmp0hcm5bchj3r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 8ae2118188..7fec88656f 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -63,14 +63,14 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.7.13")
+    (version "0.4.7.14")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "17ga25dq2lcph390ljqmyd8sggp97h42d3h423qmci83rqn1fy90"))))
+               "1y2xwrji1rvk6h0k15705yra5s74h72h2g84x02zr0338vv6gb55"))))
     (build-system gnu-build-system)
     (arguments
      (list #:configure-flags
diff --git a/gnu/packages/tryton.scm b/gnu/packages/tryton.scm
index 0b367675ae..f5d193cc6f 100644
--- a/gnu/packages/tryton.scm
+++ b/gnu/packages/tryton.scm
@@ -129,7 +129,7 @@ and security.")
      `(("glib-compile-schemas" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)))
     (propagated-inputs
-     (list librsvg
+     (list (librsvg-for-system)
            gsettings-desktop-schemas
            gtk+
            python-dateutil
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index c6bfaad4db..699a091642 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -3097,7 +3097,7 @@ will reconstruct the object along its delta-base chain and return it.")
 (define-public git-lfs
   (package
     (name "git-lfs")
-    (version "3.3.0")
+    (version "3.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3106,7 +3106,7 @@ will reconstruct the object along its delta-base chain and return it.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1g268pplld04b9myhlrwc4fd8r1hvfyya5ja8wr558rar3pgsp5g"))))
+                "0ljjs8kyznp2ifkqdcd9q3550sknyx5qxx247icwkd9djjq7x74m"))))
     (build-system go-build-system)
     (arguments
      (list
@@ -3171,7 +3171,7 @@ file contents on a remote server.")
 (define-public lfs-s3
   (package
     (name "lfs-s3")
-    (version "0.1.2")
+    (version "0.1.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3180,7 +3180,7 @@ file contents on a remote server.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ncfy3lgc7dik9k71xk9l5f2llsh2jk33aaqb8dkslschc1mx4g6"))))
+                "0yilbxpia2lh36s872hiji77hazy83h2zc0iyqldrf3r18szqniw"))))
     (build-system go-build-system)
     (arguments
      (list
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index c7143e38e1..4b0e33ca63 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -723,7 +723,7 @@ is fully configurable and extensible in Common Lisp.")
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.16.6")
+    (version "1.16.7")
     (source
      (origin
        (method url-fetch)
@@ -731,7 +731,7 @@ is fully configurable and extensible in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "05wqg78l6jwbsmy8rsz14cp2wl1wss02vwrzfzpyx8qhjxcw7v32"))
+        (base32 "0ig7xdsihq7wc8h7n1af275z3kjxq5iiy0x4dwjahgligrdmj7vm"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b56fad1876..46a60b8b15 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -326,7 +326,7 @@ and its related documentation.")
 (define-public miniflux
   (package
     (name "miniflux")
-    (version "2.0.44")
+    (version "2.0.46")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -335,21 +335,32 @@ and its related documentation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "18ggk71nk3zylgkwq32glggdcapgsj772qn2y4i9hbk374l6h61w"))))
+                "1qv95kipjlg374kiq6gssh5jsb5arahq4jsb7vkg3njnx0ldwvkb"))))
     (build-system go-build-system)
     (arguments
      (list #:go go-1.19
            #:install-source? #f
            #:import-path "miniflux.app"
+           #:build-flags
+           #~(list (string-append
+                    "-ldflags= -X miniflux.app/version.Version=" #$version))
            #:phases
            #~(modify-phases %standard-phases
-               (add-after 'install 'rename-binary
+               (add-before 'build 'disable-cgo
+                 (lambda _
+                   (setenv "CGO_ENABLED" "0")))
+               (add-after 'install 'install-manpage
+                 (lambda* (#:key import-path #:allow-other-keys)
+                   (let ((man1 (string-append #$output "/share/man/man1/"))
+                         (page (format #f "src/~a/miniflux.1" import-path)))
+                     (install-file page man1))))
+               (add-after 'install-manpage 'rename-binary
                  (lambda _
                    (let ((bindir (string-append #$output "/bin/")))
                      (rename-file (string-append bindir "miniflux.app")
                                   (string-append bindir "miniflux"))))))))
     (inputs
-     (list go-github-com-coreos-go-oidc
+     (list go-github-com-coreos-go-oidc-v3
            go-github-com-go-telegram-bot-api-telegram-bot-api
            go-github-com-gorilla-mux
            go-github-com-lib-pq
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 8cc1f43e38..3185fa860c 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
 ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
 ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019, 2020, 2023 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
 ;;; Copyright © 2016 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
@@ -63,6 +63,7 @@
 ;;; Copyright © 2023 Gabriel Wicki <gabriel@erlikon.ch>
 ;;; Copyright © 2023 Jonathan Brielamier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2023 Vessel Wave <vesselwave@disroot.org>
+;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -193,6 +194,27 @@
 the leaves of a full binary tree.")
     (license license:bsd-2)))
 
+(define-public cage
+  (package
+    (name "cage")
+    (version "0.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cage-kiosk/cage")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "11sg9x08zl2nr7a723h462knz5lf58sgvkhv1mgc9z3hhkhvbsja"))))
+    (build-system meson-build-system)
+    (native-inputs (list pkg-config scdoc))
+    (inputs (list wayland wlroots libxkbcommon))
+    (home-page "https://github.com/cage-kiosk/cage")
+    (synopsis "Wayland kiosk")
+    (description "This package provides a Wayland @dfn{kiosk}, which runs a
+single, maximized application.")
+    (license license:expat)))
+
 (define-public herbstluftwm
   (package
     (name "herbstluftwm")
@@ -3023,7 +3045,7 @@ capabilities.  It is heavily inspired by the Calm Window manager(cwm).")
      (list cairo
            libjpeg-turbo
            libpng
-           librsvg
+           (librsvg-for-system)
            libxext
            libxinerama
            libxmu
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index da5ca76e10..32afa3a921 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -59,6 +59,7 @@
 ;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 Jake Leporte <jakeleporte@outlook.com>
+;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,6 +103,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
@@ -132,6 +134,8 @@
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-check)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages syncthing)
@@ -140,6 +144,8 @@
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages terminals)
   #:use-module (gnu packages xml)
+  #:use-module (gnu packages wm)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages)
   #:use-module (ice-9 match))
@@ -1816,6 +1822,66 @@ but can also follow a growing file, display contents, delete entries and more.")
 connectivity of the X server running on a particular @code{DISPLAY}.")
     (license license:gpl3+)))
 
+(define-public ulauncher
+  (package
+    (name "ulauncher")
+    (version "6.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/Ulauncher/Ulauncher")
+                    (commit "1e68d47473f8e77d375cb4eca644c3cda68ed7e9")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1c2czlrsf5aq8c88qliqbnqvf04q9cnjc1j6hivqa0w260mzjll1"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'fix-libX11
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (substitute* "ulauncher/utils/xinit.py"
+                              (("libX11.so.6")
+                               (search-input-file inputs "/lib/libX11.so")))))
+                        (add-after 'unpack 'fix-usr
+                          (lambda _
+                            (substitute* "setup.py"
+                              (("\\{sys.prefix\\}")
+                               (string-append #$output)))))
+                        (add-after 'unpack 'fix-os-release
+                          (lambda _
+                            (define (touch file)
+                              (call-with-output-file file
+                                (const #t)))
+                            (let* ((hard-path "/etc/os-release")
+                                   (fixed-path (string-append #$output
+                                                              hard-path)))
+                              ;; Make it relative
+                              ;; Update hardcoded path to something
+                              ;; within the build enviroment.
+                              (substitute* "ulauncher/utils/environment.py"
+                                ((hard-path)
+                                 fixed-path))
+                              ;; Create directory for the dummy file.
+                              (mkdir-p (string-append #$output "/etc"))
+                              (touch fixed-path))))
+                        (add-before 'check 'env-setup
+                          ;; The test require access to home to put temporary files.
+                          (lambda _
+                            (setenv "HOME"
+                                    (getcwd)))))))
+    (native-inputs (list intltool python-distutils-extra python-mock))
+    (inputs (list libx11 python-levenshtein python-pycairo))
+    (propagated-inputs (list keybinder libwnck gsettings-desktop-schemas
+                             python-pygobject webkitgtk-with-libsoup2))
+    (home-page "https://ulauncher.io")
+    (synopsis "Application launcher for Linux")
+    (description
+     "Ulauncher is a fast application launcher for Linux.  It is written in
+Python, using GTK+, and features: App Search (fuzzy matching), Calculator,
+Extensions, Shortcuts, File browser mode and Custom Color Themes.")
+    (license license:gpl3+)))
+
 (define-public rofi
   (package
     (name "rofi")
@@ -1827,7 +1893,16 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
                                   version "/rofi-" version ".tar.xz"))
               (sha256
                (base32
-                "138c4bl60p7namsb2pk8q5cdlxbdkli7zny192vk5jv5s5kczzya"))))
+                "138c4bl60p7namsb2pk8q5cdlxbdkli7zny192vk5jv5s5kczzya"))
+              (snippet
+               #~(begin
+                   ;; Delete pre-generated files.
+                   (for-each delete-file
+                             (list "lexer/theme-lexer.c"
+                                   "lexer/theme-parser.c"
+                                   "lexer/theme-parser.h"
+                                   "resources/resources.c"
+                                   "resources/resources.h"))))))
     (build-system gnu-build-system)
     (native-inputs
      (list bison
@@ -1839,7 +1914,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
      (list cairo
            glib
            libjpeg-turbo
-           librsvg
+           (librsvg-for-system)
            libxcb
            libxkbcommon
            pango
@@ -1875,7 +1950,7 @@ by name.")
     (package
       (inherit rofi)
       (name "rofi-wayland")
-      (version "1.7.5+wayland1")
+      (version "1.7.5+wayland2")
       (source (origin
                 (method url-fetch)
                 (uri (string-append "https://github.com/lbonn/rofi"
@@ -1883,16 +1958,16 @@ by name.")
                                     "/rofi-" version ".tar.xz"))
                 (sha256
                  (base32
-                  "09n71wv3nxpzpjmvqmxlxk0zfln3x2l8admfq571781p9hw0w6wp"))))
+                  "0l6rf8qwvawyh938pinl9fkwzjnq72xpa9a7lwk9jrr5lkk3h8yj"))))
       (build-system meson-build-system)
       (inputs
        (modify-inputs (package-inputs base)
          (append wayland wayland-protocols)))
       (description
-       (string-append
-        (package-description base)
-        "  This package, @code{rofi-wayland}, provides additional wayland
-support.")))))
+       "Rofi is a minimalist application launcher.  It memorizes which
+applications you regularly use and also allows you to search for an
+application by name.  This package, @code{rofi-wayland}, provides additional
+wayland support."))))
 
 (define-public rofi-calc
   (package
@@ -1958,7 +2033,7 @@ natural language input and provide results.")
     (inputs
      (list gtk+
            imlib2
-           librsvg
+           (librsvg-for-system)
            libxcomposite
            libxdamage
            libxft
@@ -1979,6 +2054,46 @@ border, and background.  It also supports multihead setups, customized mouse
 actions, a built-in clock, a battery monitor and a system tray.")
     (license license:gpl2)))
 
+(define-public stalonetray
+  (package
+    (name "stalonetray")
+    (version "0.8.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/kolbusa/stalonetray")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "074wy1xppfycillbxq6fwrq87ik9glc95083df5vgm20mhzni7pz"))))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-docbook-root
+            (lambda _
+              (substitute* "configure.ac"
+                (("AC_SUBST\\(DOCBOOK_ROOT\\)" all)
+                 (string-append "DOCBOOK_ROOT="
+                                #$(this-package-native-input "docbook-xsl")
+                                "/xml/xsl/docbook-xsl-"
+                                #$(package-version (this-package-native-input "docbook-xsl"))
+                                "; " all))))))))
+    (inputs (list libx11 libxpm))
+    (native-inputs (list autoconf automake docbook-xsl libxslt))
+    (build-system gnu-build-system)
+    (home-page "https://kolbusa.github.io/stalonetray")
+    (synopsis "Standalone freedesktop.org and KDE systray implementation")
+    (description
+     "Stalonetray is a stand-alone freedesktop.org and KDE system
+tray (notification area) for X Window System/X11 (e.g. X.Org or XFree86).  It
+has full XEMBED support and minimal dependencies: an X11 lib only.  Stalonetray
+works with virtually any EWMH-compliant window manager.")
+    (license license:gpl2+)))
+
 (define-public tofi
   (package
     (name "tofi")
@@ -2583,7 +2698,7 @@ Wayland and @code{wlroots} by leveraging @command{grim} and @command{slurp}.")
 (define-public wl-clipboard
   (package
     (name "wl-clipboard")
-    (version "2.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method git-fetch)
@@ -2592,7 +2707,7 @@ Wayland and @code{wlroots} by leveraging @command{grim} and @command{slurp}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1g6hcsn4klapvz3bw0k8syixwyyi4cl1c7vbc6f1a2hjpcf4pawn"))))
+        (base32 "0r45k6fk9k26qs88s2sjlgjjamhj2jqghdivlh2xjqknws63d29g"))))
     (build-system meson-build-system)
     (arguments
      (list #:configure-flags
@@ -2605,7 +2720,7 @@ Wayland and @code{wlroots} by leveraging @command{grim} and @command{slurp}.")
                (add-after 'unpack 'patch-file-names
                  (lambda* (#:key inputs #:allow-other-keys)
                    (substitute* (find-files "src" "\\.c$")
-                     (("\"(cat|rm)\"" _ command)
+                     (("\"(cat)\"" _ command)
                       (string-append "\"" (assoc-ref inputs "coreutils")
                                      "/bin/" command "\""))
                      (("\"xdg-mime\"")
@@ -3097,7 +3212,7 @@ using @command{dmenu}.")
                   fontconfig
                   libpng
                   libxkbcommon
-                  librsvg ;if librsvg is not used, bundled nanosvg is used
+                  (librsvg-for-system) ;if librsvg is not used, bundled nanosvg is used
                   pixman
                   wayland
                   wayland-protocols))
@@ -3151,7 +3266,7 @@ such as sway, similar to @command{rofi}.")
                 "0hq2qiqxvrw3g515ywcb676ljc8mdw3pyslgxr3vahizfljah1pv"))))
     (build-system meson-build-system)
     (native-inputs (list nlohmann-json pkg-config))
-    (inputs (list gtk-layer-shell gtkmm-3 librsvg))
+    (inputs (list gtk-layer-shell gtkmm-3 (librsvg-for-system)))
     (home-page "https://github.com/nwg-piotr/nwg-launchers")
     (synopsis "Application launchers for wlroots")
     (description
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 555f0ab624..01e48fda57 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -29,7 +29,7 @@
 ;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021, 2023 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
@@ -88,7 +88,7 @@
 (define-public libxmlb
   (package
     (name "libxmlb")
-    (version "0.3.10")
+    (version "0.3.12")
     (source
      (origin
        (method git-fetch)
@@ -98,7 +98,7 @@
          (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1q7kizfgbvs02fdnvz09yjyy3v1dpbxl7xf1gx056mbnlib6faxs"))))
+        (base32 "0v9s2k5saxrs0ssjyg1zxaibybikvaw7fip6sy0b8ixzax9r5y0c"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t))
@@ -106,6 +106,8 @@
      (list gobject-introspection gtk-doc/stable pkg-config))
     (inputs
      (list appstream-glib glib))
+    (propagated-inputs
+     (list `(,zstd "lib")))             ; in Requires.private of xmlb.pc
     (synopsis "Library to help create and query binary XML blobs")
     (description "Libxmlb library takes XML source, and converts it to a
 structured binary representation with a deduplicated string table; where the
@@ -1457,20 +1459,23 @@ files.  It is designed to be fast and to handle large input files.")
 (define-public freexl
   (package
     (name "freexl")
-    (version "1.0.6")
+    (version "2.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.gaia-gis.it/gaia-sins/"
+                                  "freexl-sources/"
                                   "freexl-" version ".tar.gz"))
               (sha256
                (base32
-                "08pwj17l0lgp6zms9nmpawdxpvhzrslklbd53s4b430k7mxbbs1x"))))
+                "1w57w73gfj2niz9dn235hn5wsvxpdbj6sp5zxcg7rasqvvqharqp"))))
     (build-system gnu-build-system)
+    (inputs
+     (list expat minizip))
     (home-page "https://www.gaia-gis.it/fossil/freexl/index")
     (synopsis "Read Excel files")
     (description
-     "FreeXL is a C library to extract valid data from within an Excel (.xls)
-spreadsheet.")
+     "FreeXL is a C library to extract valid data from within an Excel
+(.xls, .xlsx) or LibreOffice (.ods) spreadsheet.")
     ;; Any of these licenses may be picked.
     (license (list license:gpl2+
                    license:lgpl2.1+
diff --git a/gnu/services/authentication.scm b/gnu/services/authentication.scm
index f1ad1b1afe..fbfef2d3d0 100644
--- a/gnu/services/authentication.scm
+++ b/gnu/services/authentication.scm
@@ -504,7 +504,7 @@ password.")
 (define (pam-ldap-pam-service config)
   "Return a PAM service for LDAP authentication."
   (define pam-ldap-module
-    #~(string-append #$(nslcd-configuration-nss-pam-ldapd config)
+    (file-append (nslcd-configuration-nss-pam-ldapd config)
                      "/lib/security/pam_ldap.so"))
   (pam-extension
     (transformer
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 492cf8a693..b3f2d2e8b8 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -1603,38 +1603,36 @@ information on the configuration file syntax."
 
 (define pam-limits-service-type
   (let ((pam-extension
-         (pam-extension
-          (transformer
-           (lambda (pam)
-             (let ((pam-limits (pam-entry
-                                (control "required")
-                                (module "pam_limits.so")
-                                (arguments
-                                 '("conf=/etc/security/limits.conf")))))
-               (if (member (pam-service-name pam)
-                           '("login" "greetd" "su" "slim" "gdm-password"
-                             "sddm" "sudo" "sshd" "lightdm"))
-                   (pam-service
-                    (inherit pam)
-                    (session (cons pam-limits
-                                   (pam-service-session pam))))
-                   pam))))))
-
-        ;; XXX: Using file-like objects is deprecated, use lists instead.
-        ;;      This is to be reduced into the list? case when the deprecated
-        ;;      code gets removed.
-        ;; Create /etc/security containing the provided "limits.conf" file.
-        (security-limits
+         (lambda (limits-file)
+           (pam-extension
+            (transformer
+             (lambda (pam)
+               (let ((pam-limits (pam-entry
+                                  (control "required")
+                                  (module "pam_limits.so")
+                                  (arguments
+                                   (list #~(string-append "conf=" #$limits-file))))))
+                 (if (member (pam-service-name pam)
+                             '("login" "greetd" "su" "slim" "gdm-password"
+                               "sddm" "lightdm" "sudo" "sshd"))
+                     (pam-service
+                      (inherit pam)
+                      (session (cons pam-limits
+                                     (pam-service-session pam))))
+                     pam)))))))
+        (make-limits-file
          (match-lambda
+           ;; XXX: Using file-like objects is deprecated, use lists instead.
+           ;;      This is to be reduced into the list? case when the deprecated
+           ;;      code gets removed.
            ((? file-like? obj)
             (warning (G_ "Using file-like value for \
 'pam-limits-service-type' is deprecated~%"))
-            `(("security/limits.conf" ,obj)))
+            obj)
            ((? list? lst)
-            `(("security/limits.conf"
-               ,(plain-file "limits.conf"
-                            (string-join (map pam-limits-entry->string lst)
-                                         "\n" 'suffix)))))
+            (plain-file "limits.conf"
+                        (string-join (map pam-limits-entry->string lst)
+                                     "\n" 'suffix)))
            (_ (raise
                (formatted-message
                 (G_ "invalid input for 'pam-limits-service-type'~%")))))))
@@ -1642,13 +1640,12 @@ information on the configuration file syntax."
     (service-type
      (name 'limits)
      (extensions
-      (list (service-extension etc-service-type security-limits)
-            (service-extension pam-root-service-type
-                               (lambda _ (list pam-extension)))))
+      (list (service-extension pam-root-service-type
+                               (lambda (config)
+                                 (list (pam-extension (make-limits-file config)))))))
      (description
-      "Install the specified resource usage limits by populating
-@file{/etc/security/limits.conf} and using the @code{pam_limits}
-authentication module.")
+      "Use the @code{pam_limits} authentication module to set the specified
+resource usage limits.")
      (default-value '()))))
 
 (define-deprecated (pam-limits-service #:optional (limits '()))
@@ -3266,7 +3263,7 @@ to handle."
   (define optional-pam-mount
     (pam-entry
      (control "optional")
-     (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so"))
+     (module (file-append greetd-pam-mount "/lib/security/pam_mount.so"))
      (arguments '("disable_interactive"))))
 
   (list
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 7148971c1d..d3fee2a8ef 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -180,17 +180,30 @@ host	all	all	::1/128 	md5"))
   (data-directory     postgresql-configuration-data-directory
                       (default "/var/lib/postgresql/data"))
   (extension-packages postgresql-configuration-extension-packages
-                      (default '())))
-
-(define %postgresql-accounts
-  (list (user-group (name "postgres") (system? #t))
-        (user-account
-         (name "postgres")
-         (group "postgres")
-         (system? #t)
-         (comment "PostgreSQL server user")
-         (home-directory "/var/empty")
-         (shell (file-append shadow "/sbin/nologin")))))
+                      (default '()))
+  (create-account?    postgresql-configuration-create-account?
+                      (default #t))
+  (uid                postgresql-configuration-uid
+                      (default #f))
+  (gid                postgresql-configuration-gid
+                      (default #f)))
+
+(define (create-postgresql-account config)
+  (match-record config <postgresql-configuration>
+    (create-account? uid gid)
+    (if (not create-account?) '()
+        (list (user-group
+               (name "postgres")
+               (id gid)
+               (system? #t))
+              (user-account
+               (name "postgres")
+               (group "postgres")
+               (system? #t)
+               (uid uid)
+               (comment "PostgreSQL server user")
+               (home-directory "/var/empty")
+               (shell (file-append shadow "/sbin/nologin")))))))
 
 (define (final-postgresql postgresql extension-packages)
   (if (null? extension-packages)
@@ -327,7 +340,7 @@ host	all	all	::1/128 	md5"))
           (service-extension activation-service-type
                              postgresql-activation)
           (service-extension account-service-type
-                             (const %postgresql-accounts))
+                             create-postgresql-account)
           (service-extension
            profile-service-type
            (compose list postgresql-configuration-postgresql))))
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index ae3f90e96d..5b79fbcda1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1174,6 +1174,10 @@ started~%")
                             (string-append #$output service-directory))
           (symlink (string-append #$elogind "/etc") ;for etc/dbus-1
                    (string-append #$output "/etc"))
+          ;; Also expose the D-Bus policy configurations (.conf) files, now
+          ;; installed under '/share' instead of the legacy '/etc' prefix.
+          (symlink (string-append #$elogind "/share/dbus-1/system.d")
+                   (string-append #$output "/share/dbus-1/system.d"))
 
           ;; Replace the "Exec=" line of the 'org.freedesktop.login1.service'
           ;; file with one that refers to WRAPPER instead of elogind.
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index f45fc99c69..6608046909 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -1,6 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
@@ -53,10 +52,7 @@
             knot-resolver-configuration
 
             dnsmasq-service-type
-            dnsmasq-configuration
-
-            ddclient-service-type
-            ddclient-configuration))
+            dnsmasq-configuration))
 
 ;;;
 ;;; Knot DNS.
@@ -901,165 +897,3 @@ cache.size = 100 * MB
                              dnsmasq-activation)))
    (default-value (dnsmasq-configuration))
    (description "Run the dnsmasq DNS server.")))
-
-
-;;;
-;;; ddclient
-;;;
-
-(define (uglify-field-name field-name)
-  (string-delete #\? (symbol->string field-name)))
-
-(define (serialize-field field-name val)
-  (when (not (member field-name '(group secret-file user)))
-    (format #t "~a=~a\n" (uglify-field-name field-name) val)))
-
-(define (serialize-boolean field-name val)
-  (serialize-field field-name (if val "yes" "no")))
-
-(define (serialize-integer field-name val)
-  (serialize-field field-name (number->string val)))
-
-(define (serialize-string field-name val)
-  (if (and (string? val) (string=? val ""))
-      ""
-      (serialize-field field-name val)))
-
-(define (serialize-list field-name val)
-  (if (null? val) "" (serialize-field field-name (string-join val))))
-
-(define (serialize-extra-options extra-options)
-  (string-join extra-options "\n" 'suffix))
-
-(define-configuration ddclient-configuration
-  (ddclient
-   (file-like ddclient)
-   "The ddclient package.")
-  (daemon
-   (integer 300)
-   "The period after which ddclient will retry to check IP and domain name.")
-  (syslog
-   (boolean #t)
-   "Use syslog for the output.")
-  (mail
-   (string "root")
-   "Mail to user.")
-  (mail-failure
-   (string "root")
-   "Mail failed update to user.")
-  (pid
-   (string "/var/run/ddclient/ddclient.pid")
-   "The ddclient PID file.")
-  (ssl
-   (boolean #t)
-   "Enable SSL support.")
-  (user
-   (string "ddclient")
-   "Specifies the user name or ID that is used when running ddclient
-program.")
-  (group
-   (string "ddclient")
-   "Group of the user who will run the ddclient program.")
-  (secret-file
-   (string "/etc/ddclient/secrets.conf")
-   "Secret file which will be appended to @file{ddclient.conf} file.  This
-file contains credentials for use by ddclient.  You are expected to create it
-manually.")
-  (extra-options
-   (list '())
-   "Extra options will be appended to @file{ddclient.conf} file."))
-
-(define (ddclient-account config)
-  "Return the user accounts and user groups for CONFIG."
-  (let ((ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (user-group
-           (name ddclient-group)
-           (system? #t))
-          (user-account
-           (name ddclient-user)
-           (system? #t)
-           (group ddclient-group)
-           (comment "ddclientd privilege separation user")
-           (home-directory (string-append "/var/run/" ddclient-user))))))
-
-(define (ddclient-activation config)
-  "Return the activation GEXP for CONFIG."
-  (with-imported-modules '((guix build utils))
-    #~(begin
-        (use-modules (guix build utils)
-                     (ice-9 rdelim))
-        (let ((ddclient-user
-               (passwd:uid (getpw #$(ddclient-configuration-user config))))
-              (ddclient-group
-               (passwd:gid (getpw #$(ddclient-configuration-group config))))
-              (ddclient-secret-file
-               #$(ddclient-configuration-secret-file config)))
-          ;; 'ddclient' complains about ddclient.conf file permissions, which
-          ;; rules out /gnu/store.  Thus we copy the ddclient.conf to /etc.
-          (for-each (lambda (dir)
-                      (mkdir-p dir)
-                      (chmod dir #o700)
-                      (chown dir ddclient-user ddclient-group))
-                    '("/var/cache/ddclient" "/var/run/ddclient"
-                      "/etc/ddclient"))
-          (with-output-to-file "/etc/ddclient/ddclient.conf"
-            (lambda ()
-              (display
-               (string-append
-                "# Generated by 'ddclient-service'.\n\n"
-                #$(with-output-to-string
-                    (lambda ()
-                      (serialize-configuration config
-                                               ddclient-configuration-fields)))
-                (if (string-null? ddclient-secret-file)
-                    ""
-                    (format #f "\n\n# Appended from '~a'.\n\n~a"
-                            ddclient-secret-file
-                            (with-input-from-file ddclient-secret-file
-                              read-string)))))))
-          (chmod "/etc/ddclient/ddclient.conf" #o600)
-          (chown "/etc/ddclient/ddclient.conf"
-                 ddclient-user ddclient-group)))))
-
-(define (ddclient-shepherd-service config)
-  "Return a <shepherd-service> for ddclient with CONFIG."
-  (let ((ddclient (ddclient-configuration-ddclient config))
-        (ddclient-pid (ddclient-configuration-pid config))
-        (ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (shepherd-service
-           (provision '(ddclient))
-           (documentation "Run ddclient daemon.")
-           (start #~(make-forkexec-constructor
-                     (list #$(file-append ddclient "/bin/ddclient")
-                           "-foreground"
-                           "-file" "/etc/ddclient/ddclient.conf")
-                     #:pid-file #$ddclient-pid
-                     #:environment-variables
-                     (list "SSL_CERT_DIR=/run/current-system/profile\
-/etc/ssl/certs"
-                           "SSL_CERT_FILE=/run/current-system/profile\
-/etc/ssl/certs/ca-certificates.crt")
-                     #:user #$ddclient-user
-                     #:group #$ddclient-group))
-           (stop #~(make-kill-destructor))))))
-
-(define ddclient-service-type
-  (service-type
-   (name 'ddclient)
-   (extensions
-    (list (service-extension account-service-type
-                             ddclient-account)
-          (service-extension shepherd-root-service-type
-                             ddclient-shepherd-service)
-          (service-extension activation-service-type
-                             ddclient-activation)))
-   (default-value (ddclient-configuration))
-   (description "Configure address updating utility for dynamic DNS services,
-ddclient.")))
-
-(define (generate-ddclient-documentation)
-  (generate-documentation
-   `((ddclient-configuration ,ddclient-configuration-fields))
-   'ddclient-configuration))
diff --git a/gnu/services/kerberos.scm b/gnu/services/kerberos.scm
index 1a1b37f890..a6f540a9b6 100644
--- a/gnu/services/kerberos.scm
+++ b/gnu/services/kerberos.scm
@@ -432,8 +432,8 @@ generates such a file.  It does not cause any daemon to be started.")))
    (transformer
     (lambda (pam)
       (define pam-krb5-module
-        #~(string-append #$(pam-krb5-configuration-pam-krb5 config)
-                         "/lib/security/pam_krb5.so"))
+        (file-append (pam-krb5-configuration-pam-krb5 config)
+                     "/lib/security/pam_krb5.so"))
 
       (let ((pam-krb5-sufficient
              (pam-entry
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index d105c42850..d17f492e15 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -67,6 +68,28 @@
 
             kernel-module-loader-service-type
 
+            cachefilesd-configuration
+            cachefilesd-configuration?
+            cachefilesd-configuration-cachefilesd
+            cachefilesd-configuration-debug-output?
+            cachefilesd-configuration-use-syslog?
+            cachefilesd-configuration-scan?
+            cachefilesd-configuration-cache-directory
+            cachefilesd-configuration-cache-name
+            cachefilesd-configuration-security-context
+            cachefilesd-configuration-pause-culling-for-block-percentage
+            cachefilesd-configuration-pause-culling-for-file-percentage
+            cachefilesd-configuration-resume-culling-for-block-percentage
+            cachefilesd-configuration-resume-culling-for-file-percentage
+            cachefilesd-configuration-pause-caching-for-block-percentage
+            cachefilesd-configuration-pause-caching-for-file-percentage
+            cachefilesd-configuration-log2-table-size
+            cachefilesd-configuration-cull?
+            cachefilesd-configuration-trace-function-entry-in-kernel-module
+            cachefilesd-configuration-trace-function-exit-in-kernel-module
+            cachefilesd-configuration-trace-internal-checkpoints-in-kernel-module
+            cachefilesd-service-type
+
             rasdaemon-configuration
             rasdaemon-configuration?
             rasdaemon-configuration-record?
@@ -308,6 +331,180 @@ more information)."
 
 
 ;;;
+;;; Cachefilesd, an FS-Cache daemon
+;;;
+
+(define (serialize-string variable-symbol value)
+  #~(format #f "~a ~a~%" #$(symbol->string variable-symbol) #$value))
+
+(define-maybe string)
+
+(define (non-negative-integer? val)
+  (and (exact-integer? val) (not (negative? val))))
+
+(define (serialize-non-negative-integer variable-symbol value)
+  #~(format #f "~a ~d~%" #$(symbol->string variable-symbol) #$value))
+
+(define-maybe non-negative-integer)
+
+(define (make-option-serializer option-symbol)
+  (lambda (variable-symbol text)
+    (if (maybe-value-set? text)
+        #~(format #f "~a ~a~%" #$(symbol->string option-symbol) #$text)
+        "")))
+
+(define (make-percentage-threshold-serializer threshold-symbol)
+  (lambda (variable-symbol percentage)
+    (if (maybe-value-set? percentage)
+        #~(format #f "~a ~a%~%" #$(symbol->string threshold-symbol) #$percentage)
+        "")))
+
+(define-configuration cachefilesd-configuration
+  (cachefilesd
+   (file-like cachefilesd)
+   "The cachefilesd package to use."
+   (serializer empty-serializer))
+
+  ;; command-line options
+  (debug-output?
+   (boolean #f)
+   "Print debugging output to stderr."
+   (serializer empty-serializer))
+
+  (use-syslog?
+   (boolean #t)
+   "Log to syslog facility instead of stdout."
+   (serializer empty-serializer))
+
+  ;; culling is part of the configuration file
+  ;; despite the name of the command-line option
+  (scan?
+   (boolean #t)
+   "Scan for cachable objects."
+   (serializer empty-serializer))
+
+  ;; sole required field in the configuration file
+  (cache-directory
+   maybe-string
+   "Location of the cache directory."
+   (serializer (make-option-serializer 'dir)))
+
+  (cache-name
+   (maybe-string "CacheFiles")
+   "Name of cache (keep unique)."
+   (serializer (make-option-serializer 'tag)))
+
+  (security-context
+   maybe-string
+   "SELinux security context."
+   (serializer (make-option-serializer 'secctx)))
+
+  ;; percentage thresholds in the configuration file
+  (pause-culling-for-block-percentage
+   (maybe-non-negative-integer 7)
+   "Pause culling when available blocks exceed this percentage."
+   (serializer (make-percentage-threshold-serializer 'brun)))
+
+  (pause-culling-for-file-percentage
+   (maybe-non-negative-integer 7)
+   "Pause culling when available files exceed this percentage."
+   (serializer (make-percentage-threshold-serializer 'frun)))
+
+  (resume-culling-for-block-percentage
+   (maybe-non-negative-integer 5)
+   "Start culling when available blocks drop below this percentage."
+   (serializer (make-percentage-threshold-serializer 'bcull)))
+
+  (resume-culling-for-file-percentage
+   (maybe-non-negative-integer 5)
+   "Start culling when available files drop below this percentage."
+   (serializer (make-percentage-threshold-serializer 'fcull)))
+
+  (pause-caching-for-block-percentage
+   (maybe-non-negative-integer 1)
+   "Pause further allocations when available blocks drop below this percentage."
+   (serializer (make-percentage-threshold-serializer 'bstop)))
+
+  (pause-caching-for-file-percentage
+   (maybe-non-negative-integer 1)
+   "Pause further allocations when available files drop below this percentage."
+   (serializer (make-percentage-threshold-serializer 'fstop)))
+
+  ;; run time optimizations in the configuration file
+  (log2-table-size
+   (maybe-non-negative-integer 12)
+   "Size of tables holding cullable objects in logarithm of base 2."
+   (serializer (make-option-serializer 'culltable)))
+
+  (cull?
+   (boolean #t)
+   "Create free space by culling (consumes system load)."
+   (serializer
+    (lambda (variable-symbol value)
+      (if value "" "nocull\n"))))
+
+  ;; kernel module debugging in the configuration file
+  (trace-function-entry-in-kernel-module?
+   (boolean #f)
+   "Trace function entry in the kernel module (for debugging)."
+   (serializer empty-serializer))
+
+  (trace-function-exit-in-kernel-module?
+   (boolean #f)
+   "Trace function exit in the kernel module (for debugging)."
+   (serializer empty-serializer))
+
+  (trace-internal-checkpoints-in-kernel-module?
+   (boolean #f)
+   "Trace internal checkpoints in the kernel module (for debugging)."
+   (serializer empty-serializer)))
+
+(define (serialize-cachefilesd-configuration configuration)
+  (mixed-text-file
+   "cachefilesd.conf"
+   (serialize-configuration configuration cachefilesd-configuration-fields)))
+
+(define (cachefilesd-shepherd-service config)
+  "Return a list of <shepherd-service> for cachefilesd for CONFIG."
+  (match-record
+      config <cachefilesd-configuration> (cachefilesd
+                                          debug-output?
+                                          use-syslog?
+                                          scan?
+                                          cache-directory)
+      (let ((configuration-file (serialize-cachefilesd-configuration config)))
+        (shepherd-service
+         (documentation "Run the cachefilesd daemon for FS-Cache.")
+         (provision '(cachefilesd))
+         (requirement (append '(file-systems)
+                              (if use-syslog? '(syslogd) '())))
+         (start #~(begin
+                    (and=> #$(maybe-value cache-directory) mkdir-p)
+                    (make-forkexec-constructor
+                     `(#$(file-append cachefilesd "/sbin/cachefilesd")
+                       ;; do not detach
+                       "-n"
+                       #$@(if debug-output? '("-d") '())
+                       #$@(if use-syslog? '() '("-s"))
+                       #$@(if scan? '() '("-N"))
+                       "-f" #$configuration-file))))
+         (stop #~(make-kill-destructor))))))
+
+(define cachefilesd-service-type
+  (service-type
+   (name 'cachefilesd)
+   (description
+    "Run the file system cache daemon @command{cachefilesd}, which relies on
+the Linux @code{cachefiles} module.")
+   (extensions
+    (list (service-extension kernel-module-loader-service-type
+                             (const '("cachefiles")))
+          (service-extension shepherd-root-service-type
+                             (compose list cachefilesd-shepherd-service))))
+   (default-value (cachefilesd-configuration))))
+
+
+;;;
 ;;; Reliability, Availability, and Serviceability (RAS) daemon
 ;;;
 
@@ -351,7 +548,7 @@ more information)."
 
 
 ;;;
-;;; Kernel module loader.
+;;; Zram device
 ;;;
 
 (define-record-type* <zram-device-configuration>
diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm
index dbb9d0285f..b3a02e82e9 100644
--- a/gnu/services/pam-mount.scm
+++ b/gnu/services/pam-mount.scm
@@ -94,7 +94,7 @@
   (define optional-pam-mount
     (pam-entry
      (control "optional")
-     (module #~(string-append #$pam-mount "/lib/security/pam_mount.so"))))
+     (module (file-append pam-mount "/lib/security/pam_mount.so"))))
   (list
    (pam-extension
     (transformer
diff --git a/gnu/tests/cachefilesd.scm b/gnu/tests/cachefilesd.scm
new file mode 100644
index 0000000000..7f5d513067
--- /dev/null
+++ b/gnu/tests/cachefilesd.scm
@@ -0,0 +1,71 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
+;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu tests cachefilesd)
+  #:use-module (gnu tests)
+  #:use-module (gnu system)
+  #:use-module (gnu system vm)
+  #:use-module (gnu services)
+  #:use-module (gnu services linux)
+  #:use-module (guix gexp)
+  #:export (%test-cachefilesd))
+
+(define %cachefilesd-os
+  (simple-operating-system
+   (service cachefilesd-service-type
+            (cachefilesd-configuration
+             (cache-directory "/var/cache/fscache")))))
+
+(define (run-cachefilesd-test)
+  "Run tests in %cachefilesd-os, which has cachefilesd running."
+  (define os
+    (marionette-operating-system
+     %cachefilesd-os
+     #:imported-modules '((gnu services herd))))
+
+  (define vm
+    (virtual-machine os))
+
+  (define test
+    (with-imported-modules '((gnu build marionette))
+      #~(begin
+          (use-modules (srfi srfi-64)
+                       (gnu build marionette))
+          (define marionette
+            (make-marionette (list #$vm)))
+
+          (test-runner-current (system-test-runner #$output))
+          (test-begin "cachefilesd")
+
+          (test-assert "service is running"
+            (marionette-eval
+             '(begin
+                (use-modules (gnu services herd))
+                (start-service 'cachefilesd))
+             marionette))
+
+          (test-end))))
+  (gexp->derivation "cachefilesd-test" test))
+
+(define %test-cachefilesd
+  (system-test
+   (name "cachefilesd")
+   (description "Test that the cachefilesd runs when started.")
+   (value (run-cachefilesd-test))))
diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm
index 137260ea93..ef30442886 100644
--- a/gnu/tests/desktop.scm
+++ b/gnu/tests/desktop.scm
@@ -55,7 +55,7 @@
           (test-equal "login on tty1"
             '(("c1" "0" "root" "seat0" "tty1")      ;session
               ("seat0")                             ;seat
-              ("0" "root"))                         ;user
+              ("0" "root" "no"))                    ;user
 
             (begin
               ;; Wait for tty1.
diff --git a/gnu/tests/pam.scm b/gnu/tests/pam.scm
index 1654396e42..fa480e69ff 100644
--- a/gnu/tests/pam.scm
+++ b/gnu/tests/pam.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
+;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,8 +26,7 @@
   #:use-module (gnu system vm)
   #:use-module (guix gexp)
   #:use-module (ice-9 format)
-  #:export (%test-pam-limits
-            %test-pam-limits-deprecated))
+  #:export (%test-pam-limits))
 
 
 ;;;
@@ -35,26 +35,29 @@
 
 (define pam-limit-entries
   (list
-   (pam-limits-entry "@realtime" 'both 'rtprio 99)
-   (pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))
+   ;; make sure the limits apply to root (uid 0)
+   (pam-limits-entry ":0" 'both 'rtprio 99)               ;default is 0
+   (pam-limits-entry ":0" 'both 'memlock 'unlimited)))    ;default is 8192 kbytes
 
 (define (run-test-pam-limits config)
   "Run tests in a os with pam-limits-service-type configured."
   (define os
     (marionette-operating-system
      (simple-operating-system
-      (service pam-limits-service-type config))))
+      (service pam-limits-service-type config))
+     #:imported-modules '((gnu services herd))))
 
   (define vm
     (virtual-machine os))
 
-  (define name (format #f "pam-limit-service~:[~;-deprecated~]"
-                       (file-like? config)))
+  (define name "pam-limits-service")
 
   (define test
-    (with-imported-modules '((gnu build marionette))
+    (with-imported-modules '((gnu build marionette)
+                             (guix build syscalls))
       #~(begin
           (use-modules (gnu build marionette)
+                       (guix build syscalls)
                        (srfi srfi-64))
 
           (let ((marionette (make-marionette (list #$vm))))
@@ -63,18 +66,32 @@
 
             (test-begin #$name)
 
-            (test-assert "/etc/security/limits.conf ready"
-              (wait-for-file "/etc/security/limits.conf" marionette))
-
-            (test-equal "/etc/security/limits.conf content matches"
-              #$(string-join (map pam-limits-entry->string pam-limit-entries)
-                             "\n" 'suffix)
-              (marionette-eval
-               '(begin
-                  (use-modules (rnrs io ports))
-                  (call-with-input-file "/etc/security/limits.conf"
-                    get-string-all))
-               marionette))
+            (test-equal "log in on tty1 and read limits"
+              '(("99")                  ;real-time priority
+                ("unlimited"))          ;max locked memory
+
+              (begin
+                ;; Wait for tty1.
+                (marionette-eval '(begin
+                                    (use-modules (gnu services herd))
+                                    (start-service 'term-tty1))
+                                 marionette)
+
+                (marionette-control "sendkey ctrl-alt-f1" marionette)
+
+                ;; Now we can type.
+                (marionette-type "root\n" marionette)
+                (marionette-type "ulimit -r > real-time-priority\n" marionette)
+                (marionette-type "ulimit -l > max-locked-memory\n" marionette)
+
+                ;; Read the two files.
+                (marionette-eval '(use-modules (rnrs io ports)) marionette)
+                (let ((guest-file (lambda (file)
+                                    (string-tokenize
+                                     (wait-for-file file marionette
+                                                    #:read 'get-string-all)))))
+                  (list (guest-file "/root/real-time-priority")
+                        (guest-file "/root/max-locked-memory")))))
 
             (test-end)))))
 
@@ -83,17 +100,6 @@
 (define %test-pam-limits
   (system-test
    (name "pam-limits-service")
-   (description "Test that pam-limits-service can serialize its config
-(as a list) to @file{limits.conf}.")
+   (description "Test that pam-limits-service actually sets the limits as
+configured.")
    (value (run-test-pam-limits pam-limit-entries))))
-
-(define %test-pam-limits-deprecated
-  (system-test
-   (name "pam-limits-service-deprecated")
-   (description "Test that pam-limits-service can serialize its config
-(as a file-like object) to @file{limits.conf}.")
-   (value (run-test-pam-limits
-           (plain-file "limits.conf"
-                       (string-join (map pam-limits-entry->string
-                                         pam-limit-entries)
-                                    "\n" 'suffix))))))