summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm17
-rw-r--r--gnu/packages/aidc.scm2
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/animation.scm4
-rw-r--r--gnu/packages/astronomy.scm4
-rw-r--r--gnu/packages/audio.scm71
-rw-r--r--gnu/packages/bioconductor.scm69
-rw-r--r--gnu/packages/bioinformatics.scm457
-rw-r--r--gnu/packages/bittorrent.scm2
-rw-r--r--gnu/packages/boost.scm88
-rw-r--r--gnu/packages/bootloaders.scm43
-rw-r--r--gnu/packages/calendar.scm2
-rw-r--r--gnu/packages/chemistry.scm6
-rw-r--r--gnu/packages/chromium.scm8
-rw-r--r--gnu/packages/ci.scm8
-rw-r--r--gnu/packages/compression.scm99
-rw-r--r--gnu/packages/connman.scm7
-rw-r--r--gnu/packages/coq.scm140
-rw-r--r--gnu/packages/cpp.scm2
-rw-r--r--gnu/packages/cran.scm28
-rw-r--r--gnu/packages/crates-io.scm4340
-rw-r--r--gnu/packages/cryptsetup.scm2
-rw-r--r--gnu/packages/cups.scm10
-rw-r--r--gnu/packages/curl.scm5
-rw-r--r--gnu/packages/cvassistant.scm2
-rw-r--r--gnu/packages/cybersecurity.scm51
-rw-r--r--gnu/packages/databases.scm38
-rw-r--r--gnu/packages/datastructures.scm4
-rw-r--r--gnu/packages/dictionaries.scm6
-rw-r--r--gnu/packages/disk.scm4
-rw-r--r--gnu/packages/display-managers.scm2
-rw-r--r--gnu/packages/djvu.scm2
-rw-r--r--gnu/packages/dns.scm15
-rw-r--r--gnu/packages/docker.scm21
-rw-r--r--gnu/packages/documentation.scm2
-rw-r--r--gnu/packages/ebook.scm9
-rw-r--r--gnu/packages/education.scm12
-rw-r--r--gnu/packages/electronics.scm2
-rw-r--r--gnu/packages/emacs-xyz.scm268
-rw-r--r--gnu/packages/emulators.scm12
-rw-r--r--gnu/packages/engineering.scm72
-rw-r--r--gnu/packages/fcitx.scm2
-rw-r--r--gnu/packages/fcitx5.scm42
-rw-r--r--gnu/packages/file-systems.scm11
-rw-r--r--gnu/packages/finance.scm18
-rw-r--r--gnu/packages/firmware.scm3
-rw-r--r--gnu/packages/flashing-tools.scm4
-rw-r--r--gnu/packages/fonts.scm120
-rw-r--r--gnu/packages/fpga.scm2
-rw-r--r--gnu/packages/freedesktop.scm28
-rw-r--r--gnu/packages/game-development.scm20
-rw-r--r--gnu/packages/games.scm98
-rw-r--r--gnu/packages/gcc.scm3
-rw-r--r--gnu/packages/geo.scm6
-rw-r--r--gnu/packages/gnome.scm26
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnuzilla.scm9
-rw-r--r--gnu/packages/gpodder.scm2
-rw-r--r--gnu/packages/gps.scm6
-rw-r--r--gnu/packages/graphics.scm10
-rw-r--r--gnu/packages/gstreamer.scm2
-rw-r--r--gnu/packages/guile-xyz.scm4
-rw-r--r--gnu/packages/image-processing.scm6
-rw-r--r--gnu/packages/image-viewers.scm6
-rw-r--r--gnu/packages/image.scm6
-rw-r--r--gnu/packages/inkscape.scm9
-rw-r--r--gnu/packages/irc.scm28
-rw-r--r--gnu/packages/irods.scm271
-rw-r--r--gnu/packages/jami.scm93
-rw-r--r--gnu/packages/java.scm86
-rw-r--r--gnu/packages/julia-jll.scm2
-rw-r--r--gnu/packages/julia-xyz.scm1749
-rw-r--r--gnu/packages/kde-frameworks.scm172
-rw-r--r--gnu/packages/kde-internet.scm16
-rw-r--r--gnu/packages/kde-multimedia.scm26
-rw-r--r--gnu/packages/kde-pim.scm80
-rw-r--r--gnu/packages/kde-plasma.scm12
-rw-r--r--gnu/packages/kde-systemtools.scm14
-rw-r--r--gnu/packages/kde-utils.scm22
-rw-r--r--gnu/packages/kde.scm50
-rw-r--r--gnu/packages/language.scm4
-rw-r--r--gnu/packages/lego.scm2
-rw-r--r--gnu/packages/linphone.scm2
-rw-r--r--gnu/packages/linux.scm78
-rw-r--r--gnu/packages/lisp-xyz.scm366
-rw-r--r--gnu/packages/logo.scm2
-rw-r--r--gnu/packages/lxqt.scm56
-rw-r--r--gnu/packages/mail.scm173
-rw-r--r--gnu/packages/maths.scm37
-rw-r--r--gnu/packages/messaging.scm27
-rw-r--r--gnu/packages/mpd.scm8
-rw-r--r--gnu/packages/mpi.scm4
-rw-r--r--gnu/packages/music.scm40
-rw-r--r--gnu/packages/nano.scm4
-rw-r--r--gnu/packages/ncurses.scm3
-rw-r--r--gnu/packages/nettle.scm3
-rw-r--r--gnu/packages/networking.scm299
-rw-r--r--gnu/packages/node.scm9
-rw-r--r--gnu/packages/ntp.scm16
-rw-r--r--gnu/packages/ocaml.scm1099
-rw-r--r--gnu/packages/ocr.scm2
-rw-r--r--gnu/packages/orange.scm2
-rw-r--r--gnu/packages/package-management.scm12
-rw-r--r--gnu/packages/pantheon.scm2
-rw-r--r--gnu/packages/password-utils.scm182
-rw-r--r--gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch29
-rw-r--r--gnu/packages/patches/bash-completion-directories.patch4
-rw-r--r--gnu/packages/patches/brightnessctl-elogind-support.patch13
-rw-r--r--gnu/packages/patches/bsdiff-CVE-2014-9862.patch15
-rw-r--r--gnu/packages/patches/connman-CVE-2021-33833.patch74
-rw-r--r--gnu/packages/patches/curl-7.77-tls-priority-string.patch98
-rw-r--r--gnu/packages/patches/efivar-gcc-compat.patch177
-rw-r--r--gnu/packages/patches/gcc-8-sort-libtool-find-output.patch399
-rw-r--r--gnu/packages/patches/grub-cross-system-i686.patch96
-rw-r--r--gnu/packages/patches/grub-setup-root.patch99
-rw-r--r--gnu/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch41
-rw-r--r--gnu/packages/patches/hexchat-add-libera-chat.patch76
-rw-r--r--gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch24
-rw-r--r--gnu/packages/patches/isc-dhcp-gcc-compat.patch72
-rw-r--r--gnu/packages/patches/jfsutils-gcc-compat.patch72
-rw-r--r--gnu/packages/patches/libcacard-unknown-variable.patch50
-rw-r--r--gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch276
-rw-r--r--gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch163
-rw-r--r--gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch78
-rw-r--r--gnu/packages/patches/polkit-CVE-2021-3560.patch21
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch53
-rw-r--r--gnu/packages/patches/qemu-meson-compat.patch27
-rw-r--r--gnu/packages/patches/qemu-sphinx-compat.patch18
-rw-r--r--gnu/packages/patches/rust-ndarray-0.13-remove-blas-src.patch28
-rw-r--r--gnu/packages/patches/tor-fix-build-with-gcc-7.patch30
-rw-r--r--gnu/packages/patches/xpra-4.0.1-systemd-run.patch34
-rw-r--r--gnu/packages/patches/xpra-4.2-systemd-run.patch45
-rw-r--r--gnu/packages/pdf.scm10
-rw-r--r--gnu/packages/photo.scm2
-rw-r--r--gnu/packages/polkit.scm10
-rw-r--r--gnu/packages/pretty-print.scm49
-rw-r--r--gnu/packages/printers.scm4
-rw-r--r--gnu/packages/profiling.scm2
-rw-r--r--gnu/packages/pumpio.scm2
-rw-r--r--gnu/packages/python-science.scm31
-rw-r--r--gnu/packages/python-web.scm3
-rw-r--r--gnu/packages/python-xyz.scm166
-rw-r--r--gnu/packages/qt.scm279
-rw-r--r--gnu/packages/radio.scm84
-rw-r--r--gnu/packages/rails.scm4
-rw-r--r--gnu/packages/rednotebook.scm5
-rw-r--r--gnu/packages/robotics.scm4
-rw-r--r--gnu/packages/rust-apps.scm240
-rw-r--r--gnu/packages/scribus.scm2
-rw-r--r--gnu/packages/serialization.scm53
-rw-r--r--gnu/packages/shells.scm658
-rw-r--r--gnu/packages/speech.scm12
-rw-r--r--gnu/packages/spice.scm16
-rw-r--r--gnu/packages/suckless.scm62
-rw-r--r--gnu/packages/sync.scm6
-rw-r--r--gnu/packages/syndication.scm23
-rw-r--r--gnu/packages/synergy.scm2
-rw-r--r--gnu/packages/telegram.scm2
-rw-r--r--gnu/packages/telephony.scm4
-rw-r--r--gnu/packages/terminals.scm4
-rw-r--r--gnu/packages/tex.scm4
-rw-r--r--gnu/packages/text-editors.scm42
-rw-r--r--gnu/packages/time.scm3
-rw-r--r--gnu/packages/tls.scm35
-rw-r--r--gnu/packages/tor.scm5
-rw-r--r--gnu/packages/version-control.scm61
-rw-r--r--gnu/packages/video.scm68
-rw-r--r--gnu/packages/virtualization.scm41
-rw-r--r--gnu/packages/vpn.scm131
-rw-r--r--gnu/packages/web-browsers.scm38
-rw-r--r--gnu/packages/web.scm23
-rw-r--r--gnu/packages/xdisorg.scm90
-rw-r--r--gnu/packages/xfce.scm8
-rw-r--r--gnu/packages/xml.scm9
-rw-r--r--gnu/packages/xorg.scm36
175 files changed, 12456 insertions, 3429 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 48b9c8b893..52c9492fcb 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -690,13 +690,13 @@ memory, disks, network and processes.")
 (define-public bpytop
   (package
     (name "bpytop")
-    (version "1.0.65")
+    (version "1.0.67")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "bpytop" version))
        (sha256
-        (base32 "1vq51vg2ygk2p738zi21v5chn908d4bd5zkb8s4fbgf4zqp425ny"))))
+        (base32 "1fwmiwvs8ax9az3hbp1p79x6m3wq73pn3vkbhcg9jvps4wv8wcwb"))))
     (build-system python-build-system)
     (inputs
      `(("python-psutil" ,python-psutil)))
@@ -711,7 +711,7 @@ memory, disks, network and processes.")
                                             (package-version python))
                                           "/site-packages/bpytop-themes")))
                (mkdir-p themes)
-               (copy-recursively "bpytop-themes" themes)))))))
+               (copy-recursively "themes" themes)))))))
     (home-page
      "https://github.com/aristocratos/bpytop")
     (synopsis "Resource monitor")
@@ -1167,6 +1167,7 @@ connection alive.")
                 (method url-fetch)
                 (uri (string-append "https://ftp.isc.org/isc/dhcp/"
                                     version "/dhcp-" version ".tar.gz"))
+                (patches (search-patches "isc-dhcp-gcc-compat.patch"))
                 (sha256
                  (base32
                   "06jsr0cg5rsmyibshrpcb9za0qgwvqccashdma7mlm1rflrh8pmh"))))
@@ -1601,7 +1602,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.9.7")
+    (version "1.9.7p1")
     (source (origin
               (method url-fetch)
               (uri
@@ -1611,7 +1612,7 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "0jg5vf6hc0j2bh4vqwsb4jybhryrsh4kz97r1salvf4rcqnprgib"))
+                "1kyqj45nmykwj38sc5kx7mi0vf6x637hzvbd1jv22lg5aks3251r"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1878,7 +1879,7 @@ command.")
   (package
     (inherit wpa-supplicant)
     (name "wpa-supplicant-gui")
-    (inputs `(("qtbase" ,qtbase)
+    (inputs `(("qtbase" ,qtbase-5)
               ("qtsvg" ,qtsvg)
               ,@(package-inputs wpa-supplicant)))
     (native-inputs
@@ -3645,7 +3646,7 @@ hard-coded.")
 (define-public thermald
   (package
     (name "thermald")
-    (version "2.4.5")
+    (version "2.4.6")
     (source
      (origin
       (method git-fetch)
@@ -3654,7 +3655,7 @@ hard-coded.")
              (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
-       (base32 "1y8s0cpjm01bz4isp3ksvnrbhpp3phivdhsb0w2kxhv09sfxkc5g"))))
+       (base32 "1lgaky8cmxbi17zpymy2v9wgknx1g92bq50j6kfpsm8qgb7djjb6"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 20ec8ff5e1..21fc1957a2 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -211,7 +211,7 @@ C/C++ programs to use its capabilities without restrictions or overhead.")
      ;; These are in 'requires' field of .pc files.
      `(("glib" ,glib)
        ("gtk+" ,gtk+)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (synopsis "Bar code reader")
     (description
      "ZBar can read barcodes from various sources, such as video streams,
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index d0312426d0..40f1971860 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -341,7 +341,7 @@ precision.")
 (define-public giac
   (package
     (name "giac")
-    (version "1.7.0-11")
+    (version "1.7.0-13")
     (source
      (origin
        (method url-fetch)
@@ -353,7 +353,7 @@ precision.")
                            "~parisse/debian/dists/stable/main/source/"
                            "giac_" version ".tar.gz"))
        (sha256
-        (base32 "12njy2akcc3sj1fmq52v19m4qd1ysrdcpc9a3zslkxsnidjix81m"))))
+        (base32 "14ywcnk7q27fpd7cr3wixhnd51qb2h2wl2kj6zs6bw2yi6dharfk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm
index 71fc8f20b0..bf44f3b8a9 100644
--- a/gnu/packages/animation.scm
+++ b/gnu/packages/animation.scm
@@ -450,7 +450,7 @@ language.")
                            qt)))
                  #t))))))
       (inputs
-       `(("qt" ,qtbase)
+       `(("qt" ,qtbase-5)
          ("qtmultimedia" ,qtmultimedia)
          ("libsndfile" ,libsndfile)))
       (native-inputs
@@ -480,7 +480,7 @@ waveform until they line up with the proper sounds.")
                 "0b1nwiwyg01087q318vymg4si76dw41ykxbn2zwd6dqbxzbpr1dh"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtxmlpatterns" ,qtxmlpatterns)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)))
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index c4a686957d..023aa98afc 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -412,7 +412,7 @@ deconvolution).  Such post-processing is not performed by Stackistry.")
         (base32 "04vg2asj9gygwnrs32scqc8192ln2lyqa9v7cjqk8zd4frkwszwp"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtlocation" ,qtlocation)
        ("qtmultimedia" ,qtmultimedia)
        ("qtscript" ,qtscript)
@@ -421,7 +421,7 @@ deconvolution).  Such post-processing is not performed by Stackistry.")
     (native-inputs
      `(("gettext" ,gettext-minimal)     ; xgettext is used at compile time
        ("perl" ,perl)                   ; for pod2man
-       ("qtbase" ,qtbase)               ; Qt MOC is needed at compile time
+       ("qtbase" ,qtbase-5)               ; Qt MOC is needed at compile time
        ("qttools" ,qttools)))
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b250bc3af0..f7a675802c 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -21,7 +21,7 @@
 ;;; Copyright © 2019, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019, 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2019, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
 ;;; Copyright © 2019 Christopher Lemmer Webber <cwebber@dustycloud.org>
@@ -78,6 +78,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnunet) ; libmicrohttpd
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
@@ -107,6 +108,7 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages telephony)
   #:use-module (gnu packages linphone)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages valgrind)
   #:use-module (gnu packages video)
@@ -495,7 +497,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
        ("jack" ,jack-1)
        ("ladspa" ,ladspa)
        ("liblo" ,liblo)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -2147,7 +2149,7 @@ synchronous execution of all clients, and low latency operation.")
        ("gtk2" ,gtk+-2)
        ("gtk3" ,gtk+)
        ("gtkmm" ,gtkmm-2)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("jack" ,jack-1)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -2739,7 +2741,7 @@ different audio devices such as ALSA or PulseAudio.")
      `(("jack" ,jack-1)
        ("alsa-lib" ,alsa-lib)
        ("portaudio" ,portaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2773,11 +2775,11 @@ into various outputs and to start, stop and configure jackd")
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (native-inputs
-     `(("qtbase" ,qtbase))) ; for qmake
+     `(("qtbase" ,qtbase-5))) ; for qmake
     (inputs
      `(("jack" ,jack-1)
        ("libsndfile" ,libsndfile)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://sourceforge.net/projects/qjackrcd/")
     (synopsis "Stereo audio recorder for JACK")
     (description "QJackRcd is a simple graphical stereo recorder for JACK
@@ -2886,7 +2888,7 @@ link REQUIRED)"))
        ("boost" ,boost)
        ("boost-sync" ,boost-sync)
        ("yaml-cpp" ,yaml-cpp)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("qtwebchannel" ,qtwebchannel)
@@ -3088,7 +3090,7 @@ the Turtle syntax.")
      `(("lv2" ,lv2)
        ("gtk+" ,gtk+-2)
        ("gtk+" ,gtk+)
-       ("qt" ,qtbase)))
+       ("qt" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://drobilla.net/software/suil/")
@@ -3564,7 +3566,7 @@ interface.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("fluidsynth" ,fluidsynth)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://qsynth.sourceforge.io")
     (synopsis "Graphical user interface for FluidSynth")
@@ -4740,7 +4742,7 @@ as is the case with audio plugins.")
        ;; (ModuleNotFoundError: No module named 'PyQt5')
        ("python-wrapper" ,python-wrapper)
        ("libx11" ,libx11)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)
 
        ;; For WRAP-SCRIPT above.
@@ -5098,7 +5100,7 @@ Rate} 3600x2250 bit/s vocoder used in various radio systems.")
      `(("catch" ,catch-framework)
        ("python" ,python)       ;for running tests
        ("portaudio" ,portaudio) ;for portaudio examples
-       ("qtbase" ,qtbase)       ;for Qt examples
+       ("qtbase" ,qtbase-5)       ;for Qt examples
        ("qtdeclarative" ,qtdeclarative)
        ("qttools" ,qttools)))
     (inputs
@@ -5225,3 +5227,50 @@ while still staying in time.")
     (description "Butt is a tool to stream audio to a ShoutCast or
 Icecast server.")
     (license license:gpl2+)))
+
+(define-public siggen
+  (package
+    (name "siggen")
+    (version "2.3.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bleskodev/siggen")
+             (commit "a407611b59d59c7770bbe62ba9b8e9a948cf3210")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0szhgfd9kddr6qsz0imp0x66jjn6ry236f35vjl82ivc1v2bllcb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "INSDIR=" %output "/bin")
+                          (string-append "MANDIR=" %output "/share/man"))
+       #:tests? #f                      ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         ;; Patch misc.c to prevent a segfault.
+         (add-after 'unpack 'patch-segfault
+           (lambda _
+             (substitute* "misc.c"
+               (("#include <stdio.h>\n" all)
+                (string-append all "#include <string.h>\n")))))
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key make-flags outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (dir)
+                           (mkdir-p (string-append out dir)))
+                         (list "/bin" "/share/man/man1" "/share/man/man5"))
+               (apply invoke "make" "sysinstall" make-flags)))))))
+    (inputs
+     `(("ncurses" ,ncurses)))
+    (native-inputs
+     `(("groff" ,groff-minimal)         ; for nroff
+       ("util-linux" ,util-linux)))     ; for col
+    (home-page "https://github.com/bleskodev/siggen")
+    (synopsis "Signal generation tools")
+    (description "siggen is a set of tools for imitating a laboratory signal
+generator, generating audio signals out of Linux's /dev/dsp audio
+device.  There is support for mono and/or stereo and 8 or 16 bit samples.")
+    (license license:gpl2)))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index d84481bdb8..35fb43b3cd 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -1946,13 +1946,13 @@ microarrays.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.54.0")
+    (version "1.54.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "117zh7iqa6phsrxrkv45kxraamm3vbfz5i1a8vkhyalhdbs5ssph"))))
+                "0fcammls431pgmp47r85k0zh3bz42bajbqdmafd31kpqncc1ijal"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
@@ -2154,13 +2154,13 @@ on Bioconductor or which replace R functions.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.48.0")
+    (version "2.48.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "1h8lzd63qvy1y75nlnhazpkyhl6g1hz80baqg20gpxbv38wkyf55"))))
+                "1a1lh0z1vk1q3wil85pi7v0f9miv070sjkbnwbw390zvncwakqxa"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
@@ -2172,7 +2172,8 @@ on Bioconductor or which replace R functions.")
        ("r-progress" ,r-progress)
        ("r-rappdirs" ,r-rappdirs)
        ("r-stringr" ,r-stringr)
-       ("r-xml" ,r-xml)))
+       ("r-xml" ,r-xml)
+       ("r-xml2" ,r-xml2)))
     (native-inputs
      `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/biomaRt")
@@ -2246,13 +2247,13 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.60.0")
+    (version "2.60.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "0xidh6wp0l47g1j9x8d4fs91ky6pi5nzf85ry801gqd2gqajh2zy"))))
+                "1a2vq4rram7chnccx0piccgi0mlblmjh26y51bch86lxr7qwlr22"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
@@ -4764,14 +4765,14 @@ signal in the input, that lead to spurious peaks during peak calling.")
 (define-public r-diffbind
   (package
     (name "r-diffbind")
-    (version "3.2.1")
+    (version "3.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DiffBind" version))
        (sha256
         (base32
-         "12x80z1a8gihqrlaxmzk80nc5700la72lival58s4wjv4k2lhyf3"))))
+         "037z4mm8q5c50lwf63l1gmksd9fzfmyyp259jncpsxa3almf5jgh"))))
     (properties `((upstream-name . "DiffBind")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5779,14 +5780,14 @@ missing values and weighting where appropriate.")
 (define-public r-biocsingular
   (package
     (name "r-biocsingular")
-    (version "1.8.0")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSingular" version))
        (sha256
         (base32
-         "1l0xgc3z5ci5sid198nsgg0k5i40rh877jybzmy0ify7rzv8carp"))))
+         "16gkwq8fb8jdchpnlzq2hz3i74a6pzbnc1bf93282h11mp7qr58l"))))
     (properties `((upstream-name . "BiocSingular")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7162,14 +7163,14 @@ data.")
 (define-public r-enrichplot
   (package
     (name "r-enrichplot")
-    (version "1.12.0")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "enrichplot" version))
        (sha256
         (base32
-         "0nvjwwzpmhsfkxqrn8v1a1wcrvr3xl1wn5dy89vsrdydyv31gdc6"))))
+         "116mwmpr06f4z60avdsfzdalbxn4119dbzk3jz1q5fp81qvw164d"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-cowplot" ,r-cowplot)
@@ -9948,6 +9949,32 @@ each motif and gene-set, RcisTarget predicts the candidate target genes (i.e.
 genes in the gene-set that are ranked above the leading edge).")
     (license license:gpl3)))
 
+(define-public r-chicago
+  (package
+    (name "r-chicago")
+    (version "1.20.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "Chicago" version))
+       (sha256
+        (base32
+         "0dkwy6pfvzd7g4qmhjl24ypn92l78w1zy0ajhcxgg39f7zsq883x"))))
+    (properties `((upstream-name . "Chicago")))
+    (build-system r-build-system)
+    (propagated-inputs
+     `(("r-data-table" ,r-data-table)
+       ("r-delaporte" ,r-delaporte)
+       ("r-hmisc" ,r-hmisc)
+       ("r-mass" ,r-mass)
+       ("r-matrixstats" ,r-matrixstats)))
+    (native-inputs `(("r-knitr" ,r-knitr)))
+    (home-page "https://bioconductor.org/packages/Chicago")
+    (synopsis "Capture Hi-C analysis of genomic organization")
+    (description
+     "This package provides a pipeline for analysing Capture Hi-C data.")
+    (license license:artistic2.0)))
+
 (define-public r-cicero
   (package
     (name "r-cicero")
@@ -11389,13 +11416,13 @@ different graph related packages produced by Bioconductor.")
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
-    (version "2.20.0")
+    (version "2.20.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocStyle" version))
               (sha256
                (base32
-                "062zhy33a2c70ibqghnjxcys0wbqc998aza8nnygk4zmpd4iyy1z"))))
+                "0gkprmilj6lwnyghpyfzkwmfl3gva75lgpn4ck8jgikqac8jcq0x"))))
     (properties
      `((upstream-name . "BiocStyle")))
     (build-system r-build-system)
@@ -12207,14 +12234,14 @@ block processing.")
 (define-public r-rhdf5lib
   (package
     (name "r-rhdf5lib")
-    (version "1.14.0")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhdf5lib" version))
        (sha256
         (base32
-         "1ypqmd4nz4hxlb2qsay7f5784dqdjhc3b19pckzkhb65bfycdn87"))
+         "0ld1p3rxsx47bdq2wz9110zvwhabsnn92wkhz8x7xzfr01cc9glm"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -12560,13 +12587,13 @@ of other packages.")
 (define-public r-scater
   (package
     (name "r-scater")
-    (version "1.20.0")
+    (version "1.20.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "scater" version))
               (sha256
                (base32
-                "0rppbd0mfyi41wb56i499mk3nj2ljhgnv3bv0k2p31bngvmb03j5"))))
+                "1046fgf93dda3y2z5ilrjdczz7klj67ag63p4p1h03965wpj9vfn"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-beachmat" ,r-beachmat)
@@ -13097,14 +13124,14 @@ family of feature/genome hypotheses.")
 (define-public r-gviz
   (package
     (name "r-gviz")
-    (version "1.36.0")
+    (version "1.36.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Gviz" version))
        (sha256
         (base32
-         "19vjf4sdz5sxbcdilsqx7m57fq5a8xnxjf354zx2l5mgjrkzkk3h"))))
+         "1mljj70pg36dgrqhdfj643p39wbps66zz23xw6km150lq6fpgpg5"))))
     (properties `((upstream-name . "Gviz")))
     (build-system r-build-system)
     (propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 64fc6173db..e4a01ca208 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -60,6 +60,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix deprecation)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
@@ -106,6 +107,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages logging)
+  #:use-module (gnu packages lsof)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
@@ -125,6 +127,7 @@
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-compression)
+  #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -4671,7 +4674,7 @@ experiments and provide highly stable thresholds based on reproducibility.")
 (define-public jellyfish
   (package
     (name "jellyfish")
-    (version "2.2.10")
+    (version "2.3.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/gmarcais/Jellyfish/"
@@ -4679,14 +4682,15 @@ experiments and provide highly stable thresholds based on reproducibility.")
                                   "/jellyfish-" version ".tar.gz"))
               (sha256
                (base32
-                "1k4pc3fvv6w1km2yph4m5sd78fbxp21d6xyzgmy0gjihzc6mb249"))))
+                "0npa62wzasdibas5zp3n8j3armsci4kyvh0jw7jr0am4gg7vg5g1"))))
     (build-system gnu-build-system)
     (outputs '("out"      ;for library
                "ruby"     ;for Ruby bindings
                "python")) ;for Python bindings
     (arguments
      `(#:configure-flags
-       (list (string-append "--enable-ruby-binding="
+       (list "--without-sse" ; configure script probes for CPU features when SSE is enabled.
+             (string-append "--enable-ruby-binding="
                             (assoc-ref %outputs "ruby"))
              (string-append "--enable-python-binding="
                             (assoc-ref %outputs "python")))
@@ -4696,13 +4700,12 @@ experiments and provide highly stable thresholds based on reproducibility.")
            (lambda _
              ;; generator_manager.hpp either uses /bin/sh or $SHELL
              ;; to run tests.
-             (setenv "SHELL" (which "bash"))
-             #t)))))
+             (setenv "SHELL" (which "bash")))))))
     (native-inputs
      `(("bc" ,bc)
        ("time" ,time)
        ("ruby" ,ruby)
-       ("python" ,python-2)
+       ("python" ,python-wrapper)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("htslib" ,htslib)))
@@ -4718,9 +4721,8 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
     (home-page "http://www.genome.umd.edu/jellyfish.html")
     ;; JELLYFISH seems to be 64-bit only.
     (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux"))
-    ;; The combined work is published under the GPLv3 or later.  Individual
-    ;; files such as lib/jsoncpp.cpp are released under the Expat license.
-    (license (list license:gpl3+ license:expat))))
+    ;; One of these licenses may be picked
+    (license (list license:gpl3+ license:bsd-3))))
 
 (define-public khmer
   (package
@@ -4833,7 +4835,7 @@ experiments.")
 (define-public macs
   (package
     (name "macs")
-    (version "2.2.6")
+    (version "2.2.7.1")
     (source (origin
               ;; The PyPi tarball does not contain tests.
               (method git-fetch)
@@ -4843,7 +4845,7 @@ experiments.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))
+                "08zsgh65xbpv1md2s3wqmrk9g2mz6izmn59ryw5lbac54120p291"))
         (modules '((guix build utils)))
         ;; Remove files generated by Cython
         (snippet
@@ -4854,8 +4856,7 @@ experiments.")
                           (when (file-exists? generated-file)
                             (delete-file generated-file))))
                       (find-files "." "\\.pyx$"))
-            (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c")
-            #t))))
+            (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c")))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -4864,8 +4865,7 @@ experiments.")
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
                (add-installed-pythonpath inputs outputs)
-               (invoke "pytest" "-v"))
-             #t)))))
+               (invoke "pytest" "-v")))))))
     (inputs
      `(("python-numpy" ,python-numpy)))
     (native-inputs
@@ -8355,41 +8355,57 @@ replacement for strverscmp.")
 (define-public multiqc
   (package
     (name "multiqc")
-    (version "1.5")
+    (version "1.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "multiqc" version))
        (sha256
         (base32
-         "02iihfl0w0hpnr4pa0sbd1y9qxrg3ycyhjp5lidkcrqh1lmzs3zy"))))
+         "0y9sgjca3bp0kk3ngry4zf4q2diyzp5bvzsx5l23nsysfbfkigm4"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" "/tmp")
+               (let ((here (getcwd)))
+                 (copy-recursively (assoc-ref inputs "tests") "/tmp/tests")
+                 ;; ModuleNotFoundError: No module named 'multiqc.modules.ccs'
+                 (delete-file "/tmp/tests/unit_tests/test_ccs.py")
+                 (with-directory-excursion "/tmp/tests"
+                   (setenv "PYTHONPATH" (string-append here ":" (getenv "PYTHONPATH")))
+                   (invoke "python" "-munittest" "discover")))))))))
     (propagated-inputs
-     `(("python-jinja2" ,python-jinja2)
-       ("python-simplejson" ,python-simplejson)
-       ("python-pyyaml" ,python-pyyaml)
-       ("python-click" ,python-click)
-       ("python-spectra" ,python-spectra)
-       ("python-requests" ,python-requests)
-       ("python-markdown" ,python-markdown)
+     `(("python-click" ,python-click)
+       ("python-coloredlogs" ,python-coloredlogs)
+       ("python-future" ,python-future)
+       ("python-jinja2" ,python-jinja2)
        ("python-lzstring" ,python-lzstring)
+       ("python-markdown" ,python-markdown)
        ("python-matplotlib" ,python-matplotlib)
+       ("python-networkx" ,python-networkx)
        ("python-numpy" ,python-numpy)
-       ;; MultQC checks for the presence of nose at runtime.
-       ("python-nose" ,python-nose)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'relax-requirements
-           (lambda _
-             (substitute* "setup.py"
-               ;; MultiQC 1.5 ‘requires’ a version of python-matplotlib older
-               ;; than the one in Guix, but should work fine with 2.2.2.
-               ;; See <https://github.com/ewels/MultiQC/issues/725> and
-               ;; <https://github.com/ewels/MultiQC/issues/732> for details.
-               (("['\"]matplotlib.*?['\"]")
-                "'matplotlib'"))
-             #t)))))
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-requests" ,python-requests)
+       ("python-rich" ,python-rich)
+       ("python-simplejson" ,python-simplejson)
+       ("python-spectra" ,python-spectra)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("tests"
+        ,(let ((commit "02272d48a382beb27489fcf9e6308a0407dc3c2e"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/ewels/MultiQC_TestData")
+                   (commit commit)))
+             (file-name (git-file-name "multiqc-test-data" commit))
+             (sha256
+              (base32
+               "1bha64wanrigczw4yn81din56396n61j5gqdrkslhslmskcafi91")))))))
     (home-page "https://multiqc.info")
     (synopsis "Aggregate bioinformatics analysis reports")
     (description
@@ -9354,19 +9370,19 @@ accurate as existing quantification tools.")
 (define-public libgff
   (package
     (name "libgff")
-    (version "1.0")
+    (version "2.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/Kingsford-Group/libgff")
+                    (url "https://github.com/COMBINE-lab/libgff")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n6vfjnq7a2mianipscbshrvbncss8z4zkgkbjw754p9043nfkps"))))
+                "0ds9r22y8bl1rj7bhl0003kgmm6aam7g8l41mnjfrzw15d9zf9k4"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f))          ; no tests included
-    (home-page "https://github.com/Kingsford-Group/libgff")
+    (home-page "https://github.com/COMBINE-lab/libgff")
     (synopsis "Parser library for reading/writing GFF files")
     (description "This is a simple \"libraryfication\" of the GFF/GTF parsing
 code that is used in the Cufflinks codebase.  The goal of this library is to
@@ -9568,7 +9584,7 @@ The following file formats are supported:
 (define-public salmon
   (package
     (name "salmon")
-    (version "0.13.1")
+    (version "1.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -9577,124 +9593,113 @@ The following file formats are supported:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1i2z4aivicmiixdz9bxalp7vmfzi3k92fxa63iqa8kgvfw5a4aq5"))
+                "1di7y2s8cjr9480lngcmaz3wcabc1lpkyanzbhir1nkhcjmj70h4"))
               (modules '((guix build utils)))
               (snippet
-               '(begin
-                  ;; Delete bundled headers for eigen3.
-                  (delete-file-recursively "include/eigen3/")
-                  #t))))
+               ;; Delete bundled headers for eigen3.
+               '(delete-file-recursively "include/eigen3/"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       (list (string-append "-DBOOST_INCLUDEDIR="
-                            (assoc-ref %build-inputs "boost")
-                            "/include/")
-             (string-append "-DBOOST_LIBRARYDIR="
-                            (assoc-ref %build-inputs "boost")
-                            "/lib/")
-             (string-append "-DBoost_LIBRARIES="
-                            "-lboost_iostreams "
-                            "-lboost_filesystem "
-                            "-lboost_system "
-                            "-lboost_thread "
-                            "-lboost_timer "
-                            "-lboost_chrono "
-                            "-lboost_program_options")
-             "-DBoost_FOUND=TRUE"
-             "-DTBB_LIBRARIES=tbb tbbmalloc"
-             ;; Don't download RapMap---we already have it!
-             "-DFETCHED_RAPMAP=1")
+       (list (string-append "-Dlibgff_DIR="
+                            (assoc-ref %build-inputs "libgff") "/lib")
+             "-Dlibgff_FOUND=TRUE"
+             "-DTBB_FOUND=TRUE"
+             "-DTBB_VERSION=2020.3"
+             "-DTBB_LIBRARIES=tbb -ltbbmalloc"
+             "-DFETCHED_PUFFERFISH=TRUE"
+             "-DUSE_SHARED_LIBS=TRUE")
        #:phases
        (modify-phases %standard-phases
-         ;; Boost cannot be found, even though it's right there.
-         (add-after 'unpack 'do-not-look-for-boost
+         (add-after 'unpack 'prepare-pufferfish
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               (("find_package\\(Boost 1\\.59\\.0") "#"))
-             #t))
+             (copy-recursively (assoc-ref inputs "pufferfish")
+                               "external/pufferfish")
+             ;; This test isn't working correctly, so compilation aborts.
+             (substitute* "external/pufferfish/include/string_view.hpp"
+               (("#if __has_include\\(<string_view>\\)")
+                "#if 0"))
+             (let ((headers "external/install/pufferfish/include/pufferfish")
+                   (source "external/install/src/pufferfish"))
+               (mkdir-p headers)
+               (mkdir-p source)
+               (for-each (lambda (file)
+                           (install-file (string-append "external/pufferfish/include/" file)
+                                         headers))
+                         (list "ProgOpts.hpp" "BooPHF.hpp" "SpinLock.hpp"
+                               "Kmer.hpp" "CanonicalKmer.hpp" "string_view.hpp"
+                               "CanonicalKmerIterator.hpp"
+                               "PufferfishBaseIndex.hpp"
+                               "PufferfishIndex.hpp"
+                               "PufferfishSparseIndex.hpp"
+                               "PufferfishLossyIndex.hpp"
+                               "PufferfishTypes.hpp"
+                               "rank9b.hpp" "rank9sel.hpp" "macros.hpp"
+                               "select.hpp" "Util.hpp"
+                               "PairedAlignmentFormatter.hpp"
+                               "SelectiveAlignmentUtils.hpp"
+                               "PuffAligner.hpp" "MemCollector.hpp"
+                               "MemChainer.hpp" "CommonTypes.hpp"
+                               "SAMWriter.hpp" "PufferfishConfig.hpp"
+                               "BulkChunk.hpp" "BinWriter.hpp"))
+               (for-each (lambda (dir)
+                           (copy-recursively
+                            (string-append "external/pufferfish/include/" dir)
+                            (string-append headers "/" dir)))
+                         (list "libdivide"
+                               "ksw2pp"
+                               "compact_vector"
+                               "metro"
+                               "chobo"
+                               "sparsepp"
+                               "simde"
+                               "tsl"))
+               (copy-recursively
+                (string-append "external/pufferfish/src/metro/")
+                (string-append source "/metro"))
+               (install-file
+                (string-append "external/pufferfish/src/rank9b.cpp")
+                source)
+
+               ;; Do not complain about not having built libtbb
+               (substitute* "external/pufferfish/external/twopaco/CMakeLists.txt"
+                 (("add_dependencies.*") "")))))
          (add-after 'unpack 'do-not-phone-home
            (lambda _
              (substitute* "src/Salmon.cpp"
-               (("getVersionMessage\\(\\)") "\"\""))
-             #t))
-         (add-after 'unpack 'prepare-rapmap
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((src "external/install/src/rapmap/")
-                   (include "external/install/include/rapmap/")
-                   (rapmap (assoc-ref inputs "rapmap")))
-               (mkdir-p src)
-               (mkdir-p include)
-               (copy-recursively (string-append rapmap "/src") src)
-               (copy-recursively (string-append rapmap "/include") include)
-               (for-each delete-file '("external/install/include/rapmap/xxhash.h"
-                                       "external/install/include/rapmap/FastxParser.hpp"
-                                       "external/install/include/rapmap/concurrentqueue.h"
-                                       "external/install/include/rapmap/FastxParserThreadUtils.hpp"
-                                       "external/install/src/rapmap/FastxParser.cpp"
-                                       "external/install/src/rapmap/xxhash.c"))
-               (delete-file-recursively "external/install/include/rapmap/spdlog"))
-             #t))
+               (("getVersionMessage\\(\\)") "\"\""))))
          (add-after 'unpack 'use-system-libraries
            (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "CMakeLists.txt"
-               ;; Don't prefer static libs
-               (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
-               (("set\\(TBB_LIBRARIES") "message(")
-               ;; Don't download anything
-               (("DOWNLOAD_COMMAND") "DOWNLOAD_COMMAND echo")
-               (("externalproject_add\\(libcereal") "message(")
-               (("externalproject_add\\(libgff") "message(")
-               (("externalproject_add\\(libtbb") "message(")
-               (("externalproject_add\\(libdivsufsort") "message(")
-               (("externalproject_add\\(libstadenio") "message(")
-               (("externalproject_add_step\\(") "message("))
-             (substitute* "src/CMakeLists.txt"
-               (("add_dependencies") "#")
-               (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libstaden-read.a")
-                (string-append (assoc-ref inputs "libstadenio-for-salmon")
-                               "/lib/libstaden-read.so"))
-               (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
-                (string-append (assoc-ref inputs "libdivsufsort")
-                               "/lib/libdivsufsort.so"))
-               (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
-                (string-append (assoc-ref inputs "libdivsufsort")
-                               "/lib/libdivsufsort64.so"))
-               (("lib/libdivsufsort.a") "/lib/libdivsufsort.so"))
-
              ;; Ensure that all headers can be found
              (setenv "CPLUS_INCLUDE_PATH"
                      (string-append (or (getenv "CPLUS_INCLUDE_PATH") "")
                                     ":"
+                                    (getcwd) "/external/install/pufferfish/include:"
                                     (assoc-ref inputs "eigen")
-                                    "/include/eigen3"))
-             #t))
-         ;; CMAKE_INSTALL_PREFIX does not exist when the tests are
-         ;; run.  It only exists after the install phase.
-         (add-after 'unpack 'fix-tests
+                                    "/include/eigen3"))))
+         (add-after 'unpack 'fix-error-message-in-tests
            (lambda _
-             (substitute* "src/CMakeLists.txt"
-               (("DTOPLEVEL_DIR=\\$\\{CMAKE_INSTALL_PREFIX")
-                "DTOPLEVEL_DIR=${GAT_SOURCE_DIR"))
-             #t)))))
+             (substitute* "cmake/TestSalmonQuasi.cmake"
+               (("SALMON_QUASI_INDEX_COMMAND")
+                "SALMON_QUASI_INDEX_CMD")))))))
     (inputs
      `(("boost" ,boost)
        ("bzip2" ,bzip2)
        ("cereal" ,cereal)
+       ("curl" ,curl)
        ("eigen" ,eigen)
-       ("rapmap" ,(origin
-                    (method git-fetch)
-                    (uri (git-reference
-                          (url "https://github.com/COMBINE-lab/RapMap")
-                          (commit (string-append "salmon-v" version))))
-                    (file-name (string-append "rapmap-salmon-v" version "-checkout"))
-                    (sha256
-                     (base32
-                      "1biplxf0csc7a8h1wf219b0vmjkvw6wk2zylhdklb577kgmihdms"))))
        ("jemalloc" ,jemalloc)
        ("libgff" ,libgff)
+       ("pufferfish" ,(origin
+                        (method git-fetch)
+                        (uri (git-reference
+                              (url "https://github.com/COMBINE-lab/pufferfish")
+                              (commit (string-append "salmon-v" version))))
+                        (file-name (git-file-name "pufferfish" version))
+                        (sha256
+                         (base32
+                          "0qb4a2nl1d59qasr17sslgxnkjd5kbk5mns4cjshrmsvkrqp995n"))))
        ("tbb" ,tbb)
-       ("libdivsufsort" ,libdivsufsort)
        ("libstadenio-for-salmon" ,libstadenio-for-salmon)
        ("xz" ,xz)
        ("zlib" ,zlib)))
@@ -10293,7 +10298,7 @@ once.  This package provides tools to perform Drop-seq analyses.")
 (define-public pigx-rnaseq
   (package
     (name "pigx-rnaseq")
-    (version "0.0.13")
+    (version "0.0.17")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
@@ -10301,18 +10306,26 @@ once.  This package provides tools to perform Drop-seq analyses.")
                                   "/pigx_rnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0z9zid2c8q16lfzlnjd63nparknhv31qgv4h79algmvhkakm2pgk"))))
+                "0k9zj50bij3sjwq08v8l8waddcx8k66m3vdq8mx5vc23p19qz42s"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f             ; not supported
        #:phases
        (modify-phases %standard-phases
-         ;; "test.sh" runs STAR, which requires excessive amounts of memory.
+         ;; "test.sh" runs the whole pipeline, which takes a long time and
+         ;; might fail due to OOM.  The MultiQC is also resource intensive.
          (add-after 'unpack 'disable-resource-intensive-test
            (lambda _
              (substitute* "Makefile.in"
                (("^  tests/test_multiqc/test.sh") "")
-               (("^  test.sh") "")))))))
+               (("^  test.sh") ""))))
+         (add-before 'check 'set-timezone
+           ;; The readr package is picky about timezones.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "TZ" "UTC+1")
+             (setenv "TZDIR"
+                     (string-append (assoc-ref inputs "tzdata")
+                                    "/share/zoneinfo")))))))
     (inputs
      `(("coreutils" ,coreutils)
        ("sed" ,sed)
@@ -10327,8 +10340,9 @@ once.  This package provides tools to perform Drop-seq analyses.")
        ("r-minimal" ,r-minimal)
        ("r-rmarkdown" ,r-rmarkdown)
        ("r-ggplot2" ,r-ggplot2)
+       ("r-ggpubr" ,r-ggpubr)
        ("r-ggrepel" ,r-ggrepel)
-       ("r-gprofiler" ,r-gprofiler)
+       ("r-gprofiler2" ,r-gprofiler2)
        ("r-deseq2" ,r-deseq2)
        ("r-dt" ,r-dt)
        ("r-knitr" ,r-knitr)
@@ -10346,7 +10360,10 @@ once.  This package provides tools to perform Drop-seq analyses.")
        ("pandoc" ,pandoc)
        ("pandoc-citeproc" ,pandoc-citeproc)
        ("python-wrapper" ,python-wrapper)
+       ("python-deeptools" ,python-deeptools)
        ("python-pyyaml" ,python-pyyaml)))
+    (native-inputs
+     `(("tzdata" ,tzdata)))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for RNA sequencing experiments")
     (description "PiGX RNAseq is an analysis pipeline for preprocessing and
@@ -10437,7 +10454,7 @@ in an easily configurable manner.")
 (define-public pigx-bsseq
   (package
     (name "pigx-bsseq")
-    (version "0.1.3")
+    (version "0.1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@@ -10445,7 +10462,7 @@ in an easily configurable manner.")
                                   "/pigx_bsseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0blm0bl5z3ng01n7hh2ffk4rkzvf7vb3nm0crgdzrxr5cahxdxql"))))
+                "05al5dacfp1vf1x3cq20jhd6w4xj5vaxslzaka6yrpg0av8sh3k3"))))
     (build-system gnu-build-system)
     (arguments
      `(;; TODO: tests currently require 12+GB of RAM.  See
@@ -10459,8 +10476,7 @@ in an easily configurable manner.")
              (setenv "TZ" "UTC+1")
              (setenv "TZDIR"
                      (string-append (assoc-ref inputs "tzdata")
-                                    "/share/zoneinfo"))
-             #t)))))
+                                    "/share/zoneinfo")))))))
     (native-inputs
      `(("tzdata" ,tzdata)))
     (inputs
@@ -10573,7 +10589,7 @@ based methods.")
 (define-public pigx-sars-cov2-ww
   (package
     (name "pigx-sars-cov2-ww")
-    (version "0.0.1")
+    (version "0.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sarscov2_ww/"
@@ -10581,7 +10597,7 @@ based methods.")
                                   "/pigx_sars-cov2-ww-" version ".tar.gz"))
               (sha256
                (base32
-                "1h1rfl3dyf7pid74xxgiyr4x1l5yj000wcz5crm1bdbaz8p7b7ic"))))
+                "0yrbza7lbzijjc8ifk06b646n959a4k7id94x3ndz795892f64l0"))))
     (build-system gnu-build-system)
     (inputs
      `(("bash-minimal" ,bash-minimal)
@@ -10608,7 +10624,8 @@ based methods.")
        ("r-stringr" ,r-stringr)
        ("r-tidyr" ,r-tidyr)
        ("samtools" ,samtools)
-       ("snakemake" ,snakemake)))
+       ("snakemake" ,snakemake)
+       ("wget" ,wget)))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for wastewater sequencing")
     (description "PiGx SARS-CoV-2 is a pipeline for analysing data from
@@ -10859,6 +10876,28 @@ cases include:
 @end enumerate\n")
     (license license:expat)))
 
+(define-public python-mappy
+  (package
+   (name "python-mappy")
+   (version "2.18")
+   (source (origin
+            (method url-fetch)
+            (uri (pypi-uri "mappy" version))
+            (sha256
+             (base32
+              "1a05p7rkmxa6qhm108na8flzj2v45jab06drk59kzk1ip2sgvzqq"))))
+   (build-system python-build-system)
+   (native-inputs
+    `(("python-cython" ,python-cython)))
+   (inputs
+    `(("zlib" ,zlib)))
+   (home-page "https://github.com/lh3/minimap2")
+   (synopsis "Python binding for minimap2")
+   (description "This package provides a convenient interface to minimap2,
+a fast and accurate C program to align genomic and transcribe nucleotide
+sequences.")
+   (license license:expat)))
+
 (define-public miniasm
   (package
    (name "miniasm")
@@ -10932,7 +10971,7 @@ Thus the per-base error rate is similar to the raw input reads.")
                (install-file "Bandage" (string-append out "/bin"))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("imagemagick" ,imagemagick)))
@@ -11723,29 +11762,26 @@ such as Hi-C contact matrices.")
 (define-public python-hicmatrix
   (package
     (name "python-hicmatrix")
-    (version "12")
-    (source
-     (origin
-       ;; Version 12 is not available on pypi.
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/deeptools/HiCMatrix")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
+    (version "15")
+      (source
+        (origin
+          ;;Pypi sources do not contain any test
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/deeptools/HiCMatrix")
+                 (commit version)))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+             "1dshjxgb16sdfg9k1bhw2yhyngac04k4ca7aqy8g3i3pprr068r5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'relax-requirements
-           (lambda _
-             (substitute* '("requirements.txt"
-                            "setup.py")
-               (("cooler *=+ *0.8.5")
-                "cooler==0.8.*"))
-             #t)))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "-m" "pytest" "-v")))))))
     (propagated-inputs
      `(("python-cooler" ,python-cooler)
        ("python-intervaltree" ,python-intervaltree)
@@ -11753,6 +11789,8 @@ such as Hi-C contact matrices.")
        ("python-pandas" ,python-pandas)
        ("python-scipy" ,python-scipy)
        ("python-tables" ,python-tables)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/deeptools/HiCMatrix/")
     (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
     (description
@@ -11859,18 +11897,35 @@ pyGenomeTracks can make plots with or without Hi-C data.")
 (define-public python-hic2cool
   (package
     (name "python-hic2cool")
-    (version "0.4.2")
+    (version "0.8.3")
+    ;; pypi sources do not contain the test_data directory and no test can be
+    ;; run
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "hic2cool" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/4dn-dcic/hic2cool")
+             (commit version)))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "0xy6mhfns2lzib1kcr6419jjp6pmh0qx8z8na55lmiwn0ds8q9cl"))))
+         "0dlnf0qfcp4jrc1nyya32a035c13xicyq16bwfnwhbb9s47mz7gl"))))
     (build-system python-build-system)
-    (arguments '(#:tests? #f)) ; no tests included
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Two of the test-data files need to be writable.
+         (add-after 'unpack 'make-test-data-writable
+           (lambda _
+             (for-each make-file-writable
+                       (list "test_data/hic2cool_0.4.2_single_res.cool"
+                             "test_data/hic2cool_0.7.0_multi_res.mcool")))))))
     (propagated-inputs
-     `(("python-cooler" ,python-cooler)))
+     `(("python-cooler" ,python-cooler)
+       ("python-h5py" ,python-h5py)
+       ("python-numpy" ,python-numpy)
+       ("python-pandas" ,python-pandas)
+       ("python-scipy" ,python-scipy)))
     (home-page "https://github.com/4dn-dcic/hic2cool")
     (synopsis "Converter for .hic and .cool files")
     (description
@@ -14064,6 +14119,62 @@ usually ignored by other methods or only used for filtering.")
 coordinates between different assemblies.")
     (license license:expat)))
 
+(define-public python-cgatcore
+  (package
+    (name "python-cgatcore")
+    (version "0.6.7")
+    ;; The version of pypi does not include test data.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cgat-developers/cgat-core")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "17vk88v1bx7x02ibzkc9i7ir4b5p1hcjr38jpsfzyzxr68352d5k"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-references
+           (lambda _
+             (substitute* "cgatcore/pipeline/execution.py"
+               (("#!/bin/bash") (string-append "#!" (which "bash")))
+               (("executable=\"/bin/bash\"")
+                (string-append "executable=\"" (which "bash") "\""))
+               (("\\\\time") (which "time")))))
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               ;; Requires network access
+               (delete-file "tests/test_pipeline_execution.py")
+               (invoke "python" "-m" "pytest" "-v")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("lsof" ,lsof)
+       ("hostname" ,inetutils)
+       ("openssl" ,openssl)))
+    (inputs
+     `(("time" ,time)))
+    (propagated-inputs
+     `(("python-apsw" ,python-apsw)
+       ("python-gevent" ,python-gevent)
+       ("python-pandas" ,python-pandas)
+       ("python-paramiko" ,python-paramiko)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-ruffus" ,python-ruffus)
+       ("python-sqlalchemy" ,python-sqlalchemy)))
+    (home-page "https://github.com/cgat-developers/cgat-core")
+    (synopsis "Computational genomics analysis toolkit")
+    (description
+     "CGAT-core is a set of libraries and helper functions used to enable
+researchers to design and build computational workflows for the analysis of
+large-scale data-analysis.")
+    (license license:expat)))
+
 (define-public ensembl-vep
   (let* ((api-version "103")
          (api-module
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 29b0d62ad2..5d6a780aab 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -459,7 +459,7 @@ desktops.")
        ("libtorrent-rasterbar" ,libtorrent-rasterbar)
        ("openssl" ,openssl)
        ("python" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
     (home-page "https://www.qbittorrent.org/")
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index e9da56e115..14b6734ed7 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -46,6 +46,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages icu4c)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages shells)
@@ -193,6 +194,91 @@ across a broad spectrum of applications.")
     (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"
                                 "Some components have other similar licences."))))
 
+;; Sadly, this is needed for irods.  It won't link with 1.69 or later.
+(define-public boost-for-irods
+  (package
+    (inherit boost)
+    (name "boost-for-irods")
+    (version "1.68.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/boost/boost/" version "/boost_"
+                    (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "1dyqsr9yb01y0nnjdq9b8q5s2kvhxbayk34832k5cpzn7jy30qbz"))))
+    (build-system gnu-build-system)
+    (properties `((hidden? . #true)))
+    (inputs
+     `(("icu4c" ,icu4c)
+       ("libcxx" ,libcxx+libcxxabi-6)
+       ("libcxxabi" ,libcxxabi-6)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("clang" ,clang-6)
+       ("perl" ,perl)
+       ("tcsh" ,tcsh)))
+    (arguments
+     `(#:tests? #f
+       #:make-flags
+       (list "threading=multi" "link=shared"
+             "cxxflags=-stdlib=libc++"
+             "--without-python"
+
+             ;; Set the RUNPATH to $libdir so that the libs find each other.
+             (string-append "linkflags=-stdlib=libc++ -Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref (or native-inputs inputs) "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons (string-append (assoc-ref inputs "libcxx")
+                                             "/include/c++/v1")
+                              ;; Hide GCC's C++ headers so that they do not interfere with
+                              ;; the Clang headers.
+                              (delete (string-append gcc "/include/c++")
+                                      (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                    #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH")))))
+         (replace 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((icu (assoc-ref inputs "icu4c"))
+                   (out (assoc-ref outputs "out"))
+                   (sh  (string-append (assoc-ref inputs "bash") "/bin/sh")))
+               (substitute* '("libs/config/configure"
+                              "libs/spirit/classic/phoenix/test/runtest.sh"
+                              "tools/build/src/engine/execunix.c"
+                              "tools/build/src/engine/Jambase"
+                              "tools/build/src/engine/jambase.c")
+                 (("/bin/sh") sh))
+
+               (setenv "SHELL" (which "sh"))
+               (setenv "CONFIG_SHELL" (which "sh"))
+
+               (invoke "./bootstrap.sh"
+                       (string-append "--prefix=" out)
+                       ;; Auto-detection looks for ICU only in traditional
+                       ;; install locations.
+                       (string-append "--with-icu=" icu)
+                       "--with-toolset=clang"))))
+         (replace 'build
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "./b2"
+                    (format #f "-j~a" (parallel-job-count))
+                    make-flags)))
+         (replace 'install
+           (lambda* (#:key make-flags #:allow-other-keys)
+             (apply invoke "./b2" "install" make-flags))))))))
+
 (define-public boost-with-python3
   (deprecated-package "boost-with-python3" boost))
 
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 56bef57cb7..e83f21ea63 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -3,10 +3,10 @@
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
 ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
-;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 nee <nee@cock.li>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -88,18 +88,24 @@
 (define-public grub
   (package
     (name "grub")
-    (version "2.04")
+    (version "2.06")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
              (sha256
               (base32
-               "0zgp5m3hmc9jh8wpjx6czzkh5id2y8n1k823x2mjvm2sk6b28ag5"))
+               "1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
              (patches (search-patches
                        "grub-efi-fat-serial-number.patch"
-                       "grub-setup-root.patch"
-                       "grub-verifiers-Blocklist-fallout-cleanup.patch"
-                       "grub-cross-system-i686.patch"))))
+                       "grub-setup-root.patch"))
+             (modules '((guix build utils)))
+             (snippet
+              '(begin
+                 ;; Adjust QEMU invocation to not use a deprecated device
+                 ;; name that was removed in QEMU 6.0.  Remove for >2.06.
+                 (substitute* "tests/ahci_test.in"
+                   (("ide-drive")
+                    "ide-hd"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -296,7 +302,9 @@ menu to select one of the installed operating systems.")
        ,@(substitute-keyword-arguments (package-arguments grub)
            ((#:tests? _ #f) #f)
            ((#:configure-flags flags ''())
-            `(cons "--with-platform=efi" ,flags))
+            `(cons* "--with-platform=efi"
+                    "--enable-stack-protector" ; EFI-only for now
+                    ,flags))
            ((#:phases phases)
             `(modify-phases ,phases
                (add-after 'patch-stuff 'use-absolute-efibootmgr-path
@@ -426,7 +434,7 @@ menu to select one of the installed operating systems.")
 (define-public dtc
   (package
     (name "dtc")
-    (version "1.6.0")
+    (version "1.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -434,7 +442,7 @@ menu to select one of the installed operating systems.")
                     "dtc-" version ".tar.xz"))
               (sha256
                (base32
-                "0bf8801z6fpd1gz9mxd5pqqj8nq101x393cyw8rpkc712w13nl0h"))))
+                "0wrl43rvd8nnm1v1wyfdr17vk8q7ymib62vli6da8n9ni4lwbkk5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("bison" ,bison)
@@ -516,17 +524,17 @@ also initializes the boards (RAM etc).")
 (define-public u-boot-2021.07
   (package
    (inherit u-boot)
-   (version "2021.07-rc1")
+   (version "2021.07-rc4")
    (source (origin
-	    (patches
-             (list %u-boot-rockchip-inno-usb-patch))
+             (patches
+               (list %u-boot-rockchip-inno-usb-patch))
             (method url-fetch)
             (uri (string-append
                   "https://ftp.denx.de/pub/u-boot/"
                   "u-boot-" version ".tar.bz2"))
             (sha256
              (base32
-              "12krpy85iwy40xlhqb61d0d4bzj0sbn9sdf8brn57m4cjh1svaya"))))))
+              "0bnsywgy2b0jxim5h9dc807lqk5kq8hvgf4lcsmffnc0hf4isv8p"))))))
 
 (define-public u-boot-tools
   (package
@@ -866,6 +874,13 @@ to Novena upstream, does not load u-boot.img from the first partition.")
 (define-public u-boot-sifive-fu540
   (make-u-boot-package "sifive_fu540" "riscv64-linux-gnu"))
 
+(define-public u-boot-sifive-unmatched
+  (let ((base (make-u-boot-package "sifive_unmatched" "riscv64-linux-gnu")))
+    (package
+      (inherit base)
+      (version (package-version u-boot-2021.07))
+      (source (package-source u-boot-2021.07)))))
+
 (define-public u-boot-rock64-rk3328
   (let ((base (make-u-boot-package "rock64-rk3328" "aarch64-linux-gnu")))
     (package
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index a9de2514c8..3c287fc856 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -347,7 +347,7 @@ and ruby.  It includes two illustrative command-line programs, @code{hcal} and
     (native-inputs
      `(("perl" ,perl))) ; pod2man
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://www.toastfreeware.priv.at/confclerk")
     (synopsis "Offline conference schedule application")
     (description
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 4b0e719959..a52ecf69f7 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -80,7 +80,7 @@
        ("molequeue" ,molequeue)
        ("python" ,python)
        ("spglib" ,spglib)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      '(#:configure-flags (list "-DENABLE_TESTING=ON"
                                (string-append "-DSPGLIB_INCLUDE_DIR="
@@ -116,7 +116,7 @@ bioinformatics, materials science, and related areas.")
      `(("avogadrolibs" ,avogadrolibs)
        ("hdf5" ,hdf5)
        ("molequeue" ,molequeue)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     ;; TODO: Enable tests with "-DENABLE_TESTING" configure flag.
     (arguments
      '(#:tests? #f))
@@ -301,7 +301,7 @@ biological structures.")
          "1w1fgxzqrb5yxvpmnc3c9ymnvixy0z1nfafkd9whg9zw8nbgl998"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      '(#:configure-flags '("-DENABLE_TESTING=ON")
        #:phases
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 6a98867cc8..8d7326e1c4 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -322,11 +322,11 @@
                   (string-append "ungoogled-chromium-" category "-" name))))
     (sha256 (base32 hash))))
 
-(define %chromium-version "91.0.4472.77")
+(define %chromium-version "91.0.4472.106")
 (define %debian-revision "debian/90.0.4430.85-1")
 ;; Note: use 'git describe --long' even for exact tags to placate the
 ;; custom version format for ungoogled-chromium.
-(define %ungoogled-revision "91.0.4472.77-1-0-g6802c88")
+(define %ungoogled-revision "91.0.4472.101-1-2-gbd0ffd1")
 
 (define %debian-patches
   (list (debian-patch "fixes/nomerge.patch"
@@ -346,7 +346,7 @@
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "1jfmmkw1y4rcjfgsm7b4v2lrgd3sks5qpajvq0djflbhkpsqxfk0"))))
+      "0676wkk1zlccwwwk4hi8ifhrk2x5s66fi0amsj30b7lnydzwpfv9"))))
 
 (define %guix-patches
   (list (local-file
@@ -488,7 +488,7 @@
                                   %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "0c8vj3gq3nmb7ssiwj6875g0a8hcprss1a4gqw9h7llqywza9ma5"))
+                "1fxy1l2dl0f6v8566lykcng18ma6fv4nlwxmdb0hh06fgp6khpjl"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index e3918fb724..3a2e6df207 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -73,11 +73,11 @@
                 (file-name (string-append name "-" version "-checkout")))))))
 
 (define-public cuirass
-  (let ((commit "21202760c0d15c99b69ef235ff129ab9cb478186")
-        (revision "25"))
+  (let ((commit "f9a5dbd54eaa7fa8ac173fd5e68209f937840d90")
+        (revision "1"))
     (package
       (name "cuirass")
-      (version (git-version "1.0.0" revision commit))
+      (version (git-version "1.1.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -87,7 +87,7 @@
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1bzzycz7jmmrph730p8d3q2h76ab6i8j72wblm3w0szf8vimcqfk"))))
+           "0wrx2bf1gdnbkfgmmqr46s1fhvv3568yi7hxb24plf4xx5jq5yg8"))))
       (build-system gnu-build-system)
       (arguments
        `(#:modules ((guix build utils)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index cc91bcfaa4..719cd36235 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@@ -78,6 +78,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages perl)
@@ -857,22 +858,23 @@ time for compression ratio.")
   (package
     (name "squashfs-tools")
     (version "4.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/squashfs/squashfs/"
-                                  "squashfs" version "/"
-                                  "squashfs" version ".tar.gz"))
-              (sha256
-               (base32
-                "0zmhvczscqz0mzh4b9m8m42asq14db0a6lc8clp5ljq5ybrv70d9"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Fix build with -fno-common (default in GCC 10).
-                  ;; Remove for squashfs-tools > 4.4.
-                  (substitute* "squashfs-tools/mksquashfs.h"
-                    (("struct cache \\*bwriter_buffer" all)
-                     (string-append "extern " all)))))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/plougher/squashfs-tools")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0697fv8n6739mcyn57jclzwwbbqwpvjdfkv1qh9s56lvyqnplwaw"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           ;; Fix build with -fno-common (default in GCC 10).
+           ;; Remove for squashfs-tools > 4.4.
+           (substitute* "squashfs-tools/mksquashfs.h"
+             (("struct cache \\*bwriter_buffer" all)
+              (string-append "extern " all)))))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
@@ -881,18 +883,25 @@ time for compression ratio.")
              "XZ_SUPPORT=1"
              "LZO_SUPPORT=1"
              "LZ4_SUPPORT=1"
+             "ZSTD_SUPPORT=1"
              (string-append "INSTALL_DIR=" %output "/bin"))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda _
-             (chdir "squashfs-tools")
-             #t)))))
+             (chdir "squashfs-tools")))
+         (add-after 'install 'install-documentation
+           ;; Install what very little usage documentation is provided.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name)))
+               (install-file "../USAGE" doc)))))))
     (inputs
      `(("lz4" ,lz4)
        ("lzo" ,lzo)
        ("xz" ,xz)
-       ("zlib" ,zlib)))
+       ("zlib" ,zlib)
+       ("zstd:lib" ,zstd "lib")))
     (home-page "https://github.com/plougher/squashfs-tools")
     (synopsis "Tools to create and extract squashfs file systems")
     (description
@@ -1172,6 +1181,54 @@ for most inputs, but the resulting compressed files are anywhere from 20% to
 100% bigger.")
     (license license:asl2.0)))
 
+;; We need this for irods.
+(define-public snappy-with-clang6
+  (package
+    (inherit snappy)
+    (name "snappy-with-clang")
+    ;; XXX 1.1.9 fails to build with clang with
+    ;; error: invalid output constraint '=@ccz' in asm
+    (version "1.1.8")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/google/snappy")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1j0kslq2dvxgkcxl1gakhvsa731yrcvcaipcp5k8k7ayicvkv9jv"))))
+    (arguments
+     `(#:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON"
+         "-DCMAKE_CXX_COMPILER=clang++"
+         "-DCMAKE_CXX_FLAGS=-stdlib=libc++"
+         "-DCMAKE_EXE_LINKER_FLAGS=-lc++abi")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref (or native-inputs inputs) "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
+                                              "/include/c++/v1")
+                               ;; Hide GCC's C++ headers so that they do not interfere with
+                               ;; the Clang headers.
+                               (delete (string-append gcc "/include/c++")
+                                       (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                     #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (properties `((hidden? . #true)))
+    (native-inputs
+     `(("clang" ,clang-toolchain-6)))
+    (inputs
+     `(("libcxx+libcxxabi" ,libcxx+libcxxabi-6)
+       ("libcxxabi" ,libcxxabi-6)))))
+
 (define-public p7zip
   (package
     (name "p7zip")
@@ -2134,7 +2191,7 @@ download times, and other distribution and storage costs.")
     (native-inputs
      `(("doxygen" ,doxygen)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (home-page "https://stachenov.github.io/quazip/index.html")
     (synopsis "Qt/C++ wrapper for Minizip")
diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index 78204dbae7..c0cfa1be4d 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -50,8 +50,9 @@
         (method url-fetch)
         (uri (string-append "mirror://kernel.org/linux/network/connman/"
                             "connman-" version ".tar.xz"))
-    (sha256
-     (base32 "1wqs307vjphhh73qbqk25zxhhqwn1mdk6bpzl5qcd4blkcbafqlz"))))
+        (patches (search-patches "connman-CVE-2021-33833.patch"))
+        (sha256
+         (base32 "1wqs307vjphhh73qbqk25zxhhqwn1mdk6bpzl5qcd4blkcbafqlz"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -148,7 +149,7 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
        (sha256
         (base32 "0jn12wxwjznady6aniwmvahg1dj25p902sdwj0070biv6vx5c7dq"))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("qttools" ,qttools)))
     (build-system gnu-build-system)
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index fb6a899b48..fa1f4078b8 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
 ;;; Copyright © 2020 Robin Green <greenrd@greenrd.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -142,79 +143,76 @@ It is developed using Objective Caml and Camlp5.")
     (license (list license:lgpl2.1 license:opl1.0+))))
 
 (define-public proof-general
-  (package
-    (name "proof-general")
-    (version "4.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url (string-append
-                          "https://github.com/ProofGeneral/PG"))
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0bdfk91wf71z80mdfnl8hpinripndcjgdkz854zil6521r84nqk8"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("which" ,which)
-       ("emacs" ,emacs-minimal)
-       ("texinfo" ,texinfo)))
-    (inputs
-     `(("host-emacs" ,emacs)
-       ("perl" ,perl)
-       ("coq" ,coq)))
-    (arguments
-     `(#:tests? #f  ; no check target
-       #:make-flags (list (string-append "PREFIX=" %output)
-                          (string-append "DEST_PREFIX=" %output))
-       #:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (guix build emacs-utils))
-       #:imported-modules (,@%gnu-build-system-modules
-                           (guix build emacs-utils))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-after 'unpack 'disable-byte-compile-error-on-warn
-                    (lambda _
-                      (substitute* "Makefile"
-                        (("\\(setq byte-compile-error-on-warn t\\)")
-                         "(setq byte-compile-error-on-warn nil)"))
-                      #t))
-         (add-after 'unpack 'patch-hardcoded-paths
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let ((out   (assoc-ref outputs "out"))
-                            (coq   (assoc-ref inputs "coq"))
-                            (emacs (assoc-ref inputs "host-emacs")))
-                        (define (coq-prog name)
-                          (string-append coq "/bin/" name))
-                        (substitute* "Makefile"
-                          (("/sbin/install-info") "install-info"))
-                        (substitute* "bin/proofgeneral"
-                          (("^PGHOMEDEFAULT=.*" all)
-                           (string-append all
-                                          "PGHOME=$PGHOMEDEFAULT\n"
-                                          "EMACS=" emacs "/bin/emacs")))
-                        #t)))
-         (add-after 'unpack 'clean
-           (lambda _
-             ;; Delete the pre-compiled elc files for Emacs 23.
-             (invoke "make" "clean")))
-         (add-after 'install 'install-doc
-           (lambda* (#:key make-flags #:allow-other-keys)
-             ;; XXX FIXME avoid building/installing pdf files,
-             ;; due to unresolved errors building them.
-             (substitute* "Makefile"
-               ((" [^ ]*\\.pdf") ""))
-             (apply invoke "make" "install-doc" make-flags))))))
-    (home-page "https://proofgeneral.github.io/ ")
-    (synopsis "Generic front-end for proof assistants based on Emacs")
-    (description
-     "Proof General is a major mode to turn Emacs into an interactive proof
+  ;; The latest release is from 2016 and there has been more than 450 commits
+  ;; since then.
+  ;; Commit from 2021-06-07.
+  (let ((commit "bc86736abb728ec0d28abc90ef0adae21d29a66a")
+        (revision "0"))
+    (package
+      (name "proof-general")
+      (version (git-version "4.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ProofGeneral/PG")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "00cga3n9nj2xa3ivb0fdkkdx3k11fp4879y188738631yd1x2lsa"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("which" ,which)
+         ("emacs" ,emacs-minimal)
+         ("texinfo" ,texinfo)))
+      (inputs
+       `(("host-emacs" ,emacs)
+         ("perl" ,perl)
+         ("coq" ,coq)))
+      (arguments
+       `(#:tests? #f                   ; no check target
+         #:make-flags (list (string-append "PREFIX=" %output)
+                            (string-append "DEST_PREFIX=" %output)
+                            (string-append "ELISP_START=" %output
+                                           "/share/emacs/site-lisp/ProofGeneral"))
+         #:modules ((guix build gnu-build-system)
+                    (guix build utils)
+                    (guix build emacs-utils))
+         #:imported-modules (,@%gnu-build-system-modules
+                             (guix build emacs-utils))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-after 'unpack 'disable-byte-compile-error-on-warn
+             (lambda _
+               (substitute* "Makefile"
+                 (("\\(setq byte-compile-error-on-warn t\\)")
+                  "(setq byte-compile-error-on-warn nil)"))))
+           (add-after 'unpack 'patch-hardcoded-paths
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((out   (assoc-ref outputs "out"))
+                     (coq   (assoc-ref inputs "coq"))
+                     (emacs (assoc-ref inputs "host-emacs")))
+                 (substitute* "Makefile"
+                   (("/sbin/install-info") "install-info")))))
+           (add-after 'unpack 'clean
+             (lambda _
+               ;; Delete the pre-compiled elc files for Emacs 23.
+               (invoke "make" "clean")))
+           (add-after 'install 'install-doc
+             (lambda* (#:key make-flags #:allow-other-keys)
+               ;; XXX FIXME avoid building/installing pdf files,
+               ;; due to unresolved errors building them.
+               (substitute* "Makefile"
+                 ((" [^ ]*\\.pdf") ""))
+               (apply invoke "make" "install-doc" make-flags))))))
+      (home-page "https://proofgeneral.github.io/")
+      (synopsis "Generic front-end for proof assistants based on Emacs")
+      (description
+       "Proof General is a major mode to turn Emacs into an interactive proof
 assistant to write formal mathematical proofs using a variety of theorem
 provers.")
-    (license license:gpl2+)))
+      (license license:gpl2+))))
 
 (define-public coq-flocq
   (package
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 3089094eb8..54f9da4b27 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -587,7 +587,7 @@ tools:
     (synopsis "Static code checker for C++")
     (description "@code{cpplint} is a command-line tool to check C/C++ files
 for style issues following Google’s C++ style guide.  While Google maintains
-it's own version of the tool, this is a fork that aims to be more responsive
+its own version of the tool, this is a fork that aims to be more responsive
 and make @code{cpplint} usable in wider contexts.")
     (license license:bsd-3)))
 
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 2e7e9041c6..e01b2417d2 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -29157,6 +29157,34 @@ Xiaohui Yan, Jiafeng Guo, Yanyan Lan, Xueqi Cheng (2013)
 BTM-WWW13.pdf}.")
     (license license:asl2.0)))
 
+(define-public r-delaporte
+  (package
+    (name "r-delaporte")
+    (version "8.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "Delaporte" version))
+       (sha256
+        (base32
+         "0ijhmwclpg5czs2sl2vykcw8qj2pxy26xf6knh62rqq6p6sm43f4"))))
+    (properties `((upstream-name . "Delaporte")))
+    (build-system r-build-system)
+    (native-inputs `(("gfortran" ,gfortran)))
+    (home-page "https://github.com/aadler/Delaporte")
+    (synopsis "Statistical functions for the Delaporte distribution")
+    (description
+     "This package provides probability mass, distribution, quantile,
+random-variate generation, and method-of-moments parameter-estimation
+functions for the Delaporte distribution with parameterization based on
+Vose (2008).  The Delaporte is a discrete probability distribution which can
+be considered the convolution of a negative binomial distribution with a
+Poisson distribution.  Alternatively, it can be considered a counting
+distribution with both Poisson and negative binomial components.  It has been
+studied in actuarial science as a frequency distribution which has more
+variability than the Poisson, but less than the negative binomial.")
+    (license license:bsd-2)))
+
 (define-public r-rjsonio
   (package
     (name "r-rjsonio")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 76c1b2f954..e78f081c37 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -51,6 +51,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages multiprecision)
@@ -1432,8 +1433,36 @@ block ciphers using AES-NI.")
         (base32
          "0g2chc18ji7qxi0d03n2ai140qdcww958v5si6rcjnnhmri1vyfb"))))))
 
+(define-public rust-ahash-0.7
+  (package
+    (name "rust-ahash")
+    (version "0.7.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ahash" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "163vy6jcd7r3jczsv4zyhlc5x9dqsfgg1yrqbm3xhygr1czq7fs3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-const-random" ,rust-const-random-0.1)
+        ("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-version-check" ,rust-version-check-0.9))))
+    (home-page "https://github.com/tkaitchuck/ahash")
+    (synopsis "Non-cryptographic hash function using AES-NI")
+    (description "This package provides a non-cryptographic hash function
+using AES-NI for high performance.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ahash-0.4
   (package
+    (inherit rust-ahash-0.7)
     (name "rust-ahash")
     (version "0.4.4")
     (source
@@ -1444,7 +1473,6 @@ block ciphers using AES-NI.")
        (sha256
         (base32
          "06bxygcis4pfx0axi1ld0lclg8mf4plywdy7fnkyw2hrhcb74rkd"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-const-random" ,rust-const-random-0.1))
@@ -1455,12 +1483,7 @@ block ciphers using AES-NI.")
         ("rust-hex" ,rust-hex-0.3)
         ("rust-no-panic" ,rust-no-panic-0.1)
         ("rust-rand" ,rust-rand-0.6)
-        ("rust-seahash" ,rust-seahash-3))))
-    (home-page "https://github.com/tkaitchuck/ahash")
-    (synopsis "Non-cryptographic hash function using AES-NI")
-    (description "This package provides a non-cryptographic hash function
-using AES-NI for high performance.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-seahash" ,rust-seahash-3))))))
 
 (define-public rust-ahash-0.3
   (package
@@ -1730,6 +1753,32 @@ 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-always-assert-0.1
+  (package
+    (name "rust-always-assert")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "always-assert" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "04ad9wbh70nii1ilcd1mxv85yqx18jf9vsmh3ddps886bmi8ixpv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs (("rust-log" ,rust-log-0.4))))
+    (home-page
+     "https://github.com/matklad/always-assert")
+    (synopsis
+     "Recoverable assertions for long-running robust applications")
+    (description
+     "This package provides a recoverable assertions for long-running robust
+applications.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-android-glue-0.2
   (package
     (name "rust-android-glue")
@@ -1863,6 +1912,30 @@ escape codes.")
 @code{std::error::Error}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-anymap-0.12
+  (package
+    (name "rust-anymap")
+    (version "0.12.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "anymap" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0i23vv38i22aazp5z2hz0a44b943b6w5121kwwnpq1brpm1l559k"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+     "https://github.com/chris-morgan/anymap")
+    (synopsis
+     "Safe and convenient store for one value of each type")
+    (description
+     "This package provides a safe and convenient store for one value of each
+type.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-app-dirs2-2
   (package
     (name "rust-app-dirs2")
@@ -1892,8 +1965,34 @@ escape codes.")
 on every platform.")
     (license license:expat)))
 
+(define-public rust-approx-0.4
+  (package
+    (name "rust-approx")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "approx" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0y52dg58lapl4pp1kqlznfw1blbki0nx6b0aw8kja2yi3gyhaaiz"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-complex" ,rust-num-complex-0.3)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/brendanzab/approx")
+    (synopsis "Approximate floating point equality comparisons and assertions")
+    (description
+     "This crate provides facilities for testing the approximate equality of
+floating-point based types, using either relative difference, or units in the
+last place (ULPs) comparisons.")
+    (license license:asl2.0)))
+
 (define-public rust-approx-0.3
   (package
+    (inherit rust-approx-0.4)
     (name "rust-approx")
     (version "0.3.2")
     (source
@@ -1905,18 +2004,11 @@ on every platform.")
        (sha256
         (base32
          "1hx580xjdxl3766js9b49rnbnmr8gw8c060809l43k9f0xshprph"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-num-complex" ,rust-num-complex-0.2)
-        ("rust-num-traits" ,rust-num-traits-0.2))))
-    (home-page "https://github.com/brendanzab/approx")
-    (synopsis
-     "Approximate floating point equality comparisons and assertions")
-    (description
-     "Approximate floating point equality comparisons and assertions.")
-    (license license:asl2.0)))
+        ("rust-num-traits" ,rust-num-traits-0.2))))))
 
 (define-public rust-approx-0.1
   (package
@@ -2186,10 +2278,10 @@ structures.")
      "Macros to take array references of slices.")
     (license license:bsd-2)))
 
-(define-public rust-arrayvec-0.5
+(define-public rust-arrayvec-0.7
   (package
     (name "rust-arrayvec")
-    (version "0.5.2")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
@@ -2198,7 +2290,7 @@ structures.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "12q6hn01x5435bprwlb7w9m7817dyfq55yrl4psygr78bp32zdi3"))))
+         "1xza6jbs8x51yhh4qnwjw1crm33bhl975r965fpq1hqhpfq5hbss"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2216,6 +2308,29 @@ array (it can be stored on the stack too).  Implements fixed capacity
 ArrayVec and ArrayString.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-arrayvec-0.5
+  (package
+    (inherit rust-arrayvec-0.7)
+    (name "rust-arrayvec")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "arrayvec" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "12q6hn01x5435bprwlb7w9m7817dyfq55yrl4psygr78bp32zdi3"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-bencher" ,rust-bencher-0.1)
+        ("rust-matches" ,rust-matches-0.1)
+        ("rust-serde-test" ,rust-serde-test-1))))))
+
 (define-public rust-arrayvec-0.4
   (package
     (inherit rust-arrayvec-0.5)
@@ -2240,6 +2355,45 @@ ArrayVec and ArrayString.")
         ("rust-matches" ,rust-matches-0.1)
         ("rust-serde-test" ,rust-serde-test-1))))))
 
+(define-public rust-arrow-4
+  (package
+    (name "rust-arrow")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "arrow" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0qw6940mfqz2z6fq83sqkrx3kp4zwpadld0bv0lln3znq3hip0ck"))))
+    (build-system cargo-build-system)
+    (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))))
+    (home-page "https://github.com/apache/arrow-rs")
+    (synopsis "Rust implementation of Apache Arrow")
+    (description
+     "This crate is a Rust implementation of Apache Arrow in-memory columnar
+format.")
+    (license license:asl2.0)))
+
 (define-public rust-askama-escape-0.10
   (package
     (name "rust-askama-escape")
@@ -2475,7 +2629,7 @@ standard library.")
 (define-public rust-assert-cmd-1
   (package
     (name "rust-assert-cmd")
-    (version "1.0.4")
+    (version "1.0.5")
     (source
       (origin
         (method url-fetch)
@@ -2484,7 +2638,7 @@ standard library.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "127mhhjbclg63rfhmy0jc382w5x7y6aig0b9rhnyfkbymk0zwmwg"))))
+          "0j2s0i585yf6h4nzdr88hc3f2j000qrlvpsdvzznfx98vzanp2x8"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -4223,17 +4377,17 @@ that uses Serde for transforming structs into bytes and vice versa!")
        (("rust-serde-bytes" ,rust-serde-bytes-0.10)
         ("rust-serde-derive" ,rust-serde-derive-1))))))
 
-(define-public rust-bindgen-0.57
+(define-public rust-bindgen-0.58
   (package
     (name "rust-bindgen")
-    (version "0.57.0")
+    (version "0.58.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "bindgen" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0g96ypnck6n60p3cz9k3y3jnxi4z7jfv2pha5bxsm8269806aj7x"))))
+        (base32 "13r505nn28ay0byfd96hdg8xwcpa2r20czjy111pl66p22s2718g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -4251,7 +4405,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
         ("rust-quote" ,rust-quote-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-rustc-hash" ,rust-rustc-hash-1)
-        ("rust-shlex" ,rust-shlex-0.1)
+        ("rust-shlex" ,rust-shlex-1)
         ("rust-which" ,rust-which-3))))
     (home-page "https://rust-lang.github.io/rust-bindgen/")
     (synopsis "Generate Rust FFI bindings to C and C++ libraries.")
@@ -4259,6 +4413,37 @@ that uses Serde for transforming structs into bytes and vice versa!")
 bindings to C and C++ libraries.")
     (license license:bsd-3)))
 
+(define-public rust-bindgen-0.57
+  (package
+    (inherit rust-bindgen-0.58)
+    (name "rust-bindgen")
+    (version "0.57.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "bindgen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g96ypnck6n60p3cz9k3y3jnxi4z7jfv2pha5bxsm8269806aj7x"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-cexpr" ,rust-cexpr-0.4)
+        ("rust-clang-sys" ,rust-clang-sys-1)
+        ("rust-clap" ,rust-clap-2)
+        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lazycell" ,rust-lazycell-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-regex" ,rust-regex-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-shlex" ,rust-shlex-0.1)
+        ("rust-which" ,rust-which-3))))))
+
 (define-public rust-bindgen-0.55
   (package
     (inherit rust-bindgen-0.57)
@@ -5834,7 +6019,7 @@ constants from build.rs or a script.")
 (define-public rust-bumpalo-3
   (package
     (name "rust-bumpalo")
-    (version "3.2.1")
+    (version "3.7.0")
     (source
      (origin
        (method url-fetch)
@@ -5843,10 +6028,10 @@ constants from build.rs or a script.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "11silgpsnfv6ir7j2nh7a69564f92vq20k9ha7zcbynpiav9vbhj"))))
+         "0ccn025n0x1gc0ijjlabin2xs7dkx5yfagkskr93yw9c06pyfncw"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:tests? #f      ; cargo_readme_up_to_date test fails
+     `(#:tests? #f                      ;cargo_readme_up_to_date test fails
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
         ("rust-quickcheck" ,rust-quickcheck-0.9))))
@@ -6549,6 +6734,41 @@ spreadsheet file.")
        #:cargo-development-inputs
        (("rust-lazycell" ,rust-lazycell-1))))))
 
+(define-public rust-camino-1
+  (package
+    (name "rust-camino")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "camino" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1a91b5i4n6ikg7p5pgvj3hjac1gnwjmdqsi3k83al2d701nqqr6l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-anyhow" ,rust-anyhow-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-structopt" ,rust-structopt-0.3))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("1.0.38") ,(package-version rust-anyhow-1)))
+             #t)))))
+    (home-page
+     "https://github.com/withoutboats/camino")
+    (synopsis "UTF-8 paths")
+    (description "This package provides a UTF-8 paths.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-capnp-0.13
   (package
     (name "rust-capnp")
@@ -6843,8 +7063,40 @@ capabilities")
 the library crate of Cargo.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cargo-metadata-0.13
+  (package
+    (name "rust-cargo-metadata")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cargo-metadata" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11cnz97byqswmhpbbig9hss5kf8bmxq9nd5xjg3l2rsnnv040i32"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-camino" ,rust-camino-1)
+        ("rust-cargo-platform" ,rust-cargo-platform-0.1)
+        ("rust-derive-builder" ,rust-derive-builder-0.9)
+        ("rust-semver" ,rust-semver-0.11)
+        ("rust-semver-parser" ,rust-semver-parser-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/oli-obk/cargo_metadata")
+    (synopsis "Structured access to the output of `cargo metadata`")
+    (description
+     "This package provides structured access to the output of @code{cargo
+metadata}.")
+    (license license:expat)))
+
 (define-public rust-cargo-metadata-0.9
   (package
+    (inherit rust-cargo-metadata-0.13)
     (name "rust-cargo-metadata")
     (version "0.9.1")
     (source
@@ -6856,7 +7108,6 @@ the library crate of Cargo.")
         (sha256
          (base32
           "00pjms89lghvizh4d55lz80hvrih9r55xv9m5wd9vcsgc163gqs6"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f
        #:cargo-inputs
@@ -6867,13 +7118,7 @@ the library crate of Cargo.")
        #:cargo-development-inputs
        (("rust-clap" ,rust-clap-2)
         ("rust-docopt" ,rust-docopt-1)
-        ("rust-structopt" ,rust-structopt-0.2))))
-    (home-page "https://github.com/oli-obk/cargo_metadata")
-    (synopsis "Structured access to the output of `cargo metadata`")
-    (description
-     "This package provides structured access to the output of @code{cargo
-metadata}.")
-    (license license:expat)))
+        ("rust-structopt" ,rust-structopt-0.2))))))
 
 (define-public rust-cargo-metadata-0.6
   (package
@@ -7137,6 +7382,26 @@ 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-cfg-aliases-0.1
+  (package
+    (name "rust-cfg-aliases")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cfg_aliases" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "17p821nc6jm830vzl2lmwz60g3a30hcm33nk6l257i1rjdqw85px"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/katharostech/cfg_aliases")
+    (synopsis "Utility to help you with long winded @code{#[cfg()]} checks")
+    (description
+     "CFG Aliases is a tiny utility to help save you a lot of effort with long
+winded @code{#[cfg()]} checks.")
+    (license license:expat)))
+
 (define-public rust-cfg-if-1
   (package
     (name "rust-cfg-if")
@@ -7180,6 +7445,126 @@ chain, the first matching branch is the item that gets emitted.")
        (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
         ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1))))))
 
+(define-public rust-chalk-derive-0.68
+  (package
+    (name "rust-chalk-derive")
+    (version "0.68.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chalk-derive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ss18zx2ddp50mvbwffs5jmmcs7a0pkiq1g62xa7z1bacvkm45ga"))))
+    (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 "https://github.com/rust-lang/chalk")
+    (synopsis
+     "Helper crate for use by chalk crates for `derive` macros")
+    (description
+     "This package provides a helper crate for use by chalk crates for `derive`
+macros.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-chalk-ir-0.68
+  (package
+    (name "rust-chalk-ir")
+    (version "0.68.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chalk-ir" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0riyv4fjmxys8gsyrikn9in34cjcgwgj55qyaj9w9fld8kqxbmqr"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-chalk-derive" ,rust-chalk-derive-0.68)
+        ("rust-lazy-static" ,rust-lazy-static-1))))
+    (home-page "https://github.com/rust-lang/chalk")
+    (synopsis
+     "Chalk's internal representation of types, goals, and clauses")
+    (description
+     "This package provides Chalk's internal representation of types, goals, and
+clauses.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-chalk-recursive-0.68
+  (package
+    (name "rust-chalk-recursive")
+    (version "0.68.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chalk-recursive" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "11ak4zl5lgyh88scjm91fc9wjcyxb4s1kkcanhhi0ci755nl1pz0"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chalk-derive" ,rust-chalk-derive-0.68)
+        ("rust-chalk-ir" ,rust-chalk-ir-0.68)
+        ("rust-chalk-solve" ,rust-chalk-solve-0.68)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-tracing" ,rust-tracing-0.1))))
+    (home-page "https://github.com/rust-lang/chalk")
+    (synopsis
+     "Recursive solver for the Chalk project")
+    (description
+     "Recursive solver for the Chalk project")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-chalk-solve-0.68
+  (package
+    (name "rust-chalk-solve")
+    (version "0.68.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "chalk-solve" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0dvf1rm1z7miwlsmynxfys0189r6mjq863p1wp4v3f2sm9fwvgqc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chalk-derive" ,rust-chalk-derive-0.68)
+        ("rust-chalk-ir" ,rust-chalk-ir-0.68)
+        ("rust-ena" ,rust-ena-0.14)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-petgraph" ,rust-petgraph-0.5)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-subscriber"
+         ,rust-tracing-subscriber-0.2)
+        ("rust-tracing-tree" ,rust-tracing-tree-0.1))))
+    (home-page "https://github.com/rust-lang/chalk")
+    (synopsis
+     "Combines the chalk-engine with chalk-ir")
+    (description
+     "This package provides a combines the chalk-engine with chalk-ir.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-chrono-0.4
   (package
     (name "rust-chrono")
@@ -7289,6 +7674,56 @@ coding.")
      "This package provides current CI environment information.")
     (license license:asl2.0)))
 
+(define-public rust-clang-ast-0.1
+  (package
+    (name "rust-clang-ast")
+    (version "0.1.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "clang-ast" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1sfqyxszas78s78nga88fl0i5qlr87qsj22vlxarhvx96q86impf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t     ; Uses unstable features.
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-clang-ast-test-suite" ,rust-clang-ast-test-suite-0.0.0)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/dtolnay/clang-ast")
+    (synopsis "Data structures for processing Clang's ast format")
+    (description "This package contains data structures for processing Clang's
+@code{-ast-dump=json} format.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-clang-ast-test-suite-0.0.0
+  (package
+    (name "rust-clang-ast-test-suite")
+    (version "0.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "clang-ast-test-suite" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "04c6p67w2f3s74pl83swj93l6p9g88vgki0rp2vxbb0bzm1hqy5h"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t))   ; Not intended to be built independently.
+    (home-page "https://github.com/dtolnay/clang-ast")
+    (synopsis "Test suite of the clang-ast crate")
+    (description
+     "This package contains the test suite of the @code{clang-ast} crate.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-clang-sys-1
   (package
     (name "rust-clang-sys")
@@ -7556,6 +7991,32 @@ Command Line Argument Parser.")
         ("rust-version-sync" ,rust-version-sync-0.8))))
     (license license:expat)))
 
+(define-public rust-clearscreen-1
+  (package
+    (name "rust-clearscreen")
+    (version "1.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "clearscreen" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "083ycj7qhwlq8azy0rl9lpbr69k87hn622wc8mi96w293rsq1zwy"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-nix" ,rust-nix-0.20)
+        ("rust-terminfo" ,rust-terminfo-0.7)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-which" ,rust-which-4)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/watchexec/clearscreen")
+    (synopsis "Cross-platform terminal screen clearing")
+    (description
+     "This crate provides cross-platform terminal screen clearing.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-clicolors-control-1
   (package
     (name "rust-clicolors-control")
@@ -7585,14 +8046,14 @@ colorization.")
 (define-public rust-clipboard-win-4
   (package
     (name "rust-clipboard-win")
-    (version "4.0.3")
+    (version "4.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "clipboard-win" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0bd9gw35zjdh50n2gy6qq2gwpnqfafzwkliqkvm9z046fawwc8si"))))
+        (base32 "1a1cpp4yyizz41bkij5x85p220xxrlja6l6wwj9wkvwj364a2kjf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -8190,6 +8651,31 @@ combinator.")
 and 1.0.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-comfy-table-1
+  (package
+    (name "rust-comfy-table")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "comfy-table" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1y6lc8h2lyyrrrdc36fz7brwyjz5l9w4nld4qx9mlacfibm8i92j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-crossterm" ,rust-crossterm-0.19)
+        ("rust-strum" ,rust-strum-0.20)
+        ("rust-strum-macros" ,rust-strum-macros-0.20))))
+    (home-page "https://github.com/nukesor/comfy-table")
+    (synopsis "Library for building tables with automatic content wrapping")
+    (description
+     "Comfy-tables is an utility for building tables with automatic content
+wrapping.")
+    (license license:expat)))
+
 (define-public rust-commoncrypto-sys-0.2
   (package
     (name "rust-commoncrypto-sys")
@@ -8651,15 +9137,14 @@ const functions with conditional compilations.")
 (define-public rust-const-random-0.1
   (package
     (name "rust-const-random")
-    (version "0.1.8")
+    (version "0.1.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "const-random" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0sp1ang5sh27fq5b7g9fdwpq4d5s17ymj7khfzax4bbvffngj6ig"))))
+        (base32 "1i3pmhmmcdw3rr1pv1p9yhm4danm5r156cpy7w30pa0s05fxk47m"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -8674,20 +9159,21 @@ generation.")
 (define-public rust-const-random-macro-0.1
   (package
     (name "rust-const-random-macro")
-    (version "0.1.8")
+    (version "0.1.13")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "const-random-macro" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0ykc9riajn6bijvw46092gp18vrbky3y1cjpgjgx57a5xc3cdr15"))))
+        (base32 "0h7vvskw1pw5x44sbl74gsi8ydvrj5kaixpjqzxvz8h0s0knwpv1"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-getrandom" ,rust-getrandom-0.1)
-        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5))))
+       (("rust-getrandom" ,rust-getrandom-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-proc-macro-hack" ,rust-proc-macro-hack-0.5)
+        ("rust-tiny-keccak" ,rust-tiny-keccak-2))))
     (home-page "https://github.com/tkaitchuck/constrandom")
     (synopsis "Procedural macro used by const-random")
     (description "This package provides the procedural macro used by
@@ -9234,6 +9720,52 @@ intrinsics.")
         ("rust-foreign-types" ,rust-foreign-types-0.3)
         ("rust-libc" ,rust-libc-0.2))))))
 
+(define-public rust-cov-mark-1
+  (package
+    (name "rust-cov-mark")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cov-mark" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1wv75ylrai556m388a40d50fxiyacmvm6qqz6va6qf1q04z3vylz"))))
+    (arguments `(#:skip-build? #t))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/matklad/cov-mark")
+    (synopsis "Manual coverage marks")
+    (description "This package provides a Manual coverage marks.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-countme-2
+  (package
+    (name "rust-countme")
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "countme" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0n6bzg2g6gsmgabyzbcfkyb9y9mzxsvavng85d04wkdsvhmq52rj"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-dashmap" ,rust-dashmap-4)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-rustc-hash" ,rust-rustc-hash-1))))
+    (home-page "https://github.com/matklad/countme")
+    (synopsis
+     "Counts the number of live instances of types")
+    (description
+     "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.3
   (package
     (name "rust-cpp-demangle")
@@ -10171,6 +10703,26 @@ abstractions around common WinAPI calls.")
     (arguments
      `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-crunchy-0.2
+  (package
+    (name "rust-crunchy")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "crunchy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1dx9mypwd5mpfbbajm78xcrg5lirqk7934ik980mmaffg3hdm0bs"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://docs.rs/crate/crunchy/0.2.2/source/")
+    (synopsis "Deterministically unroll constant loops")
+    (description
+     "The Crunchy unroller deterministically unrolls constant loops, for
+number ``crunching``.")
+    (license license:expat)))
+
 (define-public rust-roxmltree-0.14
   (package
     (name "rust-roxmltree")
@@ -10630,6 +11182,29 @@ reallocations.")
      "Bare bones CSV parsing with no_std support.")
     (license (list license:unlicense license:expat))))
 
+(define-public rust-cstr-core-0.2
+  (package
+    (name "rust-cstr-core")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "cstr_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1fymp34mv7bix8m35pw3qs30b7879wmaym03ihfbzdl84plwa1r8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cty" ,rust-cty-0.2)
+        ("rust-memchr" ,rust-memchr-2))))
+    (home-page "https://github.com/Amanieu/cstr_core")
+    (synopsis "Implementation of CStr and CString for no_std environments")
+    (description
+     "This crates implements CStr and CString for no_std environments.")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-ct-logs-0.8
   (package
     (name "rust-ct-logs")
@@ -10930,8 +11505,42 @@ ristretto255 and Curve25519")
 attributes.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-cxx-1
+  (package
+    (name "rust-cxx")
+    (version "1.0.49")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0xj29zzd45bkk797902h22kppzmrzm7v9a2wijfiqr964vhrldk5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:tests? #f  ; Cannot compile cxx-test-suite.
+       #:rust ,rust-1.48    ; or newer
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-cxxbridge-flags" ,rust-cxxbridge-flags-1)
+        ("rust-cxxbridge-macro" ,rust-cxxbridge-macro-1)
+        ("rust-link-cplusplus" ,rust-link-cplusplus-1))
+       #:cargo-development-inputs
+       (("rust-cxx-build" ,rust-cxx-build-1)
+        ("rust-cxx-gen" ,rust-cxx-gen-0.7)
+        ("rust-cxx-test-suite" ,rust-cxx-test-suite-0.0.0)
+        ("rust-rustversion" ,rust-rustversion-1)
+        ("rust-trybuild" ,rust-trybuild-1))))
+    (home-page "https://cxx.rs")
+    (synopsis "Safe interop between Rust and C++")
+    (description "This package provides a safe interop between Rust and C++.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cxx-0.5
   (package
+    (inherit rust-cxx-1)
     (name "rust-cxx")
     (version "0.5.10")
     (source
@@ -10943,7 +11552,6 @@ attributes.")
         (sha256
          (base32
           "1alj19zf8jm5j8c8hynqb36f0vyjqs8yhwmxpcapfmb5lav4ipgb"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Cannot compile cxx-test-suite.
        #:cargo-inputs
@@ -10956,14 +11564,45 @@ attributes.")
         ("rust-cxx-gen" ,rust-cxx-gen-0.6)
         ("rust-cxx-test-suite" ,rust-cxx-test-suite-0.0.0)
         ("rust-rustversion" ,rust-rustversion-1)
-        ("rust-trybuild" ,rust-trybuild-1))))
+        ("rust-trybuild" ,rust-trybuild-1))))))
+
+(define-public rust-cxx-build-1
+  (package
+    (name "rust-cxx-build")
+    (version "1.0.49")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx-build" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0shmkgv3cnh06ws1p555znj1hh23phynaz73rgnz95gradsdwnwg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:rust ,rust-1.48    ; or newer
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-scratch" ,rust-scratch-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-cxx-gen" ,rust-cxx-gen-0.7)
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))
     (home-page "https://cxx.rs")
-    (synopsis "Safe interop between Rust and C++")
-    (description "This package provides a safe interop between Rust and C++.")
+    (synopsis "C++ code generator")
+    (description
+     "This package provides a C++ code generator for integrating the @code{cxx}
+crate into a Cargo build.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-cxx-build-0.5
   (package
+    (inherit rust-cxx-build-1)
     (name "rust-cxx-build")
     (version "0.5.10")
     (source
@@ -10975,7 +11614,6 @@ attributes.")
         (sha256
          (base32
           "01109arjlj8wdq2rcyy3s76a5aidkn7zvhhhvhvkg1cxgqza9p22"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cc" ,rust-cc-1)
@@ -10987,16 +11625,40 @@ attributes.")
         ("rust-syn" ,rust-syn-1))
        #:cargo-development-inputs
        (("rust-cxx-gen" ,rust-cxx-gen-0.6)
-        ("rust-pkg-config" ,rust-pkg-config-0.3))))
+        ("rust-pkg-config" ,rust-pkg-config-0.3))))))
+
+(define-public rust-cxx-gen-0.7
+  (package
+    (name "rust-cxx-gen")
+    (version "0.7.49")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxx-gen" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "08v366jxd2vc8jc2cbvrga0866pwfcaq6hl8yylfx0vhs2n53j53"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:rust ,rust-1.48    ; or newer
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
     (home-page "https://cxx.rs")
     (synopsis "C++ code generator")
     (description
      "This package provides a C++ code generator for integrating the @code{cxx}
-crate into a Cargo build.")
+crate into higher level tools.")
     (license (list license:expat license:asl2.0))))
 
 (define-public rust-cxx-gen-0.6
   (package
+    (inherit rust-cxx-gen-0.7)
     (name "rust-cxx-gen")
     (version "0.6.7")
     (source
@@ -11008,20 +11670,13 @@ crate into a Cargo build.")
         (sha256
          (base32
           "0avkca16wjy0paplq1ycaf04bj62agfj0awyhyzxyfpdn9rm45j2"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-cc" ,rust-cc-1)
         ("rust-codespan-reporting" ,rust-codespan-reporting-0.9)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://cxx.rs")
-    (synopsis "C++ code generator")
-    (description
-     "This package provides a C++ code generator for integrating the @code{cxx}
-crate into higher level tools.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-cxx-test-suite-0.0.0
   (package
@@ -11043,10 +11698,10 @@ crate into higher level tools.")
     (description "This package provides the test suite of the cxx crate.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-cxxbridge-flags-0.5
+(define-public rust-cxxbridge-flags-1
   (package
     (name "rust-cxxbridge-flags")
-    (version "0.5.10")
+    (version "1.0.49")
     (source
       (origin
         (method url-fetch)
@@ -11055,7 +11710,7 @@ crate into higher level tools.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0jfwsm85s5kalgqbqlg1kq79zcb5zwk375h0qw7ycz5i6v3c8j0k"))))
+          "18cv8a8sgyiwfqspdyfq18jizf0rlhg90ibdl0zp8jhcv498s6gr"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/cxx")
     (synopsis "Compiler configuration of the `cxx` crate")
@@ -11063,33 +11718,76 @@ crate into higher level tools.")
 crate (implementation detail).")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-cxxbridge-macro-0.5
+(define-public rust-cxxbridge-flags-0.5
   (package
-    (name "rust-cxxbridge-macro")
+    (inherit rust-cxxbridge-flags-1)
+    (name "rust-cxxbridge-flags")
     (version "0.5.10")
     (source
       (origin
         (method url-fetch)
+        (uri (crate-uri "cxxbridge-flags" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0jfwsm85s5kalgqbqlg1kq79zcb5zwk375h0qw7ycz5i6v3c8j0k"))))))
+
+(define-public rust-cxxbridge-macro-1
+  (package
+    (name "rust-cxxbridge-macro")
+    (version "1.0.49")
+    (source
+      (origin
+        (method url-fetch)
         (uri (crate-uri "cxxbridge-macro" version))
         (file-name
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "05mhvchmcb8dpgcqkl5vyxycywp2x42vw1qh2hyxxyi576nmmxsr"))))
+          "0gkwvihw74dh8p3fz3552wnxanrpwmwfy38ylz2z8knjq0y8y4v3"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-proc-macro2" ,rust-proc-macro2-1)
+     `(#:rust ,rust-1.48    ; or newer
+       #:cargo-inputs
+       (("rust-clang-ast" ,rust-clang-ast-0.1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-memmap" ,rust-memmap-0.7)
+        ("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))
        #:cargo-development-inputs
-       (("rust-cxx" ,rust-cxx-0.5))))
+       (("rust-cxx" ,rust-cxx-1))))
     (home-page "https://cxx.rs")
     (synopsis "Implementation detail of the `cxx` crate")
     (description
      "This package provides an implementation detail of the @code{cxx} crate.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-cxxbridge-macro-0.5
+  (package
+    (inherit rust-cxxbridge-macro-1)
+    (name "rust-cxxbridge-macro")
+    (version "0.5.10")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "cxxbridge-macro" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "05mhvchmcb8dpgcqkl5vyxycywp2x42vw1qh2hyxxyi576nmmxsr"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))
+       #:cargo-development-inputs
+       (("rust-cxx" ,rust-cxx-0.5))))))
+
 (define-public rust-daemonize-0.4
   (package
     (name "rust-daemonize")
@@ -11114,8 +11812,34 @@ crate (implementation detail).")
     (description "Daemonize is a Rust library for writing system deaemons.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-darling-0.12
+  (package
+    (name "rust-darling")
+    (version "0.12.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "darling" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g4bkxpwl6i5jav5qqzny39yd5a1fdlh5l0mj020njza6ksl6b2z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-darling-core" ,rust-darling-core-0.12)
+        ("rust-darling-macro" ,rust-darling-macro-0.12))))
+    (home-page "https://github.com/TedDriggs/darling")
+    (synopsis "Proc-macro library for reading attributes in custom derives")
+    (description
+     "This package provides a proc-macro library for reading attributes
+into structs when implementing custom derives.")
+    (license license:expat)))
+
 (define-public rust-darling-0.10
   (package
+    (inherit rust-darling-0.12)
     (name "rust-darling")
     (version "0.10.2")
     (source
@@ -11127,7 +11851,6 @@ crate (implementation detail).")
        (sha256
         (base32
          "0n7qsp6854wm3y1q1lvylhv15zvc87ibbac1nyfmcdbyv1snww0d"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-darling-core" ,rust-darling-core-0.10)
@@ -11135,16 +11858,39 @@ crate (implementation detail).")
        #:cargo-development-inputs
        (("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-darling-core-0.12
+  (package
+    (name "rust-darling-core")
+    (version "0.12.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "darling_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dpscl87s75h6yhrmzdsapx86lc4y16m554xg4hiq2l3hrdlb4cf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-fnv" ,rust-fnv-1)
+        ("rust-ident-case" ,rust-ident-case-1)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-strsim" ,rust-strsim-0.10)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/TedDriggs/darling")
-    (synopsis "Proc-macro library for reading attributes in custom derives")
+    (synopsis "Helper crate for @code{rust-darling}")
     (description
-     "This package provides a proc-macro library for reading attributes
-into structs when implementing custom derives.")
+     "Helper crate for @code{rust-darling}, a proc-macro library for
+reading attributes into structs when implementing custom derives.")
     (license license:expat)))
 
 (define-public rust-darling-core-0.10
   (package
+    (inherit rust-darling-core-0.12)
     (name "rust-darling-core")
     (version "0.10.2")
     (source
@@ -11156,7 +11902,6 @@ into structs when implementing custom derives.")
        (sha256
         (base32
          "16sija1jv0l754x4aa6b6fy01d1kf8m0r4id3flqipm45np61jgh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-fnv" ,rust-fnv-1)
@@ -11164,16 +11909,36 @@ into structs when implementing custom derives.")
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
         ("rust-strsim" ,rust-strsim-0.9)
+        ("rust-syn" ,rust-syn-1))))))
+
+(define-public rust-darling-macro-0.12
+  (package
+    (name "rust-darling-macro")
+    (version "0.12.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "darling_macro" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nn9mxl7gs827rx5s6lbjvvghipxjdg2qpdjyxk7yym3vvqard99"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-darling-core" ,rust-darling-core-0.12)
+        ("rust-quote" ,rust-quote-1)
         ("rust-syn" ,rust-syn-1))))
     (home-page "https://github.com/TedDriggs/darling")
     (synopsis "Helper crate for @code{rust-darling}")
     (description
-     "Helper crate for @code{rust-darling}, a proc-macro library for
+     "Internal support for @code{rust-darling}, a proc-macro library for
 reading attributes into structs when implementing custom derives.")
     (license license:expat)))
 
 (define-public rust-darling-macro-0.10
   (package
+    (inherit rust-darling-macro-0.12)
     (name "rust-darling-macro")
     (version "0.10.2")
     (source
@@ -11185,18 +11950,11 @@ reading attributes into structs when implementing custom derives.")
        (sha256
         (base32
          "0wlv31cxkrjijz5gv13hvk55c9lmd781aj12c8n84sa9mksa5dfr"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-darling-core" ,rust-darling-core-0.10)
         ("rust-quote" ,rust-quote-1)
-        ("rust-syn" ,rust-syn-1))))
-    (home-page "https://github.com/TedDriggs/darling")
-    (synopsis "Helper crate for @code{rust-darling}")
-    (description
-     "Internal support for @code{rust-darling}, a proc-macro library for
-reading attributes into structs when implementing custom derives.")
-    (license license:expat)))
+        ("rust-syn" ,rust-syn-1))))))
 
 (define-public rust-dashmap-4
   (package
@@ -11661,8 +12419,31 @@ Instead, enable the @code{derive} feature of the @code{arbitrary} crate.")
        (sha256
         (base32 "1rp0z4k0j5ip0bx6dssg97l4q6bakhf6lm5h1lpr3p3kwjsi585i"))))))
 
+(define-public rust-derive-builder-0.10
+  (package
+    (name "rust-derive-builder")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive_builder" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0c2v6vi0lih3fwwgwx92pspcmkrjz8wxfqwhmr01060ipvg04cni"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-derive-builder-macro" ,rust-derive-builder-macro-0.10))))
+    (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.9
   (package
+    (inherit rust-derive-builder-0.10)
     (name "rust-derive-builder")
     (version "0.9.0")
     (source
@@ -11674,7 +12455,6 @@ Instead, enable the @code{derive} feature of the @code{arbitrary} crate.")
         (sha256
           (base32
             "1h4f8vnggmpyw27fznl3cpyjrzz1nw5xrxx6ca3zcb3z54hqcrd2"))))
-    (build-system cargo-build-system)
     (arguments
       `(#:cargo-inputs
         (("rust-compiletest-rs" ,rust-compiletest-rs-0.3)
@@ -11687,12 +12467,7 @@ Instead, enable the @code{derive} feature of the @code{arbitrary} crate.")
          ("rust-skeptic" ,rust-skeptic-0.13)
          ("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 "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-pretty-assertions" ,rust-pretty-assertions-0.6))))))
 
 (define-public rust-derive-builder-0.5
   (package
@@ -11721,8 +12496,34 @@ for arbitrary structs.")
         ("rust-pretty-assertions" ,rust-pretty-assertions-0.2)
         ("rust-skeptic" ,rust-skeptic-0.9))))))
 
+(define-public rust-derive-builder-core-0.10
+  (package
+    (name "rust-derive-builder-core")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive_builder_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r9ngcrfcvqv5l5p86bzg9v863bjf5nlmippin1fv1v1iy2idrk6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-darling" ,rust-darling-0.12)
+        ("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))))
+
 (define-public rust-derive-builder-core-0.9
   (package
+    (inherit rust-derive-builder-core-0.10)
     (name "rust-derive-builder-core")
     (version "0.9.0")
     (source
@@ -11734,7 +12535,6 @@ for arbitrary structs.")
        (sha256
         (base32
          "1vwb8nwls4lhd2yiyj87kmwws4mmfqfrjcr0pk09b11c6wzfm497"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-darling" ,rust-darling-0.10)
@@ -11743,12 +12543,7 @@ for arbitrary structs.")
         ("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))))
+       (("rust-pretty-assertions" ,rust-pretty-assertions-0.6))))))
 
 (define-public rust-derive-builder-core-0.2
   (package
@@ -11770,6 +12565,32 @@ for arbitrary structs.")
        #:cargo-development-inputs
        (("rust-pretty-assertions" ,rust-pretty-assertions-0.2))))))
 
+(define-public rust-derive-builder-macro-0.10
+  (package
+    (name "rust-derive-builder-macro")
+    (version "0.10.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "derive_builder_macro" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wwdm4cgd4vlvabj5xsjjr4vvkqhnd3fi9wp3v5mlb09jp74maaq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-derive-builder-core" ,rust-derive-builder-core-0.10)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/colin-kiegel/rust-derive-builder")
+    (synopsis
+     "Rust macro to automatically implement the builder pattern for arbitrary structs")
+    (description
+     "This crate provides a Rust macro to automatically implement the builder
+pattern for arbitrary structs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-derive-error-chain-0.10
   (package
     (name "rust-derive-error-chain")
@@ -12596,7 +13417,7 @@ Central Dispatch.")
 (define-public rust-dissimilar-1
   (package
     (name "rust-dissimilar")
-    (version "1.0.1")
+    (version "1.0.2")
     (source
       (origin
         (method url-fetch)
@@ -12605,7 +13426,7 @@ Central Dispatch.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "154ba92ifmh3js1k0hbmxz7pv95n8wmahlyvhdbnxggbs8f1dpir"))))
+          "1fwa892hcf7y36b8w41p14b3ld3df389y9jpglkbz55vp7s2jjzw"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/dtolnay/dissimilar")
     (synopsis "Diff library with semantic cleanup")
@@ -12813,6 +13634,29 @@ O(1)-in-practice, if not in theory, but obviously not as fast as a
 non-persistent vector.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-dot-0.1
+  (package
+    (name "rust-dot")
+    (version "0.1.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "dot" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "01jr7px6anh3yasz8cbbr9ij989gnwb3qdk4852mzzqw996nqjx7"))))
+    (build-system cargo-build-system)
+    (home-page
+     "https://github.com/GrahamDennis/dot-rust")
+    (synopsis
+     "Library for generating Graphviz DOT language files for graphs")
+    (description
+     "This package provides a library for generating Graphviz DOT language files
+for graphs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dotenv-0.15
   (package
     (name "rust-dotenv")
@@ -12880,6 +13724,29 @@ Rust.")
     (description "Graphics state blocks for gfx-rs.")
     (license license:asl2.0)))
 
+(define-public rust-drop-bomb-0.1
+  (package
+    (name "rust-drop-bomb")
+    (version "0.1.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "drop-bomb" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1qc59a53ngwxpnbvl8xidp2cmwrl671dhbzw7zijmjjaq0hqxnlv"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+     "https://github.com/matklad/drop_bomb")
+    (synopsis
+     "Runtime guard for implementing linear types")
+    (description
+     "This package provides a runtime guard for implementing linear types.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-dtoa-0.4
   (package
     (name "rust-dtoa")
@@ -13278,7 +14145,7 @@ signing, and verification in pure Rust.")
 (define-public rust-embed-resource-1
   (package
     (name "rust-embed-resource")
-    (version "1.3.3")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
@@ -13286,12 +14153,12 @@ signing, and verification in pure Rust.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0pbif8kl6xcvfnp8gibqsw0w14l28vfkff9k6byw506s0d20nsqz"))))
+        (base32 "0w6l2zh82sx8rqjpr2a0y56m6hjb6zrqbp3l8b984a96y7mnvsnh"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-vswhom" ,rust-vswhom-0.1)
-        ("rust-winreg" ,rust-winreg-0.6))))
+        ("rust-winreg" ,rust-winreg-0.8))))
     (home-page "https://github.com/nabijaczleweli/rust-embed-resource")
     (synopsis
      "Cargo library to handle compilation and inclusion of Windows resources")
@@ -14086,14 +14953,14 @@ deserialized from environment variables.")
 (define-public rust-error-code-2
   (package
     (name "rust-error-code")
-    (version "2.0.2")
+    (version "2.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "error-code" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0lmblmk2kr0cy6x3d1y2ywxg3jg6nicf8fahd3l5wb1ddzv9975l"))))
+        (base32 "1zxi3pfrmj7hmv2bv94ax8vpylsfs49vwwp48c04wrr5mikma4dm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -14237,6 +15104,34 @@ blocking data structures.")
     (description "XML parser library written in C")
     (license license:expat)))
 
+(define-public rust-expect-test-1
+  (package
+    (name "rust-expect-test")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "expect-test" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0cq651b3dcrw94bl03krxnvllr8kqx6vskqal0n8ydrsmdx4f013"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-dissimilar" ,rust-dissimilar-1)
+        ("rust-once-cell" ,rust-once-cell-1))))
+    (home-page
+     "https://github.com/rust-analyzer/expect-test")
+    (synopsis
+     "Minimalistic snapshot testing library")
+    (description
+     "This package provides a minimalistic snapshot testing library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-expectest-0.9
   (package
     (name "rust-expectest")
@@ -14483,6 +15378,27 @@ implement features such as look-around and backtracking, which are not
 supported in purely NFA-based implementations.")
     (license license:expat)))
 
+(define-public rust-fast-float-0.2
+  (package
+    (name "rust-fast-float")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fast-float" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0g7kfll3xyh99kc7r352lhljnwvgayxxa6saifb6725inikmyxlm"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/aldanor/fast-float-rust")
+    (synopsis "Fast floating-point number parser.")
+    (description
+     "This crate provides a fast decimal number parser from strings into
+floats.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-fastrand-1
   (package
     (name "rust-fastrand")
@@ -14506,6 +15422,30 @@ supported in purely NFA-based implementations.")
      "This package provides a simple and fast random number generator.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-fd-lock-2
+  (package
+    (name "rust-fd-lock")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fd-lock" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01kzrikg3a60lxmr0k8bbm4nggh6693f1pf530ip136qzwpg0400"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/yoshuawuyts/fd-lock")
+    (synopsis "Advisory lock on a file")
+    (description
+     "Fd-lock provides an advisory lock on a file using a file descriptor to
+it.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-femme-2
   (package
     (name "rust-femme")
@@ -14823,10 +15763,34 @@ cross platform API.")
      "A procedural macro to insert @code{flame::start_guard(_)} calls.")
     (license license:asl2.0)))
 
+(define-public rust-flatbuffers-0.8
+  (package
+    (name "rust-flatbuffers")
+    (version "0.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "flatbuffers" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0sc0ngk9xim7xgqydx36xz4a1sqxq2fv7fmqn6z76vbx5cs05if3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://google.github.io/flatbuffers/")
+    (synopsis "FlatBuffers Rust serialization library")
+    (description
+     "This crates provides FlatBuffers runtime serialization library.")
+    (license license:asl2.0)))
+
 (define-public rust-flate2-1
   (package
     (name "rust-flate2")
-    (version "1.0.14")
+    (version "1.0.20")
     (source
      (origin
        (method url-fetch)
@@ -14835,20 +15799,19 @@ cross platform API.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0hlb2zmn5ixrgr0i1qvrd3a7j4fpp002d0kddn2hm7hjj49z9zrc"))))
+         "1q5b4r2rclhjbcxlbv5231avp1y6y8bynrf5v3brdzhhvr9yqfnd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-cfg-if" ,rust-cfg-if-0.1)
-        ("rust-cloudflare-zlib-sys"
-         ,rust-cloudflare-zlib-sys-0.2)
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-cloudflare-zlib-sys" ,rust-cloudflare-zlib-sys-0.2)
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-futures" ,rust-futures-0.1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-libz-sys" ,rust-libz-sys-1)
         ("rust-miniz-sys" ,rust-miniz-sys-0.1)
-        ("rust-miniz-oxide" ,rust-miniz-oxide-0.3)
+        ("rust-miniz-oxide" ,rust-miniz-oxide-0.4)
         ("rust-tokio-io" ,rust-tokio-io-0.1))
        #:cargo-development-inputs
        (("rust-futures" ,rust-futures-0.1)
@@ -15505,8 +16468,38 @@ process and much more.")
      "This package provides cross-platform file locks and file duplication.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-fsevent-2
+  (package
+    (name "rust-fsevent")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fsevent" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0qsylfbhgha319q6a8yvkznbm3hf47gy3y8nq82qijcm5hh4gwwp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-fsevent-sys" ,rust-fsevent-sys-3))
+       #:cargo-development-inputs
+       (("rust-tempfile" ,rust-tempfile-3)
+        ("rust-time" ,rust-time-0.2))))
+    (home-page "https://github.com/octplane/fsevent-rust")
+    (synopsis "Rust bindings to the fsevent-sys macOS API")
+    (description
+     "This package provides Rust bindings to the @code{fsevent-sys} macOS API
+for file changes notifications")
+    (license license:expat)))
+
 (define-public rust-fsevent-0.4
   (package
+    (inherit rust-fsevent-2)
     (name "rust-fsevent")
     (version "0.4.0")
     (source
@@ -15526,16 +16519,35 @@ process and much more.")
          ("rust-fsevent-sys" ,rust-fsevent-sys-2))
         #:cargo-development-inputs
         (("rust-tempdir" ,rust-tempdir-0.3)
-         ("rust-time" ,rust-time-0.1))))
-    (home-page "https://github.com/octplane/fsevent-rust")
-    (synopsis "Rust bindings to the fsevent-sys macOS API")
-    (description
-     "This package provides Rust bindings to the @code{fsevent-sys} macOS API
-for file changes notifications")
+         ("rust-time" ,rust-time-0.1))))))
+
+(define-public rust-fsevent-sys-3
+  (package
+    (name "rust-fsevent-sys")
+    (version "3.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "fsevent-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1mav57d1zcp4x17h0wprcr188d8yvxfz1c0f1z0p31q52xl5wvya"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys")
+    (synopsis "Rust bindings to the fsevent macOS API")
+    (description "This package provides Rust bindings to the @code{fsevent}
+macOS API for file changes notifications")
     (license license:expat)))
 
 (define-public rust-fsevent-sys-2
   (package
+    (inherit rust-fsevent-sys-3)
     (name "rust-fsevent-sys")
     (version "2.0.1")
     (source
@@ -15547,15 +16559,9 @@ for file changes notifications")
         (sha256
          (base32
           "18246vxk7rqn52m0sfrhivxq802i34p2wqqx5zsa0pamjj5086zl"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t     ; only available on macOS
-       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
-    (home-page "https://github.com/octplane/fsevent-rust/tree/master/fsevent-sys")
-    (synopsis "Rust bindings to the fsevent macOS API")
-    (description "This package provides Rust bindings to the @code{fsevent}
-macOS API for file changes notifications")
-    (license license:expat)))
+       #:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
 
 (define-public rust-fst-0.4
   (package
@@ -16923,10 +17929,10 @@ retrieving random data from system source.")
 getters and setters on fields.")
     (license license:expat)))
 
-(define-public rust-gettext-rs-0.5
+(define-public rust-gettext-rs-0.7
   (package
     (name "rust-gettext-rs")
-    (version "0.5.0")
+    (version "0.7.0")
     (source
       (origin
         (method url-fetch)
@@ -16935,12 +17941,14 @@ getters and setters on fields.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1qc9a63i54b9ad3jx951hn7xb6xf76c9f3hmi2cdy2m7rhczm58v"))))
+          "0r7kahqcjrkm83d3gzzkn83fnw2bnqj2ank5z6hsm66izalai7p4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-gettext-sys" ,rust-gettext-sys-0.19)
-        ("rust-locale-config" ,rust-locale-config-0.3))))
+       (("rust-gettext-sys" ,rust-gettext-sys-0.21)
+        ("rust-locale-config" ,rust-locale-config-0.3))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))
     (inputs
      `(("gettext" ,gettext-minimal)))
     (home-page "https://github.com/Koka/gettext-rs")
@@ -16948,6 +17956,46 @@ getters and setters on fields.")
     (description "This package provides GNU Gettext FFI bindings for Rust.")
     (license license:expat)))
 
+(define-public rust-gettext-rs-0.6
+  (package
+    (inherit rust-gettext-rs-0.7)
+    (name "rust-gettext-rs")
+    (version "0.6.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gettext-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "040nizg9l5ap2vqgq4d2va2hi6cpykj46g8q1z9xv393vjlygx1x"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gettext-sys" ,rust-gettext-sys-0.21)
+        ("rust-locale-config" ,rust-locale-config-0.3))
+       #:cargo-development-inputs
+       (("rust-lazy-static" ,rust-lazy-static-1))))))
+
+(define-public rust-gettext-rs-0.5
+  (package
+    (inherit rust-gettext-rs-0.7)
+    (name "rust-gettext-rs")
+    (version "0.5.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gettext-rs" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1qc9a63i54b9ad3jx951hn7xb6xf76c9f3hmi2cdy2m7rhczm58v"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-gettext-sys" ,rust-gettext-sys-0.19)
+        ("rust-locale-config" ,rust-locale-config-0.3))))))
+
 (define-public rust-gettext-rs-0.4
   (package
     (inherit rust-gettext-rs-0.5)
@@ -16967,10 +18015,10 @@ getters and setters on fields.")
        (("rust-gettext-sys" ,rust-gettext-sys-0.19)
         ("rust-locale-config" ,rust-locale-config-0.2))))))
 
-(define-public rust-gettext-sys-0.19
+(define-public rust-gettext-sys-0.21
   (package
     (name "rust-gettext-sys")
-    (version "0.19.9")
+    (version "0.21.0")
     (source
       (origin
         (method url-fetch)
@@ -16979,14 +18027,15 @@ getters and setters on fields.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0lzi6ja81vc16mhcdmn3lw35120n9ijhvsy5dh5775mpbfxc8d70"))
+          "105d5zh67yc5vyzmqxdw7hx82h606ca6rzhsfjgzjczn2s012pc8"))
         (modules '((guix build utils)))
         (snippet
-         '(begin (delete-file "gettext-0.19.8.1.tar.xz") #t))))
+         '(begin (delete-file "gettext-0.21.tar.xz") #t))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-cc" ,rust-cc-1))))
+       (("rust-cc" ,rust-cc-1)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (inputs
      `(("gettext" ,gettext-minimal)))
     (home-page "https://github.com/Koka/gettext-rs")
@@ -16994,6 +18043,27 @@ getters and setters on fields.")
     (description "This package provides raw FFI bindings for GNU Gettext.")
     (license license:expat)))
 
+(define-public rust-gettext-sys-0.19
+  (package
+    (inherit rust-gettext-sys-0.21)
+    (name "rust-gettext-sys")
+    (version "0.19.9")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "gettext-sys" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0lzi6ja81vc16mhcdmn3lw35120n9ijhvsy5dh5775mpbfxc8d70"))
+        (modules '((guix build utils)))
+        (snippet
+         '(begin (delete-file "gettext-0.19.8.1.tar.xz") #t))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-cc" ,rust-cc-1))))))
+
 (define-public rust-gfa-0.6
   (package
     (name "rust-gfa")
@@ -17438,7 +18508,7 @@ shell style patterns.")
 (define-public rust-globset-0.4
   (package
     (name "rust-globset")
-    (version "0.4.5")
+    (version "0.4.7")
     (source
      (origin
        (method url-fetch)
@@ -17446,8 +18516,7 @@ shell style patterns.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "0841ihdg1ps2618cs0kjbr3pn3rzrj24rx3n4pg1sa6p1d1xmlbs"))))
+        (base32 "1ca96s29s7aqpkm04z4babyk8xqn1w7slpdrlldgnkz6l2gipz7h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17461,12 +18530,10 @@ shell style patterns.")
        (("rust-glob" ,rust-glob-0.3)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page
-     "https://github.com/BurntSushi/ripgrep/tree/master/globset")
-    (synopsis
-     "Cross platform single glob and glob set matching")
+    (home-page "https://github.com/BurntSushi/ripgrep/tree/master/globset")
+    (synopsis "Single glob and glob set matching")
     (description
-     "Cross platform single glob and glob set matching.  Glob set matching is
+     "This crate provides glob and glob set matching.  Glob set matching is
 the process of matching one or more glob patterns against a single candidate
 path simultaneously, and returning all of the globs that matched.")
     (license (list license:expat license:unlicense))))
@@ -17629,7 +18696,7 @@ loading crate.")
 (define-public rust-grep-0.2
   (package
     (name "rust-grep")
-    (version "0.2.7")
+    (version "0.2.8")
     (source
      (origin
        (method url-fetch)
@@ -17638,7 +18705,7 @@ loading crate.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0s3y1rx94swqnciz2zzifm8pmy2iyck270skgxhgkq7ab6x96bjq"))))
+         "0mw61v132ng0nbz5ygb6jvsx729772803w5bv3zs4i8baq689jsi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -17661,7 +18728,7 @@ loading crate.")
 (define-public rust-grep-cli-0.1
   (package
     (name "rust-grep-cli")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
@@ -17669,8 +18736,7 @@ loading crate.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32
-         "10mi7pkvlm5r478jhwlx15wlmqylq9fmkdg4qazz1xcifx7pi4im"))))
+        (base32 "12lyww4hl4cham9zqqssm3wcp1g3ffvi6906wl6hsiml9g1i1l9d"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17683,18 +18749,17 @@ loading crate.")
         ("rust-same-file" ,rust-same-file-1)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-winapi-util" ,rust-winapi-util-0.1))))
-    (home-page
-     "https://github.com/BurntSushi/ripgrep")
-    (synopsis
-     "Utilities for search oriented command line applications")
+    (home-page "https://github.com/BurntSushi/ripgrep")
+    (synopsis "Utilities for search oriented command line applications")
     (description
-     "Utilities for search oriented command line applications.")
-    (license license:expat)))
+     "This crate provides utilities for search oriented command line
+applications.")
+    (license (list license:unlicense license:expat))))
 
 (define-public rust-grep-matcher-0.1
   (package
     (name "rust-grep-matcher")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
@@ -17703,7 +18768,7 @@ loading crate.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0l4k9c0iw17vqw02z0wbx1nfj9h2xiiqx1px32lhhw7ibbyy3w7x"))))
+         "1k618qni7bgx9mvdp1kaznqjvn2gpgiasrmi0cqd6b066cy5c9vd"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17721,7 +18786,7 @@ the regex engine it uses pluggable.")
 (define-public rust-grep-pcre2-0.1
   (package
     (name "rust-grep-pcre2")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
@@ -17730,7 +18795,7 @@ the regex engine it uses pluggable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0sk8b188j81zfrmmy7jsq0pckydz42qf7w0pd2lwyfsa2nw4yksb"))))
+         "0hfyxsavqzf4rb5vc2a4hhi8dqw75vw1h95hinp4km9b6yxyvv66"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17748,7 +18813,7 @@ the regex engine it uses pluggable.")
 (define-public rust-grep-printer-0.1
   (package
     (name "rust-grep-printer")
-    (version "0.1.5")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
@@ -17757,11 +18822,11 @@ the regex engine it uses pluggable.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "004xv2bb52x801n0m1pknkdmzcjbi9fk9625m49y9s0ghh6d8d3z"))))
+         "0wnw8khcvris8canv1dp58qh6vph18fml9qsnrsmdpxf9ni73hh5"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-base64" ,rust-base64-0.12)
+       (("rust-base64" ,rust-base64-0.13)
         ("rust-bstr" ,rust-bstr-0.2)
         ("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-grep-searcher" ,rust-grep-searcher-0.1)
@@ -17774,14 +18839,14 @@ the regex engine it uses pluggable.")
     (home-page "https://github.com/BurntSushi/ripgrep")
     (synopsis "Standard printing of search results")
     (description
-     "An implementation of the grep crate's Sink trait that provides
-standard printing of search results, similar to grep itself.")
+     "This package is an implementation of the grep crate's Sink trait that
+provides standard printing of search results, similar to grep itself.")
     (license (list license:unlicense license:expat))))
 
 (define-public rust-grep-regex-0.1
   (package
     (name "rust-grep-regex")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
@@ -17790,7 +18855,7 @@ standard printing of search results, similar to grep itself.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1lm3mpp93m8qw6sgcqw64inadp0z061x3xb0pnn51684594mxfm7"))))
+         "01mx4xsrfp5hf8dpnvld1svs6i5dpg6xghigp4wkhdlcfv4m658j"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17810,7 +18875,7 @@ standard printing of search results, similar to grep itself.")
 (define-public rust-grep-searcher-0.1
   (package
     (name "rust-grep-searcher")
-    (version "0.1.7")
+    (version "0.1.8")
     (source
      (origin
        (method url-fetch)
@@ -17819,7 +18884,7 @@ standard printing of search results, similar to grep itself.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "06sb8n7nvaa4dnqnsx9jxvs78nnzmyp110cyzdvxnw09i4h7728r"))))
+         "0gf2qkkfsywvzrqvfx6h88qzb68zmnvggvid1ljdqam51glvvgbz"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -17829,7 +18894,7 @@ standard printing of search results, similar to grep itself.")
         ("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1)
         ("rust-grep-matcher" ,rust-grep-matcher-0.1)
         ("rust-log" ,rust-log-0.4)
-        ("rust-memmap" ,rust-memmap-0.7))
+        ("rust-memmap" ,rust-memmap2-0.3))
        #:cargo-development-inputs
        (("rust-grep-regex" ,rust-grep-regex-0.1)
         ("rust-regex" ,rust-regex-1))))
@@ -18223,8 +19288,37 @@ the template engine that renders the official Rust website")
 @code{#[derive(Hash32)]}.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hashbrown-0.11
+  (package
+    (name "rust-hashbrown")
+    (version "0.11.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashbrown" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0vkjsf5nzs7qcia5ya79j9sq2p1caz4crrncr1675wwyj3ag0pmb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("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))))
+    (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:asl2.0 license:expat))))
+
 (define-public rust-hashbrown-0.9
   (package
+    (inherit rust-hashbrown-0.11)
     (name "rust-hashbrown")
     (version "0.9.1")
     (source
@@ -18235,7 +19329,6 @@ the template engine that renders the official Rust website")
        (sha256
         (base32
          "016dsm9s4xmxlkw2jfikm54qlz6vyk0qr280gab7kzp342jf9byp"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -18251,12 +19344,7 @@ the template engine that renders the official Rust website")
         ("rust-rand" ,rust-rand-0.7)
         ("rust-rayon" ,rust-rayon-1)
         ("rust-rustc-hash" ,rust-rustc-hash-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:asl2.0 license:expat))))
+        ("rust-serde-test" ,rust-serde-test-1))))))
 
 (define-public rust-hashbrown-0.8
   (package
@@ -18349,22 +19437,22 @@ hash map.")
         ("rust-rustc-hash" ,rust-rustc-hash-1)
         ("rust-serde-test" ,rust-serde-test-1))))))
 
-(define-public rust-hashlink-0.6
+(define-public rust-hashlink-0.7
   (package
     (name "rust-hashlink")
-    (version "0.6.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "hashlink" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1a2gi4737lmqq1i48b9w13gvbkh4g3gc7gj6d3974hywy21gg76r"))))
+        (base32 "1kzs54xq1g41zph39cfdfchiafij99382zw5fk6zq7xwkh9a6jbj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-hashbrown" ,rust-hashbrown-0.9)
+       (("rust-hashbrown" ,rust-hashbrown-0.11)
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-test" ,rust-serde-test-1))))
@@ -18374,6 +19462,26 @@ hash map.")
 their key-value pairs in a user controllable order.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-hashlink-0.6
+  (package
+    (inherit rust-hashlink-0.7)
+    (name "rust-hashlink")
+    (version "0.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "hashlink" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1a2gi4737lmqq1i48b9w13gvbkh4g3gc7gj6d3974hywy21gg76r"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-hashbrown" ,rust-hashbrown-0.9)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-serde-test" ,rust-serde-test-1))))))
+
 (define-public rust-headers-0.3
   (package
     (name "rust-headers")
@@ -20005,14 +21113,14 @@ let} expressions.")
 (define-public rust-ignore-0.4
   (package
     (name "rust-ignore")
-    (version "0.4.17")
+    (version "0.4.18")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "ignore" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1347mxd0cwiidcl0qvixl7za524x5ds0izv8vjh2df0bqr2zp1xj"))))
+        (base32 "07bmnv96msggqb040z6xqp1p7s8ys0f97b731hp6mybkjc9ingvi"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -20114,7 +21222,7 @@ crate.")
 (define-public rust-indexmap-1
   (package
     (name "rust-indexmap")
-    (version "1.6.1")
+    (version "1.6.2")
     (source
       (origin
         (method url-fetch)
@@ -20123,7 +21231,7 @@ crate.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0friqyzr4ssyayks7nirqbc36zcsf8fdi67jmvl4vpjh8a9zmcag"))))
+          "1wxfh55zlrlpdxfcvvvj6wwc46f23cnb0j9q71190yl9pyh4aj42"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -20275,8 +21383,40 @@ 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
+  (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"))))
+    (build-system cargo-build-system)
+    (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))))
+    (home-page "https://github.com/inotify-rs/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.8
   (package
+    (inherit rust-inotify-0.9)
     (name "rust-inotify")
     (version "0.8.3")
     (source
@@ -20286,7 +21426,6 @@ as both traits and pure functions acting on String types.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1m74znskinrvfcp0hczwwdxvc7kvnrrailngkivk1iwknfa0mpa6"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -20298,12 +21437,7 @@ as both traits and pure functions acting on String types.")
        #:cargo-development-inputs
        (("rust-futures-util" ,rust-futures-util-0.3)
         ("rust-tempdir" ,rust-tempdir-0.3)
-        ("rust-tokio" ,rust-tokio-0.2))))
-    (home-page "https://github.com/inotify-rs/inotify")
-    (synopsis "Idiomatic wrapper for inotify")
-    (description "This package provides an idiomatic wrapper for inotify
-written in Rust.")
-    (license license:isc)))
+        ("rust-tokio" ,rust-tokio-0.2))))))
 
 (define-public rust-inotify-0.7
   (package
@@ -20404,8 +21538,45 @@ written in Rust.")
 data efficiently.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-insta-1
+  (package
+    (name "rust-insta")
+    (version "1.7.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "insta" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0i4jdrr888h0qvfhy2b4vvswlpi2x2ghwg31ljfa9kki54db58f4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-console" ,rust-console-0.14)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-globset" ,rust-globset-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-pest" ,rust-pest-2)
+        ("rust-pest-derive" ,rust-pest-derive-2)
+        ("rust-ron" ,rust-ron-0.6)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
+        ("rust-similar" ,rust-similar-1)
+        ("rust-toml" ,rust-toml-0.5)
+        ("rust-uuid" ,rust-uuid-0.8)
+        ("rust-walkdir" ,rust-walkdir-2))))
+    (home-page "https://insta.rs/")
+    (synopsis "Snapshot testing library for Rust")
+    (description
+     "This package provides a snapshot testing library for Rust.")
+    (license license:asl2.0)))
+
 (define-public rust-insta-0.16
   (package
+    (inherit rust-insta-1)
     (name "rust-insta")
     (version "0.16.1")
     (source
@@ -20416,7 +21587,6 @@ data efficiently.")
        (sha256
         (base32
          "1vhqlirp75nx8qalz87qk2wjs7mzwxww0n09n2ircgw1phd94zk1"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
@@ -20429,11 +21599,7 @@ data efficiently.")
         ("rust-ron" ,rust-ron-0.5)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))
-    (home-page "https://github.com/mitsuhiko/insta")
-    (synopsis "Snapshot testing library for Rust")
-    (description "This package provides a snapshot testing library for Rust.")
-    (license license:asl2.0)))
+        ("rust-serde-yaml" ,rust-serde-yaml-0.8))))))
 
 (define-public rust-insta-0.12
   (package
@@ -20527,6 +21693,31 @@ data efficiently.")
 that works on WASM too.")
     (license license:bsd-3)))
 
+(define-public rust-integer-encoding-1
+  (package
+    (name "rust-integer-encoding")
+    (version "1.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "integer-encoding" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1c032xhif5d6a8nc4cak60g5ylwd6p9569122m5hm67brx2l5yhb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-futures-util" ,rust-futures-util-0.3)
+        ("rust-tokio" ,rust-tokio-0.2))))
+    (home-page "https://github.com/dermesser/integer-encoding-rs")
+    (synopsis "Encoding and decoding integers to and from bytestrings")
+    (description
+     "This crate provides encoding and decoding of integers to and from
+bytestring representations.")
+    (license license:expat)))
+
 (define-public rust-interpolate-name-0.2
   (package
     (name "rust-interpolate-name")
@@ -21391,6 +22582,30 @@ the jni-bindgen code generator for binding to JVM APIs from Rust.")
      "An implementation of the GNU make jobserver for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-jod-thread-0.1
+  (package
+    (name "rust-jod-thread")
+    (version "0.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "jod-thread" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1bj7g6l59ybcf33znf80ccqbxvs1cmd8ynd4m8h7ywdqk473c8wb"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+     "https://github.com/matklad/jod-thread")
+    (synopsis
+     "Thin wrapper around @code{std::thread} which joins on drop by default")
+    (description
+     "Join On Drop thread (jod_thread) is a thin wrapper around
+@code{std::thread}, which makes sure that by default all threads are joined.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-jsonrpc-core-14
   (package
     (name "rust-jsonrpc-core")
@@ -21968,29 +23183,29 @@ requires non-const function calls to be computed.")
 (define-public rust-lexical-core-0.7
   (package
     (name "rust-lexical-core")
-    (version "0.7.4")
+    (version "0.7.6")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "lexical-core" version))
-        (file-name
-         (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "05i6b69ay8xbxw88vx89vglb7xm5n8ky82hax7d5a7z60bdccrfv"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical-core" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1zjzab1fnaw4kj6ixyrskp4dyz761gdcab07m4bkvlk1l4mcc1v6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-arrayvec" ,rust-arrayvec-0.5)
         ("rust-bitflags" ,rust-bitflags-1)
-        ("rust-cfg-if" ,rust-cfg-if-0.1)
+        ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-dtoa" ,rust-dtoa-0.4)
+        ("rust-libm" ,rust-libm-0.2)
         ("rust-ryu" ,rust-ryu-1)
         ("rust-static-assertions" ,rust-static-assertions-1))
        #:cargo-development-inputs
-       (("rust-approx" ,rust-approx-0.3)
-        ("rust-proptest" ,rust-proptest-0.9)
-        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+       (("rust-approx" ,rust-approx-0.4)
+        ("rust-proptest" ,rust-proptest-0.10)
+        ("rust-quickcheck" ,rust-quickcheck-1))))
     (home-page
      "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
     (synopsis
@@ -22027,10 +23242,38 @@ requires non-const function calls to be computed.")
         ("rust-quickcheck" ,rust-quickcheck-0.8)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
+(define-public rust-lexical-5
+  (package
+    (name "rust-lexical")
+    (version "5.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lexical" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1r8lsi523h53kbb99xgv31jabwhcp4rzqd4hfazfhcjffh5aj17l"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-lexical-core" ,rust-lexical-core-0.7)
+        ("rust-rand" ,rust-rand-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://github.com/Alexhuszagh/rust-lexical")
+    (synopsis "Lexical, to- and from-string conversion routines")
+    (description
+     "Lexical provides routines to convert numbers to and from decimal
+strings.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-libc-0.2
   (package
     (name "rust-libc")
-    (version "0.2.86")
+    (version "0.2.96")
     (source
      (origin
        (method url-fetch)
@@ -22038,7 +23281,7 @@ requires non-const function calls to be computed.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "074b38mq1rx3dgg7sf952d4ccywq450zymk7gzn5q9z39f92sa5p"))))
+         "1z5l4rdk44sx1vaq69x1mbwi5zh75q46p2hkl90ihhn5xzkb802n"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -22250,8 +23493,38 @@ library.")
         (snippet
          '(begin (delete-file-recursively "libgit2") #t))))))
 
+(define-public rust-libloading-0.7
+  (package
+    (name "rust-libloading")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libloading" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0sidr67nsa693mqrqgk2np3bkqni0778yk147xncspy171jdk13g"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-winapi" ,rust-winapi-0.3))
+       #:cargo-development-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-static-assertions"
+         ,rust-static-assertions-1))))
+    (home-page "https://github.com/nagisa/rust_libloading/")
+    (synopsis "Safer binding to dynamic library loading utilities")
+    (description "This package provides a safer binding to dynamic library
+loading utilities.")
+    (license license:isc)))
+
 (define-public rust-libloading-0.6
   (package
+    (inherit rust-libloading-0.7)
     (name "rust-libloading")
     (version "0.6.7")
     (source
@@ -22261,7 +23534,6 @@ library.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "10wq4a4jkman8k6y0v2cw3d38y1h3rw6d2in5klggm8jg90k46im"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #true
        #:cargo-inputs
@@ -22272,12 +23544,7 @@ library.")
         ("rust-static-assertions" ,rust-static-assertions-1))))
     (inputs
      `(("rust-cfg-if" ,rust-cfg-if-1)
-       ("rust-winapi" ,rust-winapi-0.3)))
-    (home-page "https://github.com/nagisa/rust_libloading/")
-    (synopsis "Safer binding to dynamic library loading utilities")
-    (description "This package provides a safer binding to dynamic library
-loading utilities.")
-    (license license:isc)))
+       ("rust-winapi" ,rust-winapi-0.3)))))
 
 (define-public rust-libloading-0.5
   (package
@@ -22498,17 +23765,17 @@ file.
 @end itemize")
     (license license:gpl2+)))
 
-(define-public rust-libsqlite3-sys-0.20
+(define-public rust-libsqlite3-sys-0.22
   (package
     (name "rust-libsqlite3-sys")
-    (version "0.20.1")
+    (version "0.22.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "libsqlite3-sys" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1g9gbjjpm9phhs991abkzmacszibp94m5nrh331ycd99y9ci1lv4"))))
+        (base32 "17gqc2mwih81j3ds479gl5zmsxqzzrcrj3yyv62vh34bgy8n82r9"))))
     (build-system cargo-build-system)
     (inputs
      `(("sqlite" ,sqlite)))
@@ -22516,7 +23783,7 @@ file.
      `(#:skip-build? #t
        #:cargo-inputs
        ;; build dependencies
-       (("rust-bindgen" ,rust-bindgen-0.55)
+       (("rust-bindgen" ,rust-bindgen-0.58)
         ("rust-cc" ,rust-cc-1)
         ("rust-pkg-config" ,rust-pkg-config-0.3)
         ("rust-vcpkg" ,rust-vcpkg-0.2))))
@@ -22525,6 +23792,29 @@ file.
     (description "Native bindings to the libsqlite3 library")
     (license license:expat)))
 
+(define-public rust-libsqlite3-sys-0.20
+  (package
+    (inherit rust-libsqlite3-sys-0.22)
+    (name "rust-libsqlite3-sys")
+    (version "0.20.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "libsqlite3-sys" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1g9gbjjpm9phhs991abkzmacszibp94m5nrh331ycd99y9ci1lv4"))))
+    (inputs
+     `(("sqlite" ,sqlite)))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       ;; build dependencies
+       (("rust-bindgen" ,rust-bindgen-0.55)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))))
+
 (define-public rust-libsqlite3-sys-0.18
   (package
     (inherit rust-libsqlite3-sys-0.20)
@@ -23334,8 +24624,62 @@ key-value pairs.")
         (base32
          "0jxsgkn378kxkiqdshdjdclw5wwp2xaz45cqd3yw85fhn8a38fza"))))))
 
+(define-public rust-lsp-types-0.89
+  (package
+    (name "rust-lsp-types")
+    (version "0.89.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "lsp-types" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "18h9dckjy11pz2lpd5lm12vvfcds1qg67clqalr35k2jzpnhsbl5"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-bitflags" ,rust-bitflags-1)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-serde-json" ,rust-serde-json-1)
+         ("rust-serde-repr" ,rust-serde-repr-0.1)
+         ("rust-url" ,rust-url-2))))
+    (home-page "https://github.com/gluon-lang/lsp-types")
+    (synopsis "Types for interaction with a language server")
+    (description
+     "This package provides types useful for interacting with a language
+server (LSP).")
+    (license license:expat)))
+
+(define-public rust-lsp-types-0.83
+  (package
+    (inherit rust-lsp-types-0.89)
+    (name "rust-lsp-types")
+    (version "0.83.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lsp-types" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0vdbdb74w1aim0q0nqnjvddrqz9cwirwbkjykwgjg5sbhcwrzry4"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.12)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-repr" ,rust-serde-repr-0.1)
+        ("rust-url" ,rust-url-2))))))
+
 (define-public rust-lsp-types-0.80
   (package
+    (inherit rust-lsp-types-0.83)
     (name "rust-lsp-types")
     (version "0.80.0")
     (source
@@ -23345,7 +24689,6 @@ key-value pairs.")
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32 "1vwjmi4apa4np6fgy95gq1nxc322br9cx7q2mm6vpb5x2lkmw9pl"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -23354,12 +24697,82 @@ key-value pairs.")
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-serde-repr" ,rust-serde-repr-0.1)
-        ("rust-url" ,rust-url-2))))
-    (home-page "https://github.com/gluon-lang/lsp-types")
-    (synopsis "Types for interaction with a language server")
-    (description
-     "This package provides types useful for interacting with a language
-server (LSP).")
+        ("rust-url" ,rust-url-2))))))
+
+(define-public rust-lsp-server-0.5
+  (package
+    (name "rust-lsp-server")
+    (version "0.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lsp-server" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "14irb3kawr5i2cx295xyw8q7pv18d52cjh3c6rd858aw5l2df9b8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-crossbeam-channel"
+         ,rust-crossbeam-channel-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))
+       #:cargo-development-inputs
+       (("rust-lsp-types" ,rust-lsp-types-0.83))))
+    (home-page
+     "https://github.com/rust-analyzer/lsp-server")
+    (synopsis "Generic LSP server scaffold")
+    (description "This package provides a generic LSP server scaffold.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-lz4-1
+  (package
+    (name "rust-lz4")
+    (version "1.23.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lz4" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k3j1wsgn4c5ys4vma326r00g5rq5ggp7k385rmby08yk7b0xhma"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-lz4-sys" ,rust-lz4-sys-1))))
+    (home-page "https://github.com/10xGenomics/lz4-rs")
+    (synopsis "Rust LZ4 bindings library")
+    (description "This crate provides Rust LZ4 bindings.")
+    (license license:expat)))
+
+(define-public rust-lz4-sys-1
+  (package
+    (name "rust-lz4-sys")
+    (version "1.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "lz4-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bmc82bddx2lm0r9bn422cxbwlwq6qld6m6l78hjcclbbnlrm9yw"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://github.com/bozaro/lz4-rs")
+    (synopsis "Rust LZ4 sys package")
+    (description "This is the Rust LZ4 sys package.")
     (license license:expat)))
 
 (define-public rust-lzma-sys-0.1
@@ -23414,6 +24827,32 @@ implementation of LZMA and xz stream encoding/decoding.")
      "This package provides LZW compression and decompression.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-m-lexer-0.0.4
+  (package
+    (name "rust-m-lexer")
+    (version "0.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "m_lexer" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19v7hk4i3avgvmhhv26bf5hjfjpwkrvy81dfbdd5hb8nj6zixrd7"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/matklad/m_lexer")
+    (synopsis
+     "Simple extensible regular expressions based lexer")
+    (description
+     "This package provides a simple extensible regular expressions based
+lexer.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mac-0.1
   (package
     (name "rust-mac")
@@ -23611,6 +25050,38 @@ platform-independently.")
         (base32
          "08ayl9aqjnmf7ly1ipy6dk3wjvyfn4w51l40jzh1fh984ykldbzi"))))))
 
+(define-public rust-markup5ever-rcdom-0.1
+  (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"))))
+    (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))))
+    (home-page "https://github.com/servo/html5ever")
+    (synopsis
+     "Basic, unsupported DOM structure for use by tests in html5ever/xml5ever")
+    (description
+     "This package provides a basic, unsupported DOM structure for use by tests
+in html5ever/xml5ever")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-match-cfg-0.1
   (package
     (name "rust-match-cfg")
@@ -24022,17 +25493,17 @@ file IO.")
        #:cargo-development-inputs
        (("rust-tempdir" ,rust-tempdir-0.3))))))
 
-(define-public rust-memmap2-0.1
+(define-public rust-memmap2-0.3
   (package
     (name "rust-memmap2")
-    (version "0.1.0")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "memmap2" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0nmymqy9q62x577ydja0ysfyir7h5qa0n5fwcnvchfhhlsi0rdyr"))))
+        (base32 "1xcg3vv6rg8vhl0wdfy085gx4xsp2dah7anvn5816h6wgczj1zr0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -24043,6 +25514,34 @@ file IO.")
     (description "This package provides a Rust API for memory-mapped file IO.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-memmap2-0.2
+  (package
+    (inherit rust-memmap2-0.3)
+    (name "rust-memmap2")
+    (version "0.2.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "memmap2" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1d26q3sh0z5dvwpilqqvq5bqi7vqfd2kc5gk3pdj7h65rnykwgkj"))))))
+
+(define-public rust-memmap2-0.1
+  (package
+    (inherit rust-memmap2-0.3)
+    (name "rust-memmap2")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "memmap2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nmymqy9q62x577ydja0ysfyir7h5qa0n5fwcnvchfhhlsi0rdyr"))))))
+
 (define-public rust-memoffset-0.6
   (package
     (name "rust-memoffset")
@@ -24689,14 +26188,14 @@ application.")
 (define-public rust-mio-0.7
   (package
     (name "rust-mio")
-    (version "0.7.6")
+    (version "0.7.11")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "mio" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "12qsvmsmpijnghgci5i0liskvwxrbg2dz6hc09kgvwaf0s3whfzk"))))
+        (base32 "0mi9ah60l270761sz6qdhhn0hkn5msc8689b53bhnkmk0glx706g"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -25055,6 +26554,53 @@ that provides support for POST multipart/form-data requests on both client and
 server.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-multiversion-0.6
+  (package
+    (name "rust-multiversion")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "multiversion" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wsk9ykdqjd6c54rf5l6yb6ps4hx409cda8aa875xk6k7lm9cp02"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-multiversion-macros" ,rust-multiversion-macros-0.6))))
+    (home-page "https://github.com/calebzulawski/multiversion")
+    (synopsis "Function multiversioning attribute macros for Rust")
+    (description "This crate provides function multiversioning attribute
+macros for Rust.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-multiversion-macros-0.6
+  (package
+    (name "rust-multiversion-macros")
+    (version "0.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "multiversion-macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1bzkmxgyiwsanqf4lsdzx5gn4harza4rdrzkq5hgksw2wfyy58x8"))))
+    (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/calebzulawski/multiversion")
+    (synopsis "Implementation crate for multiversion")
+    (description "This is an implementation crate for multiversion Rust
+library.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-mustache-0.9
   (package
     (name "rust-mustache")
@@ -25580,8 +27126,48 @@ established.")
 library.")
     (license license:expat)))
 
+(define-public rust-ndarray-0.13
+  (package
+    (name "rust-ndarray")
+    (version "0.13.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ndarray" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "02dbwj3b7d0cpy29nhw31n51h3cwm4s1q6narl7fwiigxh1xn1mc"))
+       (patches
+        (search-patches "rust-ndarray-0.13-remove-blas-src.patch"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-approx" ,rust-approx-0.3)
+        ("rust-cblas-sys" ,rust-cblas-sys-0.1)
+        ("rust-matrixmultiply" ,rust-matrixmultiply-0.2)
+        ("rust-num-complex" ,rust-num-complex-0.2)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rawpointer" ,rust-rawpointer-0.2)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-defmac" ,rust-defmac-0.2)
+        ("rust-itertools" ,rust-itertools-0.8)
+        ("rust-quickcheck" ,rust-quickcheck-0.9))))
+    (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
+general elements and for numerics.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-ndarray-0.12
   (package
+    (inherit rust-ndarray-0.13)
     (name "rust-ndarray")
     (version "0.12.1")
     (source
@@ -25593,7 +27179,6 @@ library.")
          (base32
           "0a5rfwcbqnvbwi3nw5sfz6kf0flhmjxs64s0b4kxc6lhmyl81wvw"))
         (patches (search-patches "rust-ndarray-remove-blas-src-dep.patch"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-itertools" ,rust-itertools-0.7)
@@ -25605,13 +27190,7 @@ library.")
        #:cargo-development-inputs
        (("rust-defmac" ,rust-defmac-0.1)
         ("rust-quickcheck" ,rust-quickcheck-0.7)
-        ("rust-rawpointer" ,rust-rawpointer-0.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
-general elements and for numerics.")
-    (license (list license:asl2.0
-                   license:expat))))
+        ("rust-rawpointer" ,rust-rawpointer-0.1))))))
 
 (define-public rust-ndk-0.2
   (package
@@ -25929,14 +27508,14 @@ applications written in Rust.  Its API is inspired by the popular
 (define-public rust-nipper-0.1
   (package
     (name "rust-nipper")
-    (version "0.1.8")
+    (version "0.1.9")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nipper" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0l003qvzivrqq2lj2cdn4q5x0fg6xczld13m41x492x0g91hwvap"))))
+        (base32 "05h1zsqmg405f589lfm8ch2b0853h7hqv7mz38bvpx4k8s3844vn"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -26512,8 +28091,54 @@ with all line endings.")
         (base32
          "1a1knz9j1w5a1pl2q6whmjphm3z6p64r5njnam7syp5rx8wil2if"))))))
 
+(define-public rust-notify-5
+  (package
+    (name "rust-notify")
+    (version "5.0.0-pre.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "notify" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0jq1ixzi7rgq233dxbxkn129n8lidswp1glsgbdhvw7ig38brfs6"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-bitflags" ,rust-bitflags-1)
+         ("rust-crossbeam-channel"
+          ,rust-crossbeam-channel-0.5)
+         ("rust-filetime" ,rust-filetime-0.2)
+         ("rust-fsevent" ,rust-fsevent-2)
+         ("rust-fsevent-sys" ,rust-fsevent-sys-3)
+         ("rust-inotify" ,rust-inotify-0.9)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-mio" ,rust-mio-0.7)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-walkdir" ,rust-walkdir-2)
+         ("rust-winapi" ,rust-winapi-0.3))
+        #:cargo-development-inputs
+        (("rust-serde-json" ,rust-serde-json-1))
+        #:phases
+        (modify-phases %standard-phases
+          (add-after 'unpack 'fix-version-requirements
+           (lambda _
+             (substitute* "Cargo.toml"
+               (("0.7.7") ,(package-version rust-mio-0.7)))
+             #t)))))
+    (home-page "https://github.com/notify-rs/notify")
+    (synopsis
+      "Cross-platform filesystem notification library")
+    (description
+      "Cross-platform filesystem notification library")
+    (license (list license:cc0 license:artistic2.0))))
+
 (define-public rust-notify-4
   (package
+    (inherit rust-notify-5)
     (name "rust-notify")
     (version "4.0.15")
     (source
@@ -26525,7 +28150,6 @@ with all line endings.")
        (sha256
         (base32
          "1gadf8jf1vz7sip37rlwa66vw85ripy6977ibcfbiynii1v4mbl0"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
@@ -26540,10 +28164,6 @@ with all line endings.")
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
        (("rust-tempfile" ,rust-tempfile-3))))
-    (home-page "https://github.com/passcod/notify")
-    (synopsis "Cross-platform file system notification library")
-    (description
-     "Cross-platform file system notification library.")
     (license license:cc0)))
 
 (define-public rust-ntapi-0.3
@@ -26642,8 +28262,38 @@ enhances the built-in library with some useful features.")
 framework.")
     (license license:expat)))
 
+(define-public rust-num-0.4
+  (package
+    (name "rust-num")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01j6k8kjad0a96297j3qjhdhrc6cgmzhf52i0sd7yd0d2z8ndns3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-num-bigint" ,rust-num-bigint-0.4)
+        ("rust-num-complex" ,rust-num-complex-0.4)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-iter" ,rust-num-iter-0.1)
+        ("rust-num-rational" ,rust-num-rational-0.4)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
+    (home-page "https://github.com/rust-num/num")
+    (synopsis "Collection of numeric types and traits for Rust")
+    (description
+     "This package provides a collection of numeric types and traits for Rust,
+including bigint, complex, rational, range iterators, generic integers, and
+more.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-0.3
   (package
+    (inherit rust-num-0.4)
     (name "rust-num")
     (version "0.3.0")
     (source
@@ -26655,7 +28305,6 @@ framework.")
        (sha256
         (base32
          "0jng6s3i51k3227id2z8h348l2da8x3jq4p3az9slkxwj5hifgmb"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-num-bigint" ,rust-num-bigint-0.3)
@@ -26663,13 +28312,7 @@ framework.")
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-iter" ,rust-num-iter-0.1)
         ("rust-num-rational" ,rust-num-rational-0.3)
-        ("rust-num-traits" ,rust-num-traits-0.2))))
-    (home-page "https://github.com/rust-num/num")
-    (synopsis "Collection of numeric types and traits for Rust")
-    (description
-     "This package provides a collection of numeric types and traits for Rust,
-including bigint, complex, rational, range iterators, generic integers, and more.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-num-traits" ,rust-num-traits-0.2))))))
 
 (define-public rust-num-0.2
   (package
@@ -26717,27 +28360,27 @@ including bigint, complex, rational, range iterators, generic integers, and more
         ("rust-num-rational" ,rust-num-rational-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2))))))
 
-(define-public rust-num-bigint-0.3
+(define-public rust-num-bigint-0.4
   (package
     (name "rust-num-bigint")
-    (version "0.3.1")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "num-bigint" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gq7cpvmzk5jixzr26fbjfayiigzh4p4vyyzbb73yqz4g9s436jy"))))
+        (base32 "04k5xh7d0nxay4yfb02rj841y9g5jh45d320avi53ak221y083af"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-arbitrary" ,rust-arbitrary-0.4)
+       (("rust-arbitrary" ,rust-arbitrary-1)
         ("rust-autocfg" ,rust-autocfg-1)
         ("rust-num-integer" ,rust-num-integer-0.1)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("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" ,rust-serde-1))))
     (home-page "https://github.com/rust-num/num-bigint")
     (synopsis "Big integer implementation for Rust")
@@ -26745,6 +28388,29 @@ including bigint, complex, rational, range iterators, generic integers, and more
      "This package provides a big integer implementation for Rust.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-num-bigint-0.3
+  (package
+    (inherit rust-num-bigint-0.4)
+    (name "rust-num-bigint")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-bigint" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1gq7cpvmzk5jixzr26fbjfayiigzh4p4vyyzbb73yqz4g9s436jy"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-arbitrary" ,rust-arbitrary-0.4)
+        ("rust-autocfg" ,rust-autocfg-1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-quickcheck" ,rust-quickcheck-0.9)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-serde" ,rust-serde-1))))))
+
 (define-public rust-num-bigint-0.2
   (package
     (inherit rust-num-bigint-0.3)
@@ -26828,8 +28494,33 @@ including bigint, complex, rational, range iterators, generic integers, and more
 for Rust")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-num-complex-0.4
+  (package
+    (name "rust-num-complex")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-complex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "11ahq51ibf7x30rsabgp3a29zw6d6bfilz53sj152z5vpdkkd1r6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.8)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/rust-num/num-complex")
+    (synopsis "Complex numbers implementation for Rust")
+    (description
+     "This crate provides complex numbers implementation for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-complex-0.3
   (package
+    (inherit rust-num-complex-0.4)
     (name "rust-num-complex")
     (version "0.3.0")
     (source
@@ -26841,19 +28532,11 @@ for Rust")
         (sha256
          (base32
           "1dczd81f2xb092dhb0brbdbf19pyfn0v9xmkf6qm0w4pv1dx0nmh"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-rand" ,rust-rand-0.7)
-        ("rust-serde" ,rust-serde-1))))
-    (home-page
-     "https://github.com/rust-num/num-complex")
-    (synopsis
-     "Complex numbers implementation for Rust")
-    (description
-     "Complex numbers implementation for Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde" ,rust-serde-1))))))
 
 (define-public rust-num-complex-0.2
   (package
@@ -27111,21 +28794,21 @@ directly.")
 (define-public rust-num-iter-0.1
   (package
     (name "rust-num-iter")
-    (version "0.1.41")
+    (version "0.1.42")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "num-iter" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "17sb142lhmpsq17cf9wrffjh8vjk901axxf55565r6cgfiy6nvks"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-iter" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0ndd9wb9qar50fdr16xm3i1zk6h2g9br56nml2n22kd56y1iq0mj"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-num-integer" ,rust-num-integer-0.1)
-        ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-autocfg" ,rust-autocfg-1))))
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("rust-num-integer" ,rust-num-integer-0.1)
+        ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://github.com/rust-num/num-iter")
     (synopsis "External iterators for generic mathematics")
     (description
@@ -27133,8 +28816,35 @@ directly.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-num-rational-0.4
+  (package
+    (name "rust-num-rational")
+    (version "0.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "num-rational" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ska19zb05f84b1cki7vyzy5wjqs26y82hiq1d9gabbw2syh45yl"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-autocfg" ,rust-autocfg-1)
+        ("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-serde" ,rust-serde-1))))
+    (home-page "https://github.com/rust-num/num-rational")
+    (synopsis "Rational numbers implementation for Rust")
+    (description
+     "This crate provides a rational numbers implementation for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-num-rational-0.3
   (package
+    (inherit rust-num-rational-0.4)
     (name "rust-num-rational")
     (version "0.3.0")
     (source
@@ -27146,19 +28856,13 @@ directly.")
         (sha256
          (base32
           "0f41j1l1kn5jj36a8xdy8kv242wlwq0ka578vm8gnb1n1wvdgd55"))))
-    (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)
         ("rust-serde" ,rust-serde-1)
-        ("rust-autocfg" ,rust-autocfg-1))))
-    (home-page "https://github.com/rust-num/num-rational")
-    (synopsis "Rational numbers implementation for Rust")
-    (description
-     "Rational numbers implementation for Rust.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-autocfg" ,rust-autocfg-1))))))
 
 (define-public rust-num-rational-0.2
   (package
@@ -27430,28 +29134,35 @@ Foundation framework.")
      "This package provides utilities for testing Objective-C interop.")
     (license license:expat)))
 
-(define-public rust-object-0.23
+(define-public rust-object-0.24
   (package
     (name "rust-object")
-    (version "0.23.0")
+    (version "0.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "object" version))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1m658q2ci9hk8csbl17zwcg1hpvcxm2sspjb9bzg0kc1cifsp9x9"))))
+        (base32
+         "0w21hp41mixzaavsdpjylbylh44z2b5d2wbnf5ipkvkjq38ksnqs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+       (("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))))
+        ("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))))
     (home-page "https://github.com/gimli-rs/object")
     (synopsis "Unified interface for reading and writing object file formats")
     (description
@@ -27459,6 +29170,29 @@ Foundation framework.")
 file formats.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-object-0.23
+  (package
+    (inherit rust-object-0.24)
+    (name "rust-object")
+    (version "0.23.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "object" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1m658q2ci9hk8csbl17zwcg1hpvcxm2sspjb9bzg0kc1cifsp9x9"))))
+    (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))))))
+
 (define-public rust-object-0.22
   (package
     (inherit rust-object-0.23)
@@ -27692,7 +29426,7 @@ other crates to create safe wrappers around Oniguruma.")
 (define-public rust-once-cell-1
   (package
     (name "rust-once-cell")
-    (version "1.5.2")
+    (version "1.7.2")
     (source
      (origin
        (method url-fetch)
@@ -27701,7 +29435,7 @@ other crates to create safe wrappers around Oniguruma.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "183zs1dbmsv24mkafjypf9qwjrx46an58vb004a162l113sl3g8k"))))
+         "18qmpyfigg4ibdhjy5mwcjhzk9adwlgfaqv7nj430ivm86q0i2xg"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -27742,7 +29476,7 @@ contents.")
 (define-public rust-oorandom-11.1
   (package
     (name "rust-oorandom")
-    (version "11.1.0")
+    (version "11.1.3")
     (source
       (origin
         (method url-fetch)
@@ -27751,7 +29485,7 @@ contents.")
           (string-append name "-" version ".tar.gz"))
         (sha256
           (base32
-            "01clxfnz1zwg4maynvbgj09wlkj5m3c8kjqfrp3sqp59qb4wgkpb"))))
+            "0xdm4vd89aiwnrk1xjwzklnchjqvib4klcihlc2bsd4x50mbrc8a"))))
     (build-system cargo-build-system)
     (arguments `(#:skip-build? #t))
     (home-page "https://hg.sr.ht/~icefox/oorandom")
@@ -28826,6 +30560,64 @@ synchronization primitives.")
         ("rust-winapi" ,rust-winapi-0.3)
         ("rust-rustc-version" ,rust-rustc-version-0.2))))))
 
+(define-public rust-parquet-4
+  (package
+    (name "rust-parquet")
+    (version "4.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parquet" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "19l8ya7jqym8bpf1pyg0i31a7sqaw18dskwbj6v6lkmhxbwafxcj"))))
+    (build-system cargo-build-system)
+    (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))))
+    (home-page "https://github.com/apache/arrow-rs")
+    (synopsis "Apache Parquet implementation in Rust")
+    (description
+     "This crate provides an Apache Parquet implementation in Rust.")
+    (license license:asl2.0)))
+
+(define-public rust-parquet-format-2
+  (package
+    (name "rust-parquet-format")
+    (version "2.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "parquet-format" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0wavvaf5dkfas1ms5kz093hq4mayldc0grfcyv4fsp9vahinpg55"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-thrift" ,rust-thrift-0.13))))
+    (home-page "https://github.com/sunchao/parquet-format-rs")
+    (synopsis "Apache Parquet format for Rust")
+    (description
+     "This crate provides Apache Parquet format, hosting the Thrift definition
+file and the generated @file{.rs} file.")
+    (license license:asl2.0)))
+
 (define-public rust-parse-zoneinfo-0.3
   (package
     (name "rust-parse-zoneinfo")
@@ -29398,6 +31190,60 @@ runtime support for rust-peg grammars.  To use rust-peg, see the peg crate.")
      "This package provides a simple and simplistic string parsing library.")
     (license license:expat)))
 
+(define-public rust-perf-event-open-sys-1
+  (package
+    (name "rust-perf-event-open-sys")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "perf-event-open-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "06jnb2jkwjinpj4hc41kbwsqbxdb1ywy5vci4ggly8rcvbsyv6yf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2))))
+    (home-page
+     "https://github.com/jimblandy/perf-event-open-sys.git")
+    (synopsis
+     "Unsafe, direct bindings for Linux's perf_event_open system call")
+    (description
+     "This package provides a unsafe, direct bindings for Linux's
+perf_event_open system call, with associated types and constants.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-perf-event-0.4
+  (package
+    (name "rust-perf-event")
+    (version "0.4.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "perf-event" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0rlxmyscr38wynknqqpy82fypq8ywa52ad3dbm22ia7as8n5d5jk"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:cargo-inputs
+        (("rust-libc" ,rust-libc-0.2)
+         ("rust-perf-event-open-sys"
+          ,rust-perf-event-open-sys-1))))
+    (home-page
+      "https://github.com/jimblandy/perf-event.git")
+    (synopsis
+     "Rust interface to Linux performance monitoring")
+    (description
+     "This package provides a Rust interface to Linux performance monitoring.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-permutohedron-0.2
   (package
     (name "rust-permutohedron")
@@ -29424,7 +31270,7 @@ algorithm.")
 (define-public rust-pest-2
   (package
     (name "rust-pest")
-    (version "2.1.1")
+    (version "2.1.3")
     (source
      (origin
        (method url-fetch)
@@ -29433,7 +31279,7 @@ algorithm.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "134686mwxm73asbiads53zfchqvvcrsrsyax2cghfcizmvg8ac4k"))))
+         "0lry80bm90x47nq71wxq83kjrm9ashpz4kbm92p90ysdx4m8gx0h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -30287,6 +32133,164 @@ applications.")
      "Additional trait for Read and Write to read and write Plain Old Data.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-polars-0.13
+  (package
+    (name "rust-polars")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "104s1r0ndwz3blklbfshkm0km0602w9rqg9lbaq36zbbf93cw1n4"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-polars-core" ,rust-polars-core-0.13)
+        ("rust-polars-io" ,rust-polars-io-0.13)
+        ("rust-polars-lazy" ,rust-polars-lazy-0.13))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "DataFrame Library based on Apache Arrow")
+    (description
+     "Polars is a dataframe Library based on Apache Arrow.")
+    (license license:expat)))
+
+(define-public rust-polars-arrow-0.13
+  (package
+    (name "rust-polars-arrow")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-arrow" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0r6k2zm9f3nngjszdjnjz7r7c91qpq88lwjfgsbwfi8383xxbcjk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-arrow" ,rust-arrow-4)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "Arrow interfaces for Polars DataFrame library")
+    (description
+     "This crate provides Arrow interfaces for Polars DataFrame library.")
+    (license license:expat)))
+
+(define-public rust-polars-core-0.13
+  (package
+    (name "rust-polars-core")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pb48s1vz2kxiw54xcgcrsbhaxsyg5gb6dbqzkq0gia80y2iwml8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrow" ,rust-arrow-4)
+        ("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-lazy-static" ,rust-lazy-static-1)
+        ("rust-ndarray" ,rust-ndarray-0.13)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parquet" ,rust-parquet-4)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.13)
+        ("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-json" ,rust-serde-json-1)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-unsafe-unwrap" ,rust-unsafe-unwrap-0.1))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "Core of the Polars DataFrame library")
+    (description
+     "This crate provides the core of the Polars DataFrame library.")
+    (license license:expat)))
+
+(define-public rust-polars-io-0.13
+  (package
+    (name "rust-polars-io")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1iwbr5i1qy5f54ifhvxr8h9jr023jfj0mai5hy1lccszxh88hf17"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-arrow" ,rust-arrow-4)
+        ("rust-csv" ,rust-csv-1)
+        ("rust-csv-core" ,rust-csv-core-0.1)
+        ("rust-fast-float" ,rust-fast-float-0.2)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-lexical" ,rust-lexical-5)
+        ("rust-memmap2" ,rust-memmap2-0.2)
+        ("rust-num" ,rust-num-0.4)
+        ("rust-num-cpus" ,rust-num-cpus-1)
+        ("rust-parquet" ,rust-parquet-4)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.13)
+        ("rust-polars-core" ,rust-polars-core-0.13)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-regex" ,rust-regex-1))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "IO related logic for the Polars DataFrame library")
+    (description
+     "This crate provides IO related logic for the Polars DataFrame library.")
+    (license license:expat)))
+
+(define-public rust-polars-lazy-0.13
+  (package
+    (name "rust-polars-lazy")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "polars-lazy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0z5dqz9fk23i10flq4lw8a3qb6638kwxcmka1dyxpabh94l86zqf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ahash" ,rust-ahash-0.7)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-polars-arrow" ,rust-polars-arrow-0.13)
+        ("rust-polars-core" ,rust-polars-core-0.13)
+        ("rust-polars-io" ,rust-polars-io-0.13)
+        ("rust-rayon" ,rust-rayon-1))))
+    (home-page "https://github.com/ritchie46/polars")
+    (synopsis "Lazy query engine for the Polars DataFrame library")
+    (description
+     "This crate provides a lazy query engine for the Polars DataFrame
+library.")
+    (license license:expat)))
+
 (define-public rust-polling-2
   (package
     (name "rust-polling")
@@ -31111,7 +33115,7 @@ in your code.")
 (define-public rust-proc-macro2-1
   (package
     (name "rust-proc-macro2")
-    (version "1.0.24")
+    (version "1.0.27")
     (source
       (origin
         (method url-fetch)
@@ -31119,7 +33123,7 @@ in your code.")
         (file-name (string-append name "-" version ".crate"))
         (sha256
          (base32
-          "0wcabxzrddcjmryndw8fpyxcq6rw63m701vx86xxf03y3bp081qy"))))
+          "0f3h0zl5w5090ajmmvpmhkpr4iwqnn5rip3afacabhc657vwmn7h"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-test-flags '("--lib")
@@ -31489,8 +33493,44 @@ stack pointer and inspect the properties of the stack.")
 compliant email address validation.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-pulldown-cmark-0.8
+  (package
+    (name "rust-pulldown-cmark")
+    (version "0.8.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pulldown-cmark" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1y6wh446g6vravvj70zsadzswyl2b4pyln9ib76m697jjljf1bgz"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-bitflags" ,rust-bitflags-1)
+         ("rust-getopts" ,rust-getopts-0.2)
+         ("rust-memchr" ,rust-memchr-2)
+         ("rust-unicase" ,rust-unicase-2))
+        #:cargo-development-inputs
+        (("rust-criterion" ,rust-criterion-0.3)
+         ("rust-html5ever" ,rust-html5ever-0.25)
+         ("rust-lazy-static" ,rust-lazy-static-1)
+         ("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)))
+
 (define-public rust-pulldown-cmark-0.4
   (package
+    (inherit rust-pulldown-cmark-0.8)
     (name "rust-pulldown-cmark")
     (version "0.4.1")
     (source
@@ -31502,7 +33542,6 @@ compliant email address validation.")
        (sha256
         (base32
          "1db8vlhm3n72051bkq4am80q28rfrh88796i3y9ajf5hhk3lrdyi"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
@@ -31515,12 +33554,7 @@ compliant email address validation.")
         ("rust-html5ever" ,rust-html5ever-0.23)
         ("rust-lazy-static" ,rust-lazy-static-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.2
   (package
@@ -31585,6 +33619,37 @@ compliant email address validation.")
        (("rust-bitflags" ,rust-bitflags-0.5)
         ("rust-getopts" ,rust-getopts-0.2))))))
 
+(define-public rust-pulldown-cmark-to-cmark-6
+  (package
+    (name "rust-pulldown-cmark-to-cmark")
+    (version "6.0.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "pulldown-cmark-to-cmark" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "08yyjr60jk8f4v4sqcgmna5n9y31l6lx3z9lak38wd82h63vkwp8"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-pulldown-cmark" ,rust-pulldown-cmark-0.8))
+        #:cargo-development-inputs
+        (("rust-indoc" ,rust-indoc-1)
+         ("rust-pretty-assertions"
+          ,rust-pretty-assertions-0.6))))
+    (home-page
+      "https://github.com/Byron/pulldown-cmark-to-cmark")
+    (synopsis
+      "Convert pulldown-cmark Events back to the string they were parsed from")
+    (description
+      "This package provides a convert pulldown-cmark Events back to the string
+they were parsed from")
+    (license license:asl2.0)))
+
 (define-public rust-pulse-0.5
   (package
     (name "rust-pulse")
@@ -32625,8 +34690,35 @@ tools for implementation.")
        #:cargo-inputs
        (("rust-rand-core" ,rust-rand-core-0.3))))))
 
+(define-public rust-rand-distr-0.3
+  (package
+    (name "rust-rand-distr")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rand-distr" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0mlxzzzbwpxxnvy79w0kb332r6vcw38jiglx5s5zna9rv8m57sf9"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2)
+        ("rust-rand" ,rust-rand-0.7))
+       #:cargo-development-inputs
+       (("rust-average" ,rust-average-0.10)
+        ("rust-rand-pcg" ,rust-rand-pcg-0.2))))
+    (home-page "https://crates.io/crates/rand_distr")
+    (synopsis "Sampling from random number distributions")
+    (description
+     "Sampling from random number distributions.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rand-distr-0.2
   (package
+    (inherit rust-rand-distr-0.3)
     (name "rust-rand-distr")
     (version "0.2.2")
     (source
@@ -32638,18 +34730,12 @@ tools for implementation.")
         (sha256
          (base32
           "1cpz577qid09lirjjhhn98yqdwsv0c01jf973pxpcr9svp5pm5wn"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-rand" ,rust-rand-0.7))
        #:cargo-development-inputs
        (("rust-average" ,rust-average-0.10)
-        ("rust-rand-pcg" ,rust-rand-pcg-0.2))))
-    (home-page "https://crates.io/crates/rand_distr")
-    (synopsis "Sampling from random number distributions")
-    (description
-     "Sampling from random number distributions.")
-    (license (list license:expat license:asl2.0))))
+        ("rust-rand-pcg" ,rust-rand-pcg-0.2))))))
 
 (define-public rust-rand-hc-0.3
   (package
@@ -33070,6 +35156,29 @@ random generic types.")
     (license
      (list license:zlib license:asl2.0 license:expat))))
 
+(define-public rust-randomize-3
+  (package
+    (inherit rust-randomize-4)
+    (name "rust-randomize")
+    (version "3.0.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "randomize" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "02ll7r3rrpmhjx34w91m1yvqw1685bq2n9amqvycjcqznncqrhw8"))))
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-rand-core" ,rust-rand-core-0.5)
+         ("rust-serde" ,rust-serde-1))
+        #:cargo-development-inputs
+        (("rust-bincode" ,rust-bincode-1))))
+    (license license:bsd-0)))
+
 (define-public rust-raw-cpuid-8
   (package
     (name "rust-raw-cpuid")
@@ -34511,8 +36620,33 @@ responses, and headers for the Rocket web framework.")
 network services using futures.")
     (license license:expat)))
 
+(define-public rust-ron-0.6
+  (package
+    (name "rust-ron")
+    (version "0.6.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "ron" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "07vzhbrnimz1lij0f280y624j4yzipn2404jmygs24mp7xhshkh6"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-base64" ,rust-base64-0.13)
+        ("rust-bitflags" ,rust-bitflags-1)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-serde" ,rust-serde-1))))
+    (home-page "https://github.com/ron-rs/ron")
+    (synopsis "Rusty Object Notation")
+    (description "This package provides Rusty Object Notation (RON).")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ron-0.5
   (package
+    (inherit rust-ron-0.6)
     (name "rust-ron")
     (version "0.5.1")
     (source
@@ -34521,7 +36655,6 @@ network services using futures.")
        (uri (crate-uri "ron" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256 (base32 "1mb2bavvp8jg5wx0kx9n45anrsbjwhjzddim987bjaa11hg45kif"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-base64" ,rust-base64-0.10)
@@ -34529,11 +36662,7 @@ network services using futures.")
         ("rust-serde" ,rust-serde-1))
        #:cargo-development-inputs
        (("rust-serde-bytes" ,rust-serde-bytes-0.10)
-        ("rust-serde-json" ,rust-serde-json-1))))
-    (home-page "https://github.com/ron-rs/ron")
-    (synopsis "Rusty Object Notation")
-    (description "This package provides Rusty Object Notation (RON).")
-    (license (list license:expat license:asl2.0))))
+        ("rust-serde-json" ,rust-serde-json-1))))))
 
 (define-public rust-ron-0.4
   (package
@@ -34607,6 +36736,39 @@ can handle huge texts and memory-incoherent edits with ease.")
 wildcard segments")
     (license license:expat)))
 
+(define-public rust-rowan-0.13
+  (package
+    (name "rust-rowan")
+    (version "0.13.0-pre.6")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "rowan" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "03gh3wa52135mh1an1x4hw6jba64fwfsh4lw3fsmm6jy2i7c1k42"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-countme" ,rust-countme-2)
+         ("rust-hashbrown" ,rust-hashbrown-0.9)
+         ("rust-memoffset" ,rust-memoffset-0.6)
+         ("rust-rustc-hash" ,rust-rustc-hash-1)
+         ("rust-serde" ,rust-serde-1)
+         ("rust-text-size" ,rust-text-size-1))
+        #:cargo-development-inputs
+        (("rust-m-lexer" ,rust-m-lexer-0.0.4))))
+    (home-page
+      "https://github.com/rust-analyzer/rowan")
+    (synopsis
+      "Library for generic lossless syntax trees")
+    (description
+      "This package provides a library for generic lossless syntax trees.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-rspec-1
   (package
     (name "rust-rspec")
@@ -34838,17 +37000,17 @@ please consider using @code{async-std} or @code{tokio}.")
      "This package provides a Tokio-based asynchronous runtime.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-rusqlite-0.24
+(define-public rust-rusqlite-0.25
   (package
     (name "rust-rusqlite")
-    (version "0.24.2")
+    (version "0.25.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rusqlite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "04jiqa9y7pk7byk0kicjxqy75jifz1v4xhhaxhkwicms3kkqxwym"))))
+        (base32 "1csfxb0jff78gzakva3bwgmm5g0dk90pnalc4krrdbzsr1kwzbap"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -34859,9 +37021,9 @@ please consider using @code{async-std} or @code{tokio}.")
         ("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.6)
+        ("rust-hashlink" ,rust-hashlink-0.7)
         ("rust-lazy-static" ,rust-lazy-static-1)
-        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.20)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.22)
         ("rust-memchr" ,rust-memchr-2)
         ("rust-serde-json" ,rust-serde-json-1)
         ("rust-smallvec" ,rust-smallvec-1)
@@ -34870,9 +37032,40 @@ please consider using @code{async-std} or @code{tokio}.")
         ("rust-uuid" ,rust-uuid-0.8))))
     (home-page "https://github.com/rusqlite/rusqlite")
     (synopsis "Wrapper for SQLite")
-    (description "This prackage provides a wrapper for SQLite.")
+    (description "This crate provides a wrapper for SQLite.")
     (license license:expat)))
 
+(define-public rust-rusqlite-0.24
+  (package
+    (inherit rust-rusqlite-0.25)
+    (name "rust-rusqlite")
+    (version "0.24.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rusqlite" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "04jiqa9y7pk7byk0kicjxqy75jifz1v4xhhaxhkwicms3kkqxwym"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bitflags" ,rust-bitflags-1)
+        ("rust-byteorder" ,rust-byteorder-1)
+        ("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.6)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libsqlite3-sys" ,rust-libsqlite3-sys-0.20)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-time" ,rust-time-0.2)
+        ("rust-url" ,rust-url-2)
+        ("rust-uuid" ,rust-uuid-0.8))))))
+
 (define-public rust-rusqlite-0.23
   (package
     (inherit rust-rusqlite-0.24)
@@ -35504,10 +37697,10 @@ 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-654
+(define-public rust-rustc-ap-rustc-lexer-721
   (package
     (name "rust-rustc-ap-rustc-lexer")
-    (version "654.0.0")
+    (version "721.0.0")
     (source
      (origin
        (method url-fetch)
@@ -35516,11 +37709,13 @@ It is automatically published using the compiler repository at
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "19bx2z4gxxzqfjh9m11jp52lgdzz0k5fb0p1ad739bdc5cm4sciv"))))
+         "1ldk41a4vxgh39p9650vhw1j7fng06pfmvb4xb2pvp22547gd89b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-unicode-xid" ,rust-unicode-xid-0.2))))
+       (("rust-unicode-xid" ,rust-unicode-xid-0.2))
+       #:cargo-development-inputs
+       (("rust-expect-test" ,rust-expect-test-1))))
     (home-page "https://github.com/alexcrichton/rustc-auto-publish")
     (synopsis "Automatically published versions of rustc macros")
     (description
@@ -35529,6 +37724,24 @@ 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-654
+  (package
+    (inherit rust-rustc-ap-rustc-lexer-721)
+    (name "rust-rustc-ap-rustc-lexer")
+    (version "654.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "rustc-ap-rustc_lexer" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "19bx2z4gxxzqfjh9m11jp52lgdzz0k5fb0p1ad739bdc5cm4sciv"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-unicode-xid" ,rust-unicode-xid-0.2))))))
+
 (define-public rust-rustc-ap-rustc-macros-654
   (package
     (name "rust-rustc-ap-rustc-macros")
@@ -36467,22 +38680,23 @@ sub-processes using a fork-like interface.")
 (define-public rust-rustyline-8
   (package
     (name "rust-rustyline")
-    (version "8.0.0")
+    (version "8.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "rustyline" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "14z8hyx33ygyhm5ihcl9n2g646dawlw3ajavnbbb3vnizjbvbqdr"))))
+        (base32 "0x0qwcbnq6zyayxv1xqqn0zbwlz878jra0sgiv4pd3vklzvymm7v"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bitflags" ,rust-bitflags-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-clipboard-win" ,rust-clipboard-win-4)
         ("rust-dirs-next" ,rust-dirs-next-2)
-        ("rust-fs2" ,rust-fs2-0.4)
+        ("rust-fd-lock" ,rust-fd-lock-2)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-log" ,rust-log-0.4)
         ("rust-memchr" ,rust-memchr-2)
@@ -36702,6 +38916,79 @@ client (S3RS).")
         ("rust-sha2" ,rust-sha2-0.6)
         ("rust-url" ,rust-url-2))))))
 
+(define-public rust-salsa-macros-0.17
+  (package
+    (name "rust-salsa-macros")
+    (version "0.17.0-pre.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "salsa-macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1yrjiriw5bb0gxl2dk7c5ng7g5wlkc4gd65czx5x99bzc9hc0brf"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))
+    (home-page "https://github.com/salsa-rs/salsa")
+    (synopsis
+     "Procedural macros for the salsa crate")
+    (description
+     "This package provides a procedural macros for the salsa crate.")
+    (license (list license:asl2.0 license:expat))))
+
+(define-public rust-salsa-0.17
+  (package
+    (name "rust-salsa")
+    (version "0.17.0-pre.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "salsa" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "10jm7s8abw0m7iffa2983kmwgmv342i9g32d1irsgmccx9hq40sq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build?
+       #t
+       #:cargo-inputs
+       (("rust-crossbeam-utils"
+         ,rust-crossbeam-utils-0.8)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-lock-api" ,rust-lock-api-0.4)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-salsa-macros" ,rust-salsa-macros-0.17)
+        ("rust-smallvec" ,rust-smallvec-1))
+       #:cargo-development-inputs
+       (("rust-diff" ,rust-diff-0.1)
+        ("rust-env-logger" ,rust-env-logger-0.7)
+        ("rust-linked-hash-map"
+         ,rust-linked-hash-map-0.5)
+        ("rust-rand" ,rust-rand-0.7)
+        ("rust-rand-distr" ,rust-rand-distr-0.2))))
+    (home-page "https://github.com/salsa-rs/salsa")
+    (synopsis
+     "Generic framework for on-demand, incrementalized computation
+(experimental)")
+    (description
+     "This package provides a generic framework for on-demand, incrementalized
+computation (experimental)")
+    (license (list license:asl2.0 license:expat))))
+
 (define-public rust-safemem-0.3
   (package
     (name "rust-safemem")
@@ -37292,7 +39579,7 @@ proven statistical guarantees.")
 (define-public rust-section-testing-0.0
   (package
     (name "rust-section-testing")
-    (version "0.0.4")
+    (version "0.0.5")
     (source
       (origin
         (method url-fetch)
@@ -37301,7 +39588,7 @@ proven statistical guarantees.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0a1zwpcs2dqhky2wd8y82cm25l3s9i5dbyn4ypgmvdysizcxgr7c"))))
+          "18dfl8nacwcd1z2y4sgdx7751czzpl6282q6cd49ys5gd0xlkljz"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/evanw/section_testing")
     (synopsis "Library for section-style testing")
@@ -37678,14 +39965,14 @@ macOS and iOS.")
 (define-public rust-semver-parser-0.10
   (package
     (name "rust-semver-parser")
-    (version "0.10.1")
+    (version "0.10.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "semver-parser" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0a0lgmnd7jga3c6090lsn4lifh3mnzmy4v6d6yqg9rfm59n19vs2"))))
+        (base32 "1xqijhqhx3bn77xnl1mlcp032hz8nv7n2fbdacbdzq7rnzsvxc00"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f                      ;missing files
@@ -38416,6 +40703,35 @@ data.  This crate provides a wrapper that works with any existing Serde
      "Macros to auto-generate implementations for the serde framework.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-path-to-error-0.1
+  (package
+    (name "rust-serde-path-to-error")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "serde-path-to-error" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "0n5ilbsxvi174m2fd506ivd43kws0yh523li1xz0zqh60ngi1xj2"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-serde" ,rust-serde-1))
+        #:cargo-development-inputs
+        (("rust-serde-derive" ,rust-serde-derive-1)
+         ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page
+      "https://github.com/dtolnay/path-to-error")
+    (synopsis
+      "Path to the element that failed to deserialize")
+    (description
+      "This package provides a path to the element that failed to deserialize.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-qs-0.7
   (package
     (name "rust-serde-qs")
@@ -39515,6 +41831,25 @@ perform shell-like expansions in strings, that is, to expand variables like
 some context).")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-shlex-1
+  (package
+    (name "rust-shlex")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "shlex" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32 "0gf773p2snqpw69rzh8s1wdlq8dc8c1ypmiv516il1fdyb46i9a2"))))
+    (build-system cargo-build-system)
+    (home-page "https://github.com/comex/rust-shlex")
+    (synopsis "Split a string into shell words, like Python's shlex")
+    (description "This crate provides a method to split a string into shell
+words, like Python's shlex.")
+    (license (list license:asl2.0
+                   license:expat))))
+
 (define-public rust-shlex-0.1
   (package
     (name "rust-shlex")
@@ -39795,6 +42130,29 @@ CPUs, as well as raw interfaces to platform-specific instructions.
      "This package provides helpers to write more compact simd code.")
     (license license:expat)))
 
+(define-public rust-similar-1
+  (package
+    (name "rust-similar")
+    (version "1.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "similar" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1v4ara277c2s8gcv821b9392ki5zzw95brfs8vy3bcjpln4d9l8s"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-bstr" ,rust-bstr-0.2)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))))
+    (home-page
+     "https://github.com/mitsuhiko/similar")
+    (synopsis "Diff library for Rust")
+    (description "This package provides a diff library for Rust.")
+    (license license:asl2.0)))
+
 (define-public rust-simple-mutex-1
   (package
     (name "rust-simple-mutex")
@@ -40454,6 +42812,36 @@ control on the fields.")
     (description "This package provides a small and fast async runtime.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-smol-str-0.1
+  (package
+    (name "rust-smol-str")
+    (version "0.1.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "smol-str" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1srj7gd14cllfwh55jwmid425rz2idpvbw7ly08448r97b7gg83c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1))
+       #:cargo-development-inputs
+       (("rust-proptest" ,rust-proptest-0.10)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/rust-analyzer/smol_str")
+    (synopsis
+     "Small-string optimized string type with O(1) clone")
+    (description
+     "This package provides a small-string optimized string type with O(1)
+clone.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-snailquote-0.3
   (package
     (name "rust-snailquote")
@@ -40487,6 +42875,32 @@ More importantly, this library also provides the ability to un-escape a given
 escaped text to recover the original string.")
     (license license:gpl3)))
 
+(define-public rust-snap-1
+  (package
+    (name "rust-snap")
+    (version "1.0.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "snap" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0l8llidvm7dlwfw2ql6hk4b4byl9677fppwgl7i2wglqs6a60ia5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-development-inputs
+       (("rust-doc-comment" ,rust-doc-comment-0.3))))
+    (home-page
+     "https://github.com/BurntSushi/rust-snappy")
+    (synopsis
+     "Pure Rust implementation of the Snappy compression algorithm")
+    (description
+     "This package provides a pure Rust implementation of the Snappy compression
+algorithm.  Includes streaming compression and decompression.")
+    (license license:bsd-3)))
+
 (define-public rust-socket2-0.3
   (package
     (name "rust-socket2")
@@ -41657,21 +44071,22 @@ struct.")
      "Parse command line argument by defining a struct, derive crate.")
     (license (list license:asl2.0 license:expat))))
 
-(define-public rust-strum-0.18
+(define-public rust-strum-0.20
   (package
     (name "rust-strum")
-    (version "0.18.0")
+    (version "0.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "strum" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0asjskn1qhqqfiq673np0gvmnd1rsp506m38vk53gi7l93mq3gap"))))
+        (base32 "0p5cslmdnz261kiwmm4h7qsmv9bh83r0f9lq6f2z2mxsnl4wa63k"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-strum-macros" ,rust-strum-macros-0.18))))
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-strum-macros" ,rust-strum-macros-0.20))))
     (home-page "https://github.com/Peternator7/strum")
     (synopsis "Set of traits for working with enums and strings")
     (description
@@ -41679,21 +44094,37 @@ struct.")
 easier in Rust.")
     (license license:expat)))
 
-(define-public rust-strum-macros-0.18
+(define-public rust-strum-0.18
   (package
-    (name "rust-strum-macros")
+    (inherit rust-strum-0.20)
+    (name "rust-strum")
     (version "0.18.0")
     (source
      (origin
        (method url-fetch)
+       (uri (crate-uri "strum" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0asjskn1qhqqfiq673np0gvmnd1rsp506m38vk53gi7l93mq3gap"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-strum-macros" ,rust-strum-macros-0.18))))))
+
+(define-public rust-strum-macros-0.20
+  (package
+    (name "rust-strum-macros")
+    (version "0.20.1")
+    (source
+     (origin
+       (method url-fetch)
        (uri (crate-uri "strum_macros" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0k3pwbv0c8q00jnsjshzfc2d5r3y6ppgf9fz7pyknrgaz2immj47"))))
+        (base32 "0j9ikvxlqzr667ghc045qkpwprjgcfmzgagln7maw4jigawcd2zf"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:skip-build? #t
+       #:cargo-inputs
        (("rust-heck" ,rust-heck-0.3)
         ("rust-proc-macro2" ,rust-proc-macro2-1)
         ("rust-quote" ,rust-quote-1)
@@ -41704,6 +44135,26 @@ easier in Rust.")
      "This crate provides helpful macros for working with enums and strings.")
     (license license:expat)))
 
+(define-public rust-strum-macros-0.18
+  (package
+    (inherit rust-strum-macros-0.20)
+    (name "rust-strum-macros")
+    (version "0.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "strum_macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0k3pwbv0c8q00jnsjshzfc2d5r3y6ppgf9fz7pyknrgaz2immj47"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-heck" ,rust-heck-0.3)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-syn" ,rust-syn-1))))))
+
 (define-public rust-subtle-2
   (package
     (name "rust-subtle")
@@ -42056,14 +44507,14 @@ browsers.")
 (define-public rust-syn-1
   (package
     (name "rust-syn")
-    (version "1.0.64")
+    (version "1.0.72")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "syn" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0vsx3448kyym7s5kybrl0qixgya33gzjxaidahya00k1jzlx3n9z"))))
+        (base32 "10mb1cqmq2vpl5v6qjgqqyvhgs9yf9xv9f0dbskababrzfzcvs51"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -42531,6 +44982,34 @@ syntax extension expansion.")
        (sha256
         (base32 "0facyh6hswp1i7airri8ly5kl6sv5bvkkd21vs51k2b3z22bvkz5"))))))
 
+(define-public rust-sys-locale-0.1
+  (package
+    (name "rust-sys-locale")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "sys-locale" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1pv3hl604vnbk7fi5s47zmb555znjj7ddhmgbzvd8c7sb6xrxy4i"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-cstr-core" ,rust-cstr-core-0.2)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-web-sys" ,rust-web-sys-0.3)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/1Password/sys-locale")
+    (synopsis "Lightweight library to obtain the active system locale")
+    (description
+     "Sys-locale is small library for obtaining the current locale set for the
+system or application with the relevant platform APIs.  The library is also
+no_std compatible by default, only relying on alloc.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-sysctl-0.4
   (package
     (name "rust-sysctl")
@@ -42887,17 +45366,229 @@ memory all at once.")
       "Targeting utilities for compilers and related tools")
     (license license:asl2.0)))
 
+(define-public rust-tectonic-bridge-core-0.2
+  (package
+    (name "rust-tectonic-bridge-core")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1728hdynpkc1hmaaslci0wijqni240f8mmclf8sw6nkkfbygk8zk"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-md-5" ,rust-md-5-0.9)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose core backend APIs to the Tectonic C/C++ code")
+    (description
+     "This crate is part of the Tectonic project.  It provides a C API to core
+I/O services provided by the Tectonic Rust code.  This API is then consumed by
+the various C/C++ ``engines`` implementing the TeX software.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bridge-core-0.1
+  (package
+    (inherit rust-tectonic-bridge-core-0.2)
+    (name "rust-tectonic-bridge-core")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_core" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1mfy8i03vmd4mwx8jb2lrwbggqq0vfp2vmbg296ipy7gf1zhi4jl"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-md-5" ,rust-md-5-0.9)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.2)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1))))))
+
+(define-public rust-tectonic-bridge-flate-0.1
+  (package
+    (name "rust-tectonic-bridge-flate")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_flate" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0fa1jj1zcm9grlfrrdd1r2kjpzblfbrwv6a4vasczng93xiyprxx"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose flate compression to the Tectonic C code")
+    (description
+     "This crate is part of the Tectonic project.  It provides a limited C API
+to the @code{flate2} crate.  This API is consumed by other Tectonic crates
+that include C code that require flate2 functionality.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bridge-freetype2-0.2
+  (package
+    (name "rust-tectonic-bridge-freetype2")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_freetype2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1vnn6c4cp1qaqnr74bi9mzh25l6dxi8h753lqrfkqz5wb57fv29b"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose the FreeType2 library C APIs to Rust/Cargo")
+    (description
+     "This crate is part of the Tectonic project.  It exposes the C API of the
+FreeType font rendering engine within the Rust/Cargo build framework, with no
+Rust bindings.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bridge-graphite2-0.2
+  (package
+    (name "rust-tectonic-bridge-graphite2")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_graphite2" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1qsq337y4p3z832kmn2xcaj6xh3z6ngr0izn4jgdjrymnsq1ac81"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose the graphite2 library to Rust/Cargo")
+    (description
+     "This crate is part of the Tectonic project.  It exposes the C API of the
+@code{graphite2} ``smart font`` system within the Rust/Cargo build framework,
+with no Rust bindings.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bridge-harfbuzz-0.2
+  (package
+    (name "rust-tectonic-bridge-harfbuzz")
+    (version "0.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_harfbuzz" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "01f307014bndmby6prpygzkf7wxdxfrl36pvcw7s5mika7s7bw9k"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
+        ("rust-tectonic-bridge-icu" ,rust-tectonic-bridge-icu-0.2)
+        ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose the Harfbuzz C/C++ APIs to Rust/Cargo")
+    (description
+     "This crate is part of the Tectonic project.  It exposes the C API of the
+Harfbuzz text shaping library the Rust/Cargo build framework, with no Rust
+bindings.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bridge-icu-0.2
+  (package
+    (name "rust-tectonic-bridge-icu")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bridge_icu" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0kbqi4gn26ymjxlg912p1f2v9rb8a39fr3mvpg2j2hm503vh4dj5"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Expose a subset of the ICU Unicode APIs to Rust/Cargo")
+    (description
+     "This crate is part of the Tectonic project.  It exposes the C API of the
+@code{ICU4C} Unicode library the Rust/Cargo build framework, with no Rust
+bindings.")
+    (license license:expat)))
+
+(define-public rust-tectonic-bundles-0.1
+  (package
+    (name "rust-tectonic-bundles")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_bundles" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "05x852w73d0gy9dmg69cl6ch3r2qfh4czai44nkbm6ykn190q2lc"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-flate2" ,rust-flate2-1)
+        ("rust-fs2" ,rust-fs2-0.4)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.2)
+        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1)
+        ("rust-zip" ,rust-zip-0.5))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Tectonic ``bundle'' (support file collection) implementations")
+    (description
+     "This crate is part of the Tectonic project.  It implements various
+Tectonic ``bundles`` that provide access to collections of TeX support
+files.")
+    (license license:expat)))
+
 (define-public rust-tectonic-cfg-support-0.1
   (package
     (name "rust-tectonic-cfg-support")
-    (version "0.1.2")
+    (version "0.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic_cfg_support" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1jsbk89g4s75cdav6350anls81k3lwaq6imhjb4q2c4cmr24i1cz"))))
+        (base32 "1j2ib1jwfj31kx45xdxqlqck5zikvrqaq51p81smvi4755s0417b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -42910,6 +45601,340 @@ memory all at once.")
 with @code{CARGO_CFG_TARGET_*} variables.")
     (license license:expat)))
 
+(define-public rust-tectonic-dep-support-0.1
+  (package
+    (name "rust-tectonic-dep-support")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_dep_support" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0l901rjcjmx0d5wjrj95b32rj3lnnhb89hn4i0d29agndn45qw6j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-pkg-config" ,rust-pkg-config-0.3)
+        ("rust-vcpkg" ,rust-vcpkg-0.2))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Find third-party libraries using either pkg-config or vcpkg")
+    (description
+     "This crate is part of the Tectonic project.  It provides build-time
+utilities for finding external library dependencies, allowing either
+@code{pkg-config} or @code{vcpkg} to be used as the dep-finding backend, and
+providing whatever fiddly features are needed to enable the Tectonic build
+process.")
+    (license license:expat)))
+
+(define-public rust-tectonic-docmodel-0.1
+  (package
+    (name "rust-tectonic-docmodel")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_docmodel" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "041hbp5rjrnnf6pbi7b9039jx5vn5f0d9fwhk0vshwjn69jmknkm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-serde" ,rust-serde-1)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-toml" ,rust-toml-0.5))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Tectonic document model")
+    (description
+     "This crate is part of the Tectonic project.  It implements the Tectonic
+document model, including the @file{Tectonic.toml} file.")
+    (license license:expat)))
+
+(define-public rust-tectonic-engine-bibtex-0.1
+  (package
+    (name "rust-tectonic-engine-bibtex")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_engine_bibtex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1l5s21yid2iidfn70bn4pq0dz7095dl0cd7h1d54abpz7zzs2z7q"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "@code{bibtex} program as a reusable crate")
+    (description
+     "This crate is part of the Tectonic project.  It provides the
+@code{bibtex} program as a reusable crate.")
+    (license license:expat)))
+
+(define-public rust-tectonic-engine-xetex-0.1
+  (package
+    (name "rust-tectonic-engine-xetex")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_engine_xetex" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ki06fsqx7rb683gz4d5xz248gwvpzf137zqrg8whsrazaqgzmfq"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
+        ("rust-tectonic-bridge-flate" ,rust-tectonic-bridge-flate-0.1)
+        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
+        ("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
+        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.1)
+        ("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "XeTeX engine as a reusable crate")
+    (description
+     "This crate is part of the Tectonic project.  It provides the XeTeX
+engine as a reusable crate.")
+    (license license:expat)))
+
+(define-public rust-tectonic-engine-xdvipdfmx-0.1
+  (package
+    (name "rust-tectonic-engine-xdvipdfmx")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_engine_xdvipdfmx" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "00kjsxzlzlc8lmh8mhb5v6iw1lb7rq09ski2mjzlyw604dcq1k3p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cbindgen" ,rust-cbindgen-0.16)
+        ("rust-cc" ,rust-cc-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-pdf-io" ,rust-tectonic-pdf-io-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "@code{xdvipdfmx} program as a reusable crate")
+    (description
+     "This crate is part of the Tectonic project.  It provides XeTeX’s
+@code{xdvipdfmx} program as a reusable crate.")
+    (license license:expat)))
+
+(define-public rust-tectonic-errors-0.2
+  (package
+    (name "rust-tectonic-errors")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_errors" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1cqy8ydsm1gi094l5hlkaq8lmkmgg6mivqpkh4q6h61lr4fhpckg"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Boxed error type for Tectonic, with supporting utilities")
+    (description
+     "This crate is part of the Tectonic project.  It provides a basic boxed
+error type and utilities.")
+    (license license:expat)))
+
+(define-public rust-tectonic-errors-0.1
+  (package
+    (inherit rust-tectonic-errors-0.2)
+    (name "rust-tectonic-errors")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_errors" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0x5wnxj3qvi4j45zm6a3ihdwikgg48vygi0vp3p64sicnqadcv6n"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-anyhow" ,rust-anyhow-1))))))
+
+(define-public rust-tectonic-geturl-0.2
+  (package
+    (name "rust-tectonic-geturl")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_geturl" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rwndw6ixwpflrhcvn5mcshpk6gd3b1ihghp6xxsr3dgw59ad1z2"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-curl" ,rust-curl-0.4)
+        ("rust-reqwest" ,rust-reqwest-0.11)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1))))
+    (home-page
+     "https://tectonic-typesetting.github.io/")
+    (synopsis "Interface for HTTP GETs and byte-range requests")
+    (description
+     "This crate is part of the Tectonic project.  It provides an
+interface for fetching URLs using one of several HTTP backends.")
+    (license license:expat)))
+
+(define-public rust-tectonic-io-base-0.3
+  (package
+    (name "rust-tectonic-io-base")
+    (version "0.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_io_base" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xpcavx3chld8d5qa24ikf5v4l5slzkakqr4ylibx0f91ssy3bsm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-app-dirs2" ,rust-app-dirs2-2)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1)
+        ("rust-thiserror" ,rust-thiserror-1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Basic types for Tectonic's pluggable I/O backend system")
+    (description
+     "This crate is part of the Tectonic project.  It provides basic
+types for Tectonic's pluggable I/O backend system, with
+implementations for @code{std} I/O types as well as @code{flate2} gzip
+streams.")
+    (license license:expat)))
+
+(define-public rust-tectonic-io-base-0.2
+  (package
+    (inherit rust-tectonic-io-base-0.3)
+    (name "rust-tectonic-io-base")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_io_base" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1rjgizhprm6kc2qzsnwpgbf1n2wjfjfjnc1n3ykzia30csypdrfd"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.1)
+        ("rust-thiserror" ,rust-thiserror-1))))))
+
+(define-public rust-tectonic-pdf-io-0.1
+  (package
+    (name "rust-tectonic-pdf-io")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_pdf_io" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0ry5g6vh54i8ih8rjlz3ci7b8gi4irsllg34pv57mcwrhwcikg6x"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
+        ("rust-tectonic-bridge-flate" ,rust-tectonic-bridge-flate-0.1)
+        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
+        ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libpng" ,libpng)))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Xdvipdfmx's PDF, XDV, and image I/O APIs in C, as a Rust crate")
+    (description
+     "This crate is part of the Tectonic project.  It provides the PDF, XDV,
+and image I/O capabilities of XeTeX’s xdvipdfmx as a crate, currently
+providing only a C API.")
+    (license license:expat)))
+
+(define-public rust-tectonic-status-base-0.2
+  (package
+    (name "rust-tectonic-status-base")
+    (version "0.2.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_status_base" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "02pxbpvwdxg2jdjs4vygz0h6qb2c4zcqkdlcjx217xdrn13jcbz3"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-tectonic-errors" ,rust-tectonic-errors-0.2))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "Basic types for reporting status messages to a user")
+    (description
+     "This crate is part of the Tectonic project.  It provides a basic
+types for reporting status messages to a user.")
+    (license license:expat)))
+
+(define-public rust-tectonic-status-base-0.1
+  (package
+    (inherit rust-tectonic-status-base-0.2)
+    (name "rust-tectonic-status-base")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_status_base" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0pdyva28cdrak2jcmw0i9blf3imyfg04h3dhg8zfn96s578wp000"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-tectonic-errors" ,rust-tectonic-errors-0.1))))))
+
 (define-public rust-tectonic-xdv-0.1
   (package
     (name "rust-tectonic-xdv")
@@ -42933,6 +45958,37 @@ with @code{CARGO_CFG_TARGET_*} variables.")
 used by XeTeX and Tectonic.")
     (license license:expat)))
 
+(define-public rust-tectonic-xetex-layout-0.1
+  (package
+    (name "rust-tectonic-xetex-layout")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tectonic_xetex_layout" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "063fq6bhhqac30bg6vmcfpd9zikn0p6rd189avz0f34ka4mir0yi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.1)
+        ("rust-tectonic-bridge-freetype2" ,rust-tectonic-bridge-freetype2-0.2)
+        ("rust-tectonic-bridge-graphite2" ,rust-tectonic-bridge-graphite2-0.2)
+        ("rust-tectonic-bridge-harfbuzz" ,rust-tectonic-bridge-harfbuzz-0.2)
+        ("rust-tectonic-bridge-icu" ,rust-tectonic-bridge-icu-0.2)
+        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
+        ("rust-tectonic-dep-support" ,rust-tectonic-dep-support-0.1))))
+    (home-page "https://tectonic-typesetting.github.io/")
+    (synopsis "XeTeX's font loading and layout interface encapsulation")
+    (description
+     "This crate is part of the Tectonic project.  It provides the font
+loading and layout routines of XeTeX as a crate, currently providing only
+a C API.")
+    (license license:expat)))
+
 (define-public rust-tempdir-0.3
   (package
     (name "rust-tempdir")
@@ -43325,8 +46381,34 @@ writing colored text to a terminal.")
      "This package gets the size of your Linux or Windows terminal.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-terminfo-0.7
+  (package
+    (name "rust-terminfo")
+    (version "0.7.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "terminfo" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0zkln56bsixjad6rsfy9mm15d9ygm89i63cn3gn685hjwrvik5vn"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-dirs" ,rust-dirs-2)
+        ("rust-fnv" ,rust-fnv-1)
+        ("rust-nom" ,rust-nom-5)
+        ("rust-phf" ,rust-phf-0.8)
+        ("rust-phf-codegen" ,rust-phf-codegen-0.8))))
+    (home-page "https://github.com/meh/rust-terminfo")
+    (synopsis "Terminal information")
+    (description "Terminal capabilities with type-safe getters.")
+    (license license:wtfpl2)))
+
 (define-public rust-terminfo-0.6
   (package
+    (inherit rust-terminfo-0.7)
     (name "rust-terminfo")
     (version "0.6.1")
     (source
@@ -43338,17 +46420,12 @@ writing colored text to a terminal.")
        (sha256
         (base32
          "17k8vqvicd6yg0iqmkjnxjhz8h8pknv86r03nq3f3ayjmxdhclcf"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-fnv" ,rust-fnv-1)
         ("rust-nom" ,rust-nom-4)
         ("rust-phf" ,rust-phf-0.7)
-        ("rust-phf-codegen" ,rust-phf-codegen-0.7))))
-    (home-page "https://github.com/meh/rust-terminfo")
-    (synopsis "Terminal information")
-    (description "Terminal capabilities with type-safe getters.")
-    (license license:wtfpl2)))
+        ("rust-phf-codegen" ,rust-phf-codegen-0.7))))))
 
 (define-public rust-termion-1
   (package
@@ -43521,6 +46598,34 @@ for TLS).")
 unstable language features.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-text-size-1
+  (package
+    (name "rust-text-size")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "text-size" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "02jn26l5wcdjqpy80ycnk9ha10flyc0p4yga8ci6aaz7vd4bb318"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-serde" ,rust-serde-1))
+        #:cargo-development-inputs
+        (("rust-serde-test" ,rust-serde-test-1)
+         ("rust-static-assertions"
+          ,rust-static-assertions-1))))
+    (home-page
+      "https://github.com/rust-analyzer/text-size")
+    (synopsis "Newtypes for text offsets")
+    (description "This package provides a newtypes for text offsets")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-textwrap-0.12
   (package
     (name "rust-textwrap")
@@ -43600,7 +46705,7 @@ handle Unicode characters correctly.")
 (define-public rust-thiserror-1
   (package
     (name "rust-thiserror")
-    (version "1.0.22")
+    (version "1.0.25")
     (source
      (origin
        (method url-fetch)
@@ -43609,7 +46714,7 @@ handle Unicode characters correctly.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0gp5wp7izpv9rdvq035ajbxcl3g0vck61pg9y6mfsvk1hi5y76hf"))))
+         "1ip9j8riar3xffp261yls4phpasz768xhnafxdz4qlargx2pcvzs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -43628,7 +46733,7 @@ handle Unicode characters correctly.")
 (define-public rust-thiserror-impl-1
   (package
     (name "rust-thiserror-impl")
-    (version "1.0.22")
+    (version "1.0.25")
     (source
      (origin
        (method url-fetch)
@@ -43637,7 +46742,7 @@ handle Unicode characters correctly.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "0mnx51374c69l1w7gh98prn2wzm2yvmlll4ms567a42vx0ihz8lv"))))
+         "139i3bxidyncjd1sphkn4c577nkba8lzmphhr9gb26xz1y67cdla"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -43699,19 +46804,20 @@ different for every thread.")
 (define-public rust-thread-local-1
   (package
     (name "rust-thread-local")
-    (version "1.0.1")
+    (version "1.1.3")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "thread_local" version))
-        (file-name (string-append name "-" version ".crate"))
-        (sha256
-         (base32
-          "054vlrr1vsdy1h4b7n99mr24pnj8928ig9qwzg36wnkld4dns36l"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thread_local" version))
+       (file-name (string-append name "-" version ".crate"))
+       (sha256
+        (base32 "1gccp3grndpi6dyhzylz4hkqnkzc1xyri98n0xwwhnn90i7d4640"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
-       #:cargo-inputs (("rust-lazy-static" ,rust-lazy-static-1))))
+       #:cargo-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-once-cell" ,rust-once-cell-1))))
     (home-page "https://github.com/Amanieu/thread_local-rs")
     (synopsis "Per-object thread-local storage")
     (description "Per-object thread-local storage.")
@@ -43777,6 +46883,32 @@ fixed set of worker threads.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-thrift-0.13
+  (package
+    (name "rust-thrift")
+    (version "0.13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thrift" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0nvbrflb5fw6hmayqppkp97dh63vs2znww92dlkcfz4laia9cv8c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-integer-encoding" ,rust-integer-encoding-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-ordered-float" ,rust-ordered-float-1)
+        ("rust-threadpool" ,rust-threadpool-1))))
+    (home-page "http://thrift.apache.org")
+    (synopsis "Rust bindings for the Apache Thrift RPC system")
+    (description
+     "This crate provides Rust bindings for the Apache Thrift RPC system.")
+    (license license:asl2.0)))
+
 (define-public rust-thrussh-libsodium-0.1
   (package
     (name "rust-thrussh-libsodium")
@@ -43805,6 +46937,93 @@ fixed set of worker threads.")
      "You can bind to libsodium from Rust with this crate.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-tikv-jemalloc-sys-0.4
+  (package
+    (name "rust-tikv-jemalloc-sys")
+    (version "0.4.1+5.2.1-patched")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tikv-jemalloc-sys" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1lw6gy9gzk7g7h71nm8a5ybrilhqgr583mn80nslr78p0ldk69la"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-cc" ,rust-cc-1)
+        ("rust-fs-extra" ,rust-fs-extra-1)
+        ("rust-libc" ,rust-libc-0.2))))
+    (home-page
+     "https://github.com/tikv/jemallocator")
+    (synopsis "Rust FFI bindings to jemalloc")
+    (description "This package provides a Rust FFI bindings to jemalloc.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-tikv-jemallocator-0.4
+  (package
+    (name "rust-tikv-jemallocator")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tikv-jemallocator" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pyc94yx74s3vxnr22gnpj0b2f87s0vql0c5ayy1b1zb0jkaa51w"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-tikv-jemalloc-sys"
+         ,rust-tikv-jemalloc-sys-0.4))))
+    (home-page
+     "https://github.com/tikv/jemallocator")
+    (synopsis
+     "Rust allocator backed by jemalloc")
+    (description
+     "This package provides a Rust allocator backed by jemalloc.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-tikv-jemalloc-ctl-0.4
+  (package
+    (name "rust-tikv-jemalloc-ctl")
+    (version "0.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tikv-jemalloc-ctl" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1pqs08dgnnrgbib8syldxmm8cjgyz80scs9i8jgn6mw86gj8137j"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-paste" ,rust-paste-0.1)
+        ("rust-tikv-jemalloc-sys"
+         ,rust-tikv-jemalloc-sys-0.4))
+       #:cargo-development-inputs
+       (("rust-tikv-jemallocator"
+         ,rust-tikv-jemallocator-0.4))))
+    (home-page
+     "https://github.com/tikv/jemallocator")
+    (synopsis
+     "safe wrapper over jemalloc's control and introspection APIs")
+    (description
+     "This package provides a safe wrapper over jemalloc's control and
+introspection APIs.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-time-0.2
   (package
     (name "rust-time")
@@ -43826,9 +47045,12 @@ fixed set of worker threads.")
         ("rust-standback" ,rust-standback-0.2)
         ("rust-stdweb" ,rust-stdweb-0.4)
         ("rust-time-macros" ,rust-time-macros-0.1)
+        ("rust-version-check" ,rust-version-check-0.9)
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
-       (("rust-version-check" ,rust-version-check-0.9))))
+       (("rust-rand" ,rust-rand-0.7)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-standback" ,rust-standback-0.2))))
     (home-page "https://github.com/time-rs/time")
     (synopsis "Date and time library")
     (description "This package provides a date and time library.  It is fully
@@ -44031,6 +47253,29 @@ manipulation in Rust.")
     (description "This package provides a low level HTTP server library.")
     (license license:asl2.0)))
 
+(define-public rust-tiny-keccak-2
+  (package
+    (name "rust-tiny-keccak")
+    (version "2.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tiny-keccak" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0dq2x0hjffmixgyf6xv9wgsbcxkd65ld0wrfqmagji8a829kg79c"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-crunchy" ,rust-crunchy-0.2))))
+    (home-page "https://github.com/debris/tiny-keccak")
+    (synopsis "Implementation of Keccak derived functions")
+    (description
+     "Tiny Keccak provides ann implementation of Keccak derived functions
+specified in FIPS-202, SP800-185 and KangarooTwelve.")
+    (license license:cc0)))
+
 (define-public rust-tinytemplate-1
   (package
     (name "rust-tinytemplate")
@@ -46295,6 +49540,43 @@ application authors using tracing to instrument their applications.")
         ("rust-tracing" ,rust-tracing-0.1)
         ("rust-tracing-log" ,rust-tracing-log-0.1))))))
 
+(define-public rust-tracing-tree-0.1
+  (package
+    (name "rust-tracing-tree")
+    (version "0.1.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "tracing-tree" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0rs9zjajlkhdxfgyajbi7l9bf569vrhsnqv7qqmvrngq0w4v84hp"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-ansi-term" ,rust-ansi-term-0.12)
+        ("rust-atty" ,rust-atty-0.2)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-log" ,rust-tracing-log-0.1)
+        ("rust-tracing-subscriber"
+         ,rust-tracing-subscriber-0.2))
+       #:cargo-development-inputs
+        (("rust-assert-cmd" ,rust-assert-cmd-1)
+         ("rust-glob" ,rust-glob-0.3)
+         ("rust-log" ,rust-log-0.4))))
+    (home-page
+     "https://github.com/davidbarsky/tracing-tree")
+    (synopsis
+     "Tracing Layer which prints a tree of spans and events")
+    (description
+     "This package provides a Tracing Layer which prints a tree of spans and
+events.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-trackable-1
   (package
     (name "rust-trackable")
@@ -47773,6 +51055,29 @@ panic-free alternative to @code{core::fmt}.")
      "Unchecked indexing wrapper using regular index syntax.")
     (license (list license:asl2.0 license:expat))))
 
+(define-public rust-ungrammar-1
+  (package
+    (name "rust-ungrammar")
+    (version "1.13.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "ungrammar" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "17wm4b5r3z5hqail6p609nii37y3j8dr4bxg8x0bkhkc2wa06xkn"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/matklad/ungrammar")
+    (synopsis
+      "DSL for describing concrete syntax trees")
+    (description
+      "This package provides a DSL for describing concrete syntax trees.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-unic-char-property-0.9
   (package
     (name "rust-unic-char-property")
@@ -48261,6 +51566,26 @@ whitespace from a string.")
      "Traits and implementations for unchecked downcasting.")
     (license license:expat)))
 
+(define-public rust-unsafe-unwrap-0.1
+  (package
+    (name "rust-unsafe-unwrap")
+    (version "0.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "unsafe_unwrap" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "106swla8nyzn9qgjrb4xxa9ihl8rsk921nl9swl9n3ryy5jyqc0j"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/nvzqz/unsafe-unwrap-rs")
+    (synopsis "Unsafely unwrap Result and Option types without checking")
+    (description
+     "This crate enables unchecked unwrapping on Option and Result types.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-untrusted-0.7
   (package
     (name "rust-untrusted")
@@ -49177,7 +52502,7 @@ specified across Unix and Windows platforms.")
 (define-public rust-walkdir-2
   (package
     (name "rust-walkdir")
-    (version "2.3.1")
+    (version "2.3.2")
     (source
       (origin
         (method url-fetch)
@@ -49186,14 +52511,14 @@ specified across Unix and Windows platforms.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0z9g39f49cycdm9vzjf8hnfh3f1csxgd65kmlphj8r2vffy84wbp"))))
+          "0mnszy33685v8y9js8mw6x2p3iddqs8vfj7n2dhqddnlbirz5340"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-winapi-util" ,rust-winapi-util-0.1)
+       (("rust-same-file" ,rust-same-file-1)
         ("rust-winapi" ,rust-winapi-0.3)
-        ("rust-same-file" ,rust-same-file-1))))
+        ("rust-winapi-util" ,rust-winapi-util-0.1))))
     (home-page "https://github.com/BurntSushi/walkdir")
     (synopsis "Recursively walk a directory")
     (description "Recursively walk a directory.")
@@ -49801,6 +53126,39 @@ attribute that is not in the shared backend crate.")
 WebAssembly binary files.")
     (license license:asl2.0)))
 
+(define-public rust-watchexec-1
+  (package
+    (name "rust-watchexec")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "watchexec" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1v52fi5fvjr7h5npyjkwnfc7801qrl4ayzgq4k03ylxr4lkbvhsb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-clearscreen" ,rust-clearscreen-1)
+        ("rust-derive-builder" ,rust-derive-builder-0.10)
+        ("rust-glob" ,rust-glob-0.3)
+        ("rust-globset" ,rust-globset-0.4)
+        ("rust-lazy-static" ,rust-lazy-static-1)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-nix" ,rust-nix-0.20)
+        ("rust-notify" ,rust-notify-4)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/watchexec/watchexec")
+    (synopsis
+     "Library to execute commands in response to file modifications")
+    (description
+     "This crate is a library to execute commands in response to file
+modifications.")
+    (license license:asl2.0)))
+
 (define-public rust-web-sys-0.3
   (package
     (name "rust-web-sys")
@@ -50556,8 +53914,33 @@ trust these primitives.")
     (description "Rust winpty bindings.")
     (license license:expat)))
 
+(define-public rust-winreg-0.8
+  (package
+    (name "rust-winreg")
+    (version "0.8.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "winreg" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1364vyx4kh170pxfg8iwlvv8xskvry53xfya0565q8qnx73gh1yi"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-chrono" ,rust-chrono-0.4)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-winapi" ,rust-winapi-0.3))))
+    (home-page "https://github.com/gentoo90/winreg-rs")
+    (synopsis "Rust bindings to the MS Windows Registry API")
+    (description
+     "This package provides Rust bindings to MS Windows Registry API.")
+    (license license:expat)))
+
 (define-public rust-winreg-0.7
   (package
+    (inherit rust-winreg-0.8)
     (name "rust-winreg")
     (version "0.7.0")
     (source
@@ -50568,7 +53951,6 @@ trust these primitives.")
        (sha256
         (base32
          "0sdxcyvda4v1v6a0k1j2v1400z3ng323k9a56gxvkq51x21dn801"))))
-    (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-chrono" ,rust-chrono-0.4)
@@ -50576,12 +53958,7 @@ trust these primitives.")
         ("rust-winapi" ,rust-winapi-0.3))
        #:cargo-development-inputs
        (("rust-rand" ,rust-rand-0.3)
-        ("rust-serde-derive" ,rust-serde-derive-1))))
-    (home-page "https://github.com/gentoo90/winreg-rs")
-    (synopsis "Rust bindings to the MS Windows Registry API")
-    (description "This package provides Rust bindings to MS Windows Registry
-API.")
-    (license license:expat)))
+        ("rust-serde-derive" ,rust-serde-derive-1))))))
 
 (define-public rust-winreg-0.6
   (package
@@ -50679,6 +54056,30 @@ is designed to be a very thin layer around Windows API to provide a safe Rusty
 API but without hiding any functionality.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-write-json-0.1
+  (package
+    (name "rust-write-json")
+    (version "0.1.2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "write-json" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1qxr1xwwyf7rd270rvjlcssm515pikf0sg70wpiymz4miy29l1h6"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page
+      "https://github.com/matklad/write-json")
+    (synopsis
+      "Simple {dependency,trait,macro}-less JSON serialization")
+    (description
+      "This package provides a simple {dependency,trait,macro}-less JSON
+serialization.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-ws2-32-sys-0.2
   (package
     (name "rust-ws2-32-sys")
@@ -50857,6 +54258,58 @@ to XDG Base Directory specification.")
     (license (list license:asl2.0
                    license:expat))))
 
+(define-public rust-xflags-macros-0.2
+  (package
+    (name "rust-xflags-macros")
+    (version "0.2.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "xflags-macros" version))
+        (file-name
+          (string-append name "-" version ".tar.gz"))
+        (sha256
+          (base32
+            "1jb2bq76kzzmq5rdyi3hzkq6x41l11fr1yn00f5ib5j9l4y7s0y8"))))
+    (build-system cargo-build-system)
+    (arguments
+      `(#:skip-build? #t
+        #:cargo-inputs
+        (("rust-proc-macro2" ,rust-proc-macro2-1))
+        #:cargo-development-inputs
+        (("rust-expect-test" ,rust-expect-test-1))))
+    (home-page "https://github.com/matklad/xflags")
+    (synopsis
+      "Private implementation details of xflags")
+    (description
+      "This package provides a private implementation details of xflags.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-xflags-0.2
+  (package
+    (name "rust-xflags")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xflags" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "12i0m43fmvwhlqid5xbr017c12j7jv3vlkjv04q428mpl3k6rbar"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-xflags-macros" ,rust-xflags-macros-0.2))))
+    (home-page "https://github.com/matklad/xflags")
+    (synopsis
+     "Moderately simple command line arguments parser")
+    (description
+     "This package provides a moderately simple command line arguments parser.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xml-rs-0.8
   (package
     (name "rust-xml-rs")
@@ -50960,6 +54413,53 @@ to XDG Base Directory specification.")
 parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-xshell-macros-0.1
+  (package
+    (name "rust-xshell-macros")
+    (version "0.1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xshell-macros" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0lkym5kfq446xymimxr226kppr3ynpi9n8iif32vrfbm5i5djzng"))))
+    (build-system cargo-build-system)
+    (arguments `(#:skip-build? #t))
+    (home-page "https://github.com/matklad/xshell")
+    (synopsis
+     "Private implementation detail of xshell crate")
+    (description
+     "This package provide a private implementation detail of xshell crate.")
+    (license (list license:expat license:asl2.0))))
+
+(define-public rust-xshell-0.1
+  (package
+    (name "rust-xshell")
+    (version "0.1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "xshell" version))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1iilg7cjgz3342f3na500dp3c371jk198qh053kfy57b84dvn5gb"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-xshell-macros" ,rust-xshell-macros-0.1))))
+    (home-page "https://github.com/matklad/xshell")
+    (synopsis
+     "Utilities for quick shell scripting in Rust")
+    (description
+     "This package provide a utilities for quick shell scripting in Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-xz2-0.1
   (package
     (name "rust-xz2")
@@ -51128,7 +54628,7 @@ implementation that works everywhere, even WASM!")
 (define-public rust-zip-0.5
   (package
     (name "rust-zip")
-    (version "0.5.9")
+    (version "0.5.13")
     (source
      (origin
        (method url-fetch)
@@ -51137,13 +54637,13 @@ implementation that works everywhere, even WASM!")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1i9axf7h9l04l1cy14js30svjb6zcira5yj1d4v42b14b93rca6c"))))
+         "0588z88sj37nj1clis1rf4fh794av0hwaiaihfrin9b19n24iawk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-bzip2" ,rust-bzip2-0.3)
+        ("rust-bzip2" ,rust-bzip2-0.4)
         ("rust-crc32fast" ,rust-crc32fast-1)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-thiserror" ,rust-thiserror-1)
@@ -51179,30 +54679,49 @@ implementation that works everywhere, even WASM!")
      "This package provides a library for parsing compiled zoneinfo files.")
     (license license:expat)))
 
-(define-public rust-zstd-0.6
+(define-public rust-zstd-0.8
   (package
     (name "rust-zstd")
-    (version "0.6.1+zstd.1.4.9")
+    (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 "18riavdrq4cy10ygvrxby87nxyxbazpy53qvavc0bwlqyxvmxrax"))))
+        (base32 "1gy2rc3hmqpzfkh9f5d395lhwjk8qwpll3gb73bznn2agd60k9sy"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.1)
         ("rust-tokio-io" ,rust-tokio-io-0.1)
-        ("rust-zstd-safe" ,rust-zstd-safe-3))))
+        ("rust-zstd-safe" ,rust-zstd-safe-4))))
     (home-page "https://github.com/gyscos/zstd-rs")
     (synopsis "Binding to the zstd compression library")
     (description
      "This package provides a binding to the zstd compression library.")
     (license license:expat)))
 
+(define-public rust-zstd-0.6
+  (package
+    (inherit rust-zstd-0.8)
+    (name "rust-zstd")
+    (version "0.6.1+zstd.1.4.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "zstd" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "18riavdrq4cy10ygvrxby87nxyxbazpy53qvavc0bwlqyxvmxrax"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-futures" ,rust-futures-0.1)
+        ("rust-tokio-io" ,rust-tokio-io-0.1)
+        ("rust-zstd-safe" ,rust-zstd-safe-3))))))
+
 (define-public rust-zstd-0.5
   (package
     (inherit rust-zstd-0.6)
@@ -51228,17 +54747,18 @@ implementation that works everywhere, even WASM!")
         ("rust-quickcheck" ,rust-quickcheck-0.6)
         ("rust-walkdir" ,rust-walkdir-2))))))
 
-(define-public rust-zstd-safe-3
+(define-public rust-zstd-safe-4
   (package
     (name "rust-zstd-safe")
-    (version "3.0.1+zstd.1.4.9")
+    (version "4.1.0+zstd.1.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "zstd-safe" version))
-       (file-name (string-append name "-" version ".tar.gz"))
+       (file-name
+        (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "133gassn5zy4vf0hhgsff3gxv1q3nc0bzi3qrqq7n4iqv6ycm1qk"))))
+        (base32 "1rssk1njcy9vz40ja0rpjyi9lbqnq2i2xx1h374s8p0qivvpa0yk"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -51252,6 +54772,24 @@ implementation that works everywhere, even WASM!")
 library.")
     (license (list license:expat license:asl2.0))))
 
+(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
+       (("rust-libc" ,rust-libc-0.2)
+        ("rust-zstd-sys" ,rust-zstd-sys-1))))))
+
 (define-public rust-zstd-safe-2
   (package
     (inherit rust-zstd-safe-3)
@@ -51274,7 +54812,7 @@ library.")
 (define-public rust-zstd-sys-1
   (package
     (name "rust-zstd-sys")
-    (version "1.4.20+zstd.1.4.9")
+    (version "1.6.0+zstd.1.5.0")
     (source
      (origin
        (method url-fetch)
@@ -51283,11 +54821,11 @@ library.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "13kc3crvqg021fya48jw0spfbxdli5anmry3w93r8bfgswrvgmgb"))))
+         "19rs3vvwlzr9v6qfmfxh43x99njmybpvysqf8xhpfhibjbcbwh91"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-       (("rust-bindgen" ,rust-bindgen-0.57)
+       (("rust-bindgen" ,rust-bindgen-0.58)
         ("rust-cc" ,rust-cc-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-pkg-config" ,rust-pkg-config-0.3))))
diff --git a/gnu/packages/cryptsetup.scm b/gnu/packages/cryptsetup.scm
index 4c4633fe0b..49b82090f0 100644
--- a/gnu/packages/cryptsetup.scm
+++ b/gnu/packages/cryptsetup.scm
@@ -52,7 +52,7 @@
        "--enable-libargon2"
        ;; The default is OpenSSL which provides better PBKDF performance.
        "--with-crypto_backend=gcrypt"
-       ;; GRUB as of 2.04 still can't read LUKS2 containers.
+       ;; GRUB 2.06 supports LUKS2, but does it reliably support all set-ups…?
        "--with-default-luks-format=LUKS1")))
    (native-inputs
     `(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index bbeb565657..230a36b23e 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -857,7 +857,7 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
 (define-public epson-inkjet-printer-escpr
   (package
     (name "epson-inkjet-printer-escpr")
-    (version "1.7.10")
+    (version "1.7.11")
     ;; XXX: This currently works.  But it will break as soon as a newer
     ;; version is available since the URLs for older versions are not
     ;; preserved.  An alternative source will be added as soon as
@@ -865,11 +865,11 @@ HP@tie{}LaserJet, and possibly other printers.  See @file{README} for details.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/68/"
-                           "34/82ca3e84f17410b5ec6818e5698524b1f42862cb/"
-                           "epson-inkjet-printer-escpr-1.7.10-1lsb3.2.tar.gz"))
+       (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/84/"
+                           "42/69bb076469542fe702ada5ea53a4ea4773d407b0/"
+                           "epson-inkjet-printer-escpr-1.7.11-1lsb3.2.tar.gz"))
        (sha256
-        (base32 "0j31w85gbi2g3ad316vw7azns382m2di6wazdbiyv9vix5gvb60g"))))
+        (base32 "0m21qks68697x7k6z0i1c8lcf9l5ap4mwc5519a086cmy9whslzf"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index e389d53bc7..60eeb8fad1 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
-;;; Copyright © 2015, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2019 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
@@ -61,7 +61,8 @@
              (sha256
               (base32
                "0jsrc97vbghvljic997r9nypc9qqddcil2lzvv032br8ahn5hr0g"))
-             (patches (search-patches "curl-use-ssl-cert-env.patch"))))
+             (patches (search-patches "curl-use-ssl-cert-env.patch"
+                                      "curl-7.77-tls-priority-string.patch"))))
    (build-system gnu-build-system)
    (outputs '("out"
               "doc"))                             ;1.2 MiB of man3 pages
diff --git a/gnu/packages/cvassistant.scm b/gnu/packages/cvassistant.scm
index f57806d734..3f3a6f7492 100644
--- a/gnu/packages/cvassistant.scm
+++ b/gnu/packages/cvassistant.scm
@@ -69,7 +69,7 @@
          (replace 'configure
            (lambda _ (invoke "qmake"))))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("quazip" ,quazip)
        ("zlib" ,zlib)))
     (home-page "https://cvassistant.sourceforge.io/")
diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e13c342342..9ec0480515 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2021 c4droid <c4droid@foxmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,7 +23,14 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system python)
-  #:use-module (gnu packages engineering))
+  #:use-module (gnu packages engineering)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages bioinformatics)      ;python-intervaltree
+  #:use-module (gnu packages emulators))
 
 (define-public ropgadget
   (package
@@ -44,3 +52,44 @@
 gadgets in binaries.  Some facilities are included for automatically generating
 chains of gadgets to execute system calls.")
     (license license:bsd-3)))
+
+(define-public pwntools
+  (package
+    (name "pwntools")
+    (version "4.4.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pwntools" version))
+       (sha256
+        (base32
+         "1qw7j0wwm1878aia08gyw5xljjr26qsbp45w65n4qff672sha5n5"))))
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f))                 ;XXX: needs a specific version of unicorn
+    (propagated-inputs
+     `(("capstone" ,capstone)
+       ("python-dateutil" ,python-dateutil)
+       ("python-intervaltree" ,python-intervaltree)
+       ("python-mako" ,python-mako)
+       ("python-packaging" ,python-packaging)
+       ("python-paramiko" ,python-paramiko)
+       ("python-psutil" ,python-psutil)
+       ("python-pyelftools" ,python-pyelftools)
+       ("python-pygments" ,python-pygments)
+       ("python-pyserial" ,python-pyserial)
+       ("python-pysocks" ,python-pysocks)
+       ("python-requests" ,python-requests)
+       ("ropgadget" ,ropgadget)
+       ("python-six" ,python-six)
+       ("python-sortedcontainers"
+        ,python-sortedcontainers)
+       ("unicorn" ,unicorn)))
+    (home-page "https://github.com/Gallopsled/pwntools")
+    (synopsis
+     "Capture-the-flag (CTF) framework and exploit development library")
+    (description
+     "Pwntools is a capture-the-flag (CTF) framework and exploit development library.
+Written in Python, it is designed for rapid prototyping and development, and
+intended to make exploit writing as simple as possible.")
+    (license license:expat)))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 919633a4e6..63f9656e2d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -101,6 +101,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages lisp-xyz)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages man)
   #:use-module (gnu packages maths)
@@ -2092,6 +2093,43 @@ a simpler and less verbose API for working with ODBC.  Common tasks should be
 easy, requiring concise and simple code.")
     (license license:expat)))
 
+(define-public nanodbc-for-irods
+  (package
+    (inherit nanodbc)
+    (arguments
+     `(#:tests? #false
+       #:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON"
+         ;; The tests require ODBC backends to be installed.
+         "-DNANODBC_DISABLE_TESTS=ON"
+         "-DCMAKE_CXX_COMPILER=clang++"
+         "-DCMAKE_CXX_FLAGS=-stdlib=libc++"
+         "-DCMAKE_EXE_LINKER_FLAGS=-lc++abi")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons (string-append (assoc-ref inputs "libcxx")
+                                             "/include/c++/v1")
+                              ;; Hide GCC's C++ headers so that they do not interfere with
+                              ;; the Clang headers.
+                              (delete (string-append gcc "/include/c++")
+                                      (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                    #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (properties `((hidden? . #true)))
+    (inputs
+     `(("unixodbc" ,unixodbc)
+       ("libcxx" ,libcxx+libcxxabi-6)
+       ("libcxxabi" ,libcxxabi-6)
+       ("clang" ,clang-6)))))
+
 (define-public unqlite
   (package
     (name "unqlite")
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index 5eca507a18..4973ce98af 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -140,14 +140,14 @@ in between these sequences may be different in both content and length.")
 (define-public liburcu
   (package
     (name "liburcu")
-    (version "0.12.2")
+    (version "0.13.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.lttng.org/files/urcu/"
                                   "userspace-rcu-" version ".tar.bz2"))
               (sha256
                (base32
-                "0yx69kbx9zd6ayjzvwvglilhdnirq4f1x1sdv33jy8bc9wgc3vsf"))))
+                "085s437nig6bdiv9im4k4qwqbrbnc4qw9flqi16jlb493az0vcnb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))                 ; for tests
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 2b1f7f0ad1..5ca9e128ff 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -438,12 +438,6 @@ intelligible and easily correctable.")
        ("ncurses" ,ncurses)
        ("readline" ,readline)
        ("zlib" ,zlib)))
-    ;; If you use Guix to package and install dictionary data,
-    ;; you need this variable to load them.
-    (native-search-paths
-     (list (search-path-specification
-            (variable "STARDICT_DATA_DIR")
-            (files '("share/stardict/dic")))))
     (home-page "https://dushistov.github.io/sdcv/")
     (synopsis "Console version of StarDict")
     (description "sdcv is simple text-based utility for work with dictionaries
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index c31afee627..ccda71b268 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -358,14 +358,14 @@ output without any plausibility checks.")
 (define-public gptfdisk
   (package
     (name "gptfdisk")
-    (version "1.0.7")
+    (version "1.0.8")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/gptfdisk/gptfdisk/"
                           version "/gptfdisk-" version ".tar.gz"))
       (sha256
-       (base32 "1h1871gwlq05gdc2wym98ghfmq6pn5lh8g5cqy3r49svz2vh8h3m"))))
+       (base32 "1py6klp1b7rni1qjj110snyyxafhx092carlii5vrnh4y1b9ilcm"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 264ad34ba3..7ae41a674e 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -80,7 +80,7 @@
        ("libxcb" ,libxcb)
        ("libxkbcommon" ,libxkbcommon)
        ("linux-pam" ,linux-pam)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
 
        ;; Some user-defined themes use QtQuick components internally.  Adding
diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index 6423eb124f..96071b8da1 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -119,7 +119,7 @@ utilities.")
        ("glib" ,glib)
        ("libxt" ,libxt)
        ("libtiff" ,libtiff)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index a0388a1419..199b876369 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -101,7 +101,7 @@
         (base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
        (patches
         (search-patches
-         ;; To create make-flag vairables,
+         ;; To create make-flag variables,
          ;; for splitting installation of drill and examples.
          "ldns-drill-examples.patch"))))
     (build-system gnu-build-system)
@@ -769,16 +769,16 @@ served by AS112.  Stub and forward zones are supported.")
 (define-public yadifa
   (package
     (name "yadifa")
-    (version "2.4.2")
+    (version "2.5.0")
     (source
-     (let ((build "9997"))
+     (let ((build "10188"))
        (origin
          (method url-fetch)
          (uri
           (string-append "https://www.yadifa.eu/sites/default/files/releases/"
                          "yadifa-" version "-" build ".tar.gz"))
          (sha256
-          (base32 "0f1by2c7l39qpsar5nh98f3xypmn2ikv7wr557wmva6m0lwbl3q0")))))
+          (base32 "05ps6fif3sqn6yzkprnp1cm81f3ja4vqc0r6vh7nvzl73gv4rp2w")))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -803,7 +803,8 @@ served by AS112.  Stub and forward zones are supported.")
        (list "--sysconfdir=/etc"
              "--localstatedir=/var"
              "--enable-shared" "--disable-static"
-             "--disable-build-timestamp"))) ; build reproducibly
+             "--disable-build-timestamp"    ; build reproducibly
+             "--enable-tcp-manager")))
     (home-page "https://www.yadifa.eu/")
     (synopsis "Authoritative DNS name server")
     (description "YADIFA is an authoritative name server for the @dfn{Domain
@@ -1236,7 +1237,7 @@ known public suffixes.")
 (define-public maradns
   (package
     (name "maradns")
-    (version "3.5.0007")
+    (version "3.5.0020")
     (source
      (origin
        (method url-fetch)
@@ -1244,7 +1245,7 @@ known public suffixes.")
                            (version-major+minor version) "/"
                            version "/maradns-" version ".tar.xz"))
        (sha256
-        (base32 "0bc19xylg4whww9qaj5i4izwxcrh0c0ja7l1pfcn2la02hlvg1a6"))))
+        (base32 "1qgabw6y2bwy6y88dikis62k789i0xh7iwxan8jmqpzvksqwjfgw"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; need to be root to run tests
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index 6083ed780b..8bac1b89ce 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -382,12 +382,12 @@ built-in registry server of Docker.")
                (("DefaultInitBinary = .*")
                 (string-append "DefaultInitBinary = \""
                                (assoc-ref inputs "tini")
-                               "/bin/tini\"\n")))
+                               "/bin/tini-static\"\n")))
              (substitute* "daemon/config/config_common_unix_test.go"
                (("expectedInitPath: \"docker-init\"")
                 (string-append "expectedInitPath: \""
                                (assoc-ref inputs "tini")
-                               "/bin/tini\"")))
+                               "/bin/tini-static\"")))
              (substitute* "vendor/github.com/moby/buildkit/executor/runcexecutor/executor.go"
                (("var defaultCommandCandidates = .*")
                 (string-append "var defaultCommandCandidates = []string{\""
@@ -716,7 +716,7 @@ defined in a per-project configuration file.")
 (define-public tini
   (package
     (name "tini")
-    (version "0.18.0")
+    (version "0.19.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -725,19 +725,14 @@ defined in a per-project configuration file.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn"))))
+                "1hnnvjydg7gi5gx6nibjjdnfipblh84qcpajc08nvr44rkzswck4"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                    ;tests require a Docker daemon
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'disable-static-build
-                    ;; Disable the static build as it fails to install, with
-                    ;; the error: "No valid ELF RPATH or RUNPATH entry exists
-                    ;; in the file".
-                    (lambda _
-                      (substitute* "CMakeLists.txt"
-                        ((".*tini-static.*") ""))
-                      #t)))))
+       ;; 'tini-static' is a static binary, which leads CMake to fail with
+       ;; ‘file RPATH_CHANGE could not write new RPATH: ...’.  Clear
+       ;; CMAKE_INSTALL_RPATH to avoid that problem.
+       #:configure-flags '("-DCMAKE_INSTALL_RPATH=")))
     (home-page "https://github.com/krallin/tini")
     (synopsis "Tiny but valid init for containers")
     (description "Tini is an init program specifically designed for use with
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index 15a4c1dffc..4313af387e 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -334,7 +334,7 @@ local system.")
       (inputs
        `(("libarchive" ,libarchive)
          ("sqlite" ,sqlite)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtdeclarative" ,qtdeclarative)
          ("qtwebchannel" ,qtwebchannel)
          ("qtwebengine" ,qtwebengine)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 708ef474fa..1fcee832a3 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -55,6 +55,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages music)
+  #:use-module (gnu packages pantheon)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -146,7 +147,7 @@ with Microsoft Compiled HTML (CHM) files")
     (build-system python-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qtbase" ,qtbase) ; for qmake
+       ("qtbase" ,qtbase-5) ; for qmake
        ("python-flake8" ,python-flake8)
        ("python-pyqt-builder" ,python-pyqt-builder)
        ("xdg-utils" ,xdg-utils)))
@@ -474,7 +475,7 @@ following formats:
 (define-public cozy
   (package
     (name "cozy")
-    (version "0.9.4")
+    (version "1.0.3")
     (source
      (origin
        (method git-fetch)
@@ -483,7 +484,7 @@ following formats:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "182y6mkr39qgwk1n33nhfngqjyadrijiyfkzxydx9hfch302i8wz"))))
+        (base32 "0m0xiqpb87pwr3fhy0a4qxg67yjhwchcxj3x2anyy0li4inryxag"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -530,12 +531,14 @@ following formats:
        ("python" ,python-wrapper)))
     (inputs
      `(("file" ,file)
+       ("granite" ,granite)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gst-libav" ,gst-libav)
        ("gst-plugins-bad" ,gst-plugins-bad)
        ("gst-plugins-good" ,gst-plugins-good)
        ("gst-plugins-ugly" ,gst-plugins-ugly)
        ("gtk+" ,gtk+)
+       ("libgee" ,libgee)
        ("libhandy" ,libhandy)
        ("python-distro" ,python-distro)
        ("python-gst" ,python-gst)
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 6fbe0f2b5d..d815c6e689 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -191,7 +191,7 @@ of categories with some of the activities available in that category.
     (inputs
      `(("openssl" ,openssl)
        ("python" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtmultimedia" ,qtmultimedia)
@@ -260,7 +260,7 @@ Currently available boards include:
                ;; Recreate Makefile
                (invoke "qmake")))))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)))
     (home-page "https://www.tipp10.com/")
     (synopsis "Touch typing tutor")
@@ -638,7 +638,7 @@ Portuguese, Spanish and Italian.")
          (replace 'configure
            (lambda _ (invoke "qmake" "fet.pro"))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://www.lalescu.ro/liviu/fet/")
     (synopsis "Timetabling software")
     (description
@@ -654,14 +654,14 @@ hours.")
 (define-public klavaro
   (package
     (name "klavaro")
-    (version "3.12")
+    (version "3.13")
     (source
       (origin
         (method url-fetch)
         (uri (string-append "mirror://sourceforge/klavaro/klavaro-"
                             version ".tar.bz2"))
         (sha256
-         (base32 "0ymrmgllyjk9wp1f1ayw51xc3myar8ld9a5531wdbrym0xzy4l64"))))
+         (base32 "0z6c3lqikk50mkz3ipm93l48qj7b98lxyip8y6ndg9y9k0z0n878"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
@@ -712,7 +712,7 @@ language and very flexible regarding to new or unknown keyboard layouts.")
        ("kxmlgui" ,kxmlgui)
        ("libxcb" ,libxcb)
        ("libxkbfile" ,libxkbfile)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtquickcontrols2" ,qtquickcontrols2)
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 861544ee22..0e985c9750 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -277,7 +277,7 @@ format support.")
        ("glibmm" ,glibmm)
        ("libsigrok" ,libsigrok)
        ("libsigrokdecode" ,libsigrokdecode)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://www.sigrok.org/wiki/PulseView")
     (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok")
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a2e4455c8e..1cc4a8de66 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -78,7 +78,7 @@
 ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2020, 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 Peng Mei Yu <i@pengmeiyu.com>
-;;; Copyright © 2020 Niklas Eklund <niklas.eklund@posteo.net>
+;;; Copyright © 2020, 2021 Niklas Eklund <niklas.eklund@posteo.net>
 ;;; Copyright © 2020 Marco Grassi <marco.au.grassi98@protonmail.com>
 ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org>
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
@@ -405,7 +405,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
 (define-public emacs-vc-hgcmd
   (package
     (name "emacs-vc-hgcmd")
-    (version "1.13")
+    (version "1.14")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -414,7 +414,7 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14c2brvw6vnf1h3lbpap4jh5d7mjnzxrbny4jk77832v09mj2ria"))))
+                "1mm8lnwii53j32v54aahl8sf3ciwymrvc1rgy4nw2m7hcrnjsb78"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/muffinmad/emacs-vc-hgcmd")
     (synopsis "Version control (VC) backend for the Mercurial command server")
@@ -532,6 +532,26 @@ buffers, directory trees, or the web.")
 @command{hg histedit} for editing the commit history.")
       (license license:gpl3+))))
 
+(define-public emacs-package-build
+  (package
+    (name "emacs-package-build")
+    (version "2.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/melpa/package-build")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1412pjghyvzkdlsrrs0ql30vw591bhyk1wlbf49f15dzjbspx3w0"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/melpa/package-build")
+    (synopsis "Tools for assembling en Emacs package archive")
+    (description "This package provides tools for assembling an @acronym{ELPA,
+Emacs package archive}.")
+    (license license:gpl3+)))
+
 (define-public emacs-paredit
   (package
     (name "emacs-paredit")
@@ -2030,14 +2050,14 @@ incrementally confined in Isearch manner.")
 (define emacs-emms-print-metadata
   (package
     (name "emacs-emms-print-metadata")
-    (version "7.2")
+    (version "7.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "emms-" version ".tar"))
        (sha256
-        (base32 "11vqqh9rnzibsfw7wx62rgzl8i8ldpf0hv1sj43nhl5c6dlc8d5z"))))
+        (base32 "153j76jfnh01b4pkkpyxfh83rl975rx0mh7mx4nnf83qd4dzkkd4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("emms-print-metadata")
@@ -2524,14 +2544,14 @@ as a library for other Emacs packages.")
 (define-public emacs-auctex
   (package
     (name "emacs-auctex")
-    (version "13.0.11")
+    (version "13.0.12")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "auctex-" version ".tar"))
        (sha256
-        (base32 "0sy4f1n38q58vyzw5l0f80ci3j99rb25gbwj0frl0pglfmgzl44k"))))
+        (base32 "0fx3l6yyq63mlnapxiqpdhi5l314r3aj63404nly6hcdvc28g9nm"))))
     (build-system emacs-build-system)
     ;; We use 'emacs' because AUCTeX requires dbus at compile time
     ;; ('emacs-minimal' does not provide dbus).
@@ -3913,7 +3933,7 @@ files and directories.")
 (define-public emacs-fountain-mode
   (package
     (name "emacs-fountain-mode")
-    (version "3.4.1")
+    (version "3.5.0")
     (source
      (origin
        (method git-fetch)
@@ -3922,7 +3942,7 @@ files and directories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14zhbcfqyp093kd1bxl7f2hf5l5995qmgpmnxfgw9qcc781crj73"))))
+        (base32 "0xlg5b0sa4qbv68sza23fr5khv36860jbhzfbcqcw1d420xllryx"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/rnkn/fountain-mode")
     (synopsis "Major mode for screenwriting in Fountain markup")
@@ -5554,6 +5574,31 @@ errors.")
 the current Cargo project.")
     (license license:gpl3+)))
 
+(define-public emacs-flycheck-package
+  (package
+    (name "emacs-flycheck-package")
+    (version "0.14")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/flycheck-package")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "00py39n1383761wq6wp194pvyk94ydqdbxj9kl64g9jnipkp7849"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-flycheck" ,emacs-flycheck)
+       ("emacs-package-lint" ,emacs-package-lint)))
+    (home-page "https://github.com/purcell/flycheck-package")
+    (synopsis "Flycheck checker for elisp package metadata")
+    (description
+     "This library provides a flycheck checker for the metadata in Emacs Lisp
+files which are intended to be packages.")
+    (license license:gpl3+)))
+
 (define-public emacs-elisp-demos
   (package
     (name "emacs-elisp-demos")
@@ -7570,28 +7615,25 @@ It is built on top of the custom theme support in Emacs 24 or later.")
     (license license:gpl3+)))
 
 (define-public emacs-moe-theme-el
-  (let ((commit "6e086d855d6bb446bbd1090742815589a81a915f")
-        (version "1.0")
-        (revision "1"))
-    (package
-      (name "emacs-moe-theme-el")
-      (version (git-version version revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/kuanyui/moe-theme.el")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0xj4wfd7h4jqnr193pizm9frf6lmwjr0dsdv2l9mqh9k691z1dnc"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/kuanyui/moe-theme.el")
-      (synopsis "Anime-inspired color themes")
-      (description
-       "This package provides vibrant color schemes with light and dark
+  (package
+    (name "emacs-moe-theme-el")
+    (version "1.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/kuanyui/moe-theme.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14higsv6h0pka90gr25a3yxh95xn65l6qxb39mmdzkfdlnzsg664"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/kuanyui/moe-theme.el")
+    (synopsis "Anime-inspired color themes")
+    (description
+     "This package provides vibrant color schemes with light and dark
 variants.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-solarized-theme
   (package
@@ -8649,8 +8691,8 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
 ;; pick a more recent snapshot of the repository, see
 ;; https://github.com/Yevgnen/ivy-rich/pull/80.
 (define-public emacs-ivy-rich
-  (let ((commit "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3")
-        (revision "1"))
+  (let ((commit "600b8183ed0be8668dcc548cc2c8cb94b001363b")
+        (revision "2"))
     (package
       (name "emacs-ivy-rich")
       (version (git-version "0.1.6" revision commit))
@@ -8662,7 +8704,7 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"))))
+          (base32 "1dv6vr7fv32v5m04zdy02sdajpvrnpc4i3pbh2dwfv73ff8d8yxm"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-ivy" ,emacs-ivy)))
@@ -12463,6 +12505,36 @@ snippets.  When this package is installed, the extra snippets it provides are
 automatically made available to YASnippet.")
     (license license:gpl3+)))
 
+(define-public emacs-doom-snippets
+  ;; Use the latest commit, as there are no tagged releases.  Version is
+  ;; extracted from main file.
+  (let ((release "1.1.0")
+        (revision "0")
+        (commit "bc613f448eed1bd363e61c41691a61e9fd139534"))
+    (package
+      (name "emacs-doom-snippets")
+      (version (git-version release revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hlissner/doom-snippets")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0n4b2pr0gpn8vb2n1rckdq4jk9sj995a62yxk6z2ygw5ad7pkj8f"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:include (cons* "^.*\\/" %default-include)))
+      (propagated-inputs
+       `(("emacs-yasnippet" ,emacs-yasnippet)))
+      (home-page "https://github.com/hlissner/doom-snippets")
+      (synopsis "Doom Emacs' snippet library")
+      (description
+       "This package provides Yasnippets snippets for Doom Emacs.  It also
+exposes a small API to assist in writing your own snippets.")
+      (license license:expat))))
+
 (define-public emacs-helm-c-yasnippet
   (let ((commit "65ca732b510bfc31636708aebcfe4d2d845b59b0")
         (revision "1"))
@@ -13279,13 +13351,13 @@ containing words from the Rime project.")
 (define-public emacs-pyim
   (package
     (name "emacs-pyim")
-    (version "3.7.9")
+    (version "3.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
        (sha256
-        (base32 "00ff1izdwcy53dcwpdn18wwndnw2jsw4bhg8gkqaa60xm468xzkl"))))
+        (base32 "19rsy41l588aijyi81jmqz9icl8r7ifh46yyl2dl99qz5rw00hlp"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -13300,17 +13372,38 @@ containing words from the Rime project.")
 shuangpin, wubi and cangjie.")
     (license license:gpl2+)))
 
+(define-public emacs-reverse-im
+  (package
+    (name "emacs-reverse-im")
+    (version "0.0.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/a13/reverse-im.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "05k2zp2hldzq5h6nl8gx79dd8lvfn507ad4x3naichdqgn2013nn"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/a13/reverse-im.el")
+    (synopsis "Reverse mapping for non-default system layouts")
+    (description
+     "Reverse IM provides a minor mode that toggles translations for all input
+methods from a given list.")
+    (license license:gpl3+)))
+
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "posframe-" version ".tar"))
        (sha256
-        (base32 "0c3lnrydsysv8j25brgc0cckf1hz54yhkginncmw81y1ia43rqmx"))))
+        (base32 "0i2pw90gw9zb22gj8yyvcp3b2k1bxxhbjj0idvr5iz1vd9023bc6"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
@@ -13618,7 +13711,7 @@ on mouse-control.")
 (define-public emacs-gnugo
   (package
     (name "emacs-gnugo")
-    (version "3.1.0")
+    (version "3.1.1")
     (source
      (origin
        (method url-fetch)
@@ -13626,7 +13719,7 @@ on mouse-control.")
                            version ".tar"))
        (sha256
         (base32
-         "0xpjvs250gg71qwapdsb1hlc61gs0gpkjds01srf784fvyxx2gf1"))))
+         "035rgiz42q042h41l4cvf0hr8igy2vyn3s1hsl2pgh2dq2jjylv6"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -15344,7 +15437,7 @@ Features:
 (define-public emacs-evil-matchit
   (package
     (name "emacs-evil-matchit")
-    (version "2.3.11")
+    (version "2.3.12")
     (source
      (origin
        (method git-fetch)
@@ -15353,7 +15446,7 @@ Features:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1990g1b6v0i7jaiv35bdssdn601rjifzg4fy9s3sxk0drqm1xiss"))))
+        (base32 "0l4ash907d91vccqdxjz1v5spd8f4va0vrdri6h9y1qc67mjlsph"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-evil" ,emacs-evil)))
@@ -16298,7 +16391,7 @@ official @command{sqlite3} executable to access SQL database.")
 (define-public emacs-closql
   (package
     (name "emacs-closql")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
      (origin
        (method git-fetch)
@@ -16308,7 +16401,7 @@ official @command{sqlite3} executable to access SQL database.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01l4w3wc7rm7mca8pbkyz0yrks4z8i00ppy5c4bmrnn6akf7h9ih"))))
+         "1ghqxnn39i032ibm5sbnv67r2dd2hgfnfpqbmb8wzg9wc6smnacq"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-emacsql" ,emacs-emacsql)))
@@ -16325,7 +16418,7 @@ add any additional instance slots.")
 (define-public emacs-epkg
   (package
     (name "emacs-epkg")
-    (version "3.3.0")
+    (version "3.3.1")
     (source
      (origin
        (method git-fetch)
@@ -16335,7 +16428,7 @@ add any additional instance slots.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03zsysj78w43q902wi9dhck64q9va247avr6fhdw8ynf2lvb78d3"))))
+         "0z9sz9ydfjzhawh4qip41h3vid1lslaf0h14hkjz9kx8fkrzib8a"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-closql" ,emacs-closql)
@@ -16827,7 +16920,7 @@ interactive commands and functions, such as @code{completing-read}.")
 (define-public emacs-org-ql
   (package
     (name "emacs-org-ql")
-    (version "0.5")
+    (version "0.5.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -16835,7 +16928,7 @@ interactive commands and functions, such as @code{completing-read}.")
                     (commit version)))
               (sha256
                (base32
-                "14nsy2dbln3m5bpqzyfqycn18sb3qh407hjbkk1l0x2nqs3lrkqn"))
+                "0b3xxnbhnrz0263fnrrdbs3gif4pjkfws4mxkfqqpg0fc8azp2rx"))
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
@@ -16864,8 +16957,7 @@ interactive commands and functions, such as @code{completing-read}.")
                ;; This test fails on Emacs 27.1 (see:
                ;; https://github.com/alphapapa/org-super-agenda/issues/183).
                (("it \"Can search buffer containing the link\"" all)
-                (string-append "x" all)))
-             #t)))))
+                (string-append "x" all))))))))
     (home-page "https://github.com/alphapapa/org-ql/")
     (synopsis "Query language for Org buffers")
     (description "This package provides a Lispy query language for Org
@@ -21202,6 +21294,68 @@ youtube-dl backends are supported.  It is possible to create download profiles
 depending on the downloaded URL.")
     (license license:gpl3+)))
 
+(define-public emacs-ytel
+  ;; No tagged releases.  Using version from main file.
+  (let ((commit "d40bc7ead8d4d7e4d16b03b66a93d63bef51cc5f")
+        (revision "0"))
+    (package
+      (name "emacs-ytel")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/grastello/ytel")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pxzfsxzrpv59dssrgx2mmwkm6rzk49ffjkgsa3wks7rdyfil3kf"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-exec-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((curl (assoc-ref inputs "curl")))
+                 (substitute* "ytel.el"
+                   (("\"curl\"") (string-append "\"" curl "/bin/curl\"")))))))))
+      (inputs
+       `(("curl" ,curl)))
+      (home-page "https://github.com/grastello/ytel")
+      (synopsis "Youtube front-end for Emacs")
+      (description
+       "This package provides a major mode to search YouTube videos via an
+Elfeed-like buffer.  Information about videos displayed in this buffer can be
+extracted and manipulated by user-defined functions to do various things such
+as playing them in some video player, or downloading them.")
+      (license license:gpl3+))))
+
+(define-public emacs-ytel-show
+  ;; No tagged releases.  Version extracted from main file.
+  (let ((commit "8b999484eb447ecdb741b24cbef2b5a7260a53e6")
+        (revision "0"))
+    (package
+      (name "emacs-ytel-show")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xFA25E/ytel-show")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0nhgzfzq1bgpbdbljx5z2hzr8ia7ybsyvvr66yj4klz0zj97rghj"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-ytel" ,emacs-ytel)))
+      (home-page "https://github.com/xFA25E/ytel-show")
+      (synopsis "Browse YouTube in Emacs")
+      (description
+       "This package provides an Emacs interface for browsing YouTube videos
+and comments.")
+      (license license:gpl3+))))
+
 (define-public emacs-org-web-tools
   (package
     (name "emacs-org-web-tools")
@@ -23237,7 +23391,7 @@ as Emacs Lisp.")
 (define-public emacs-transient
   (package
     (name "emacs-transient")
-    (version "0.3.4")
+    (version "0.3.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -23246,7 +23400,7 @@ as Emacs Lisp.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "16z0j69sk7k51sd1vri3y2v0xjj0w7wpf5mmwnsxp8y6d3m0yjbv"))))
+                "0wzfnzv2304a737zwp163aajjhm8i3ix9v7palgg1r3jskvbghmw"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #f                      ;no test suite
@@ -23277,7 +23431,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
 (define-public emacs-forge
   (package
      (name "emacs-forge")
-     (version "0.2.0")
+     (version "0.2.1")
      (source
       (origin
         (method git-fetch)
@@ -23287,7 +23441,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "139pndj9l9aifnvv2ak5zwf5gzwhp3m6dfpw1avf4vkh1zywzwa0"))))
+          "0j28vc0q1h36pk0y2nidnlsc2y7n0vpfrd8civiv1zp8z0jwfyc9"))))
      (build-system emacs-build-system)
      (native-inputs
       `(("texinfo" ,texinfo)))
@@ -25963,7 +26117,7 @@ Telegram messaging platform.")
 (define-public emacs-doom-modeline
   (package
     (name "emacs-doom-modeline")
-    (version "3.1.1")
+    (version "3.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -25971,7 +26125,7 @@ Telegram messaging platform.")
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "1dkgh87sv25mdlzdfihp6gp0asvwplx9yrn7nfsqzsfc3kpajkck"))
+                "1gfkaxga919a1a19dhpbby95l8dixb1278g5d7iadjf2i3j0p3l0"))
               (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (arguments
@@ -26290,14 +26444,14 @@ interface.")
 (define-public emacs-ivy-posframe
   (package
     (name "emacs-ivy-posframe")
-    (version "0.6.0")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ivy-posframe-" version ".tar"))
        (sha256
-        (base32 "07dzglrcdl54lkznyphw97xwd9bcwzdcgzkav0vqfk7f5cwh1wkf"))))
+        (base32 "1nay2sfbwm2fkp3f1y89innd9h6j3q70q9y4yddrwa69cxlj9m23"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 9b22b56369..ca935036d4 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -276,7 +276,7 @@ SuperCPU.")
          ("openal" ,openal)
          ("pugixml" ,pugixml)
          ("pulseaudio" ,pulseaudio)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("sdl2" ,sdl2)
          ("sfml" ,sfml)
          ("soil" ,soil)
@@ -376,7 +376,7 @@ older games.")
        #:tests? #f))    ; test suite wants mips toolchain
     (inputs
      `(("elfutils" ,elfutils)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://github.com/cvut/QtMips")
     (synopsis "MIPS CPU emulator")
     (description "This package contains a MIPS CPU emulator.  The simulator
@@ -620,7 +620,7 @@ The following systems are supported:
               ("mesa" ,mesa)
               ("minizip" ,minizip)
               ("ncurses" ,ncurses)
-              ("qtbase" ,qtbase)
+              ("qtbase" ,qtbase-5)
               ("qtmultimedia" ,qtmultimedia)
               ("sdl2" ,sdl2)
               ("sqlite" ,sqlite)
@@ -1379,7 +1379,7 @@ as RetroArch.")
        ("openal" ,openal)
        ("pulseaudio" ,pulseaudio)
        ("python" ,python)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sdl" ,sdl2)
        ("udev" ,eudev)
        ("vulkan-loader" ,vulkan-loader)
@@ -1799,7 +1799,7 @@ This is a part of the TiLP project.")
        ("pugixml" ,pugixml)
        ("pulseaudio" ,pulseaudio)
        ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("rapidjson" ,rapidjson)
        ("sdl" ,(sdl-union (list sdl2 sdl2-ttf)))
        ("sqlite" ,sqlite)
@@ -1998,6 +1998,8 @@ from various forks of Gens, and improved platform portability.")
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags (list "-C" "bsnes"
+                          ;; Remove march=native
+                          "local=false"
                           (string-append "prefix=" (assoc-ref %outputs "out")))
        #:tests? #f                      ; No tests.
        #:phases (modify-phases %standard-phases
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 338510d813..e6e1382380 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -201,7 +201,7 @@
      `(("boost" ,boost)
        ("muparser" ,muparser)
        ("freetype" ,freetype)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -701,7 +701,7 @@ multipole-accelerated algorithm.")
                        (string-append "PREFIX=" out)
                        "phoenix.pro")))))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtserialport" ,qtserialport)
        ("qtsvg" ,qtsvg)
        ("libgit2" ,libgit2)
@@ -834,7 +834,7 @@ fonts to gEDA.")
       (inputs
        `(("boost" ,boost)
          ("libpng" ,libpng)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("eigen" ,eigen)
          ("guile" ,guile-3.0)))
       (home-page "https://libfive.com")
@@ -1683,31 +1683,18 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
   ;; See <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#236>.
   (package
     (name "libngspice")
-    (version "28")
-    (source (origin
-              (method url-fetch)
-              (uri (list
-                     (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
-                                    version "/ngspice-" version ".tar.gz")
-                     (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
-                                    "old-releases/" version
-                                    "/ngspice-" version ".tar.gz")))
-              (sha256
-               (base32
-                "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l"))
-              (modules '((guix build utils)))
-              ;; We remove the non-free cider and build without it.
-              (snippet
-               '(begin
-                  (delete-file-recursively "src/ciderlib")
-                  (delete-file "src/ciderinit")
-                  (substitute* "configure"
-                    (("src/ciderlib/Makefile") "")
-                    (("src/ciderlib/input/Makefile") "")
-                    (("src/ciderlib/support/Makefile") "")
-                    (("src/ciderlib/oned/Makefile") "")
-                    (("src/ciderlib/twod/Makefile") ""))
-                  #t))))
+    (version "34")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list
+             (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
+                            version "/ngspice-" version ".tar.gz")
+             (string-append "mirror://sourceforge/ngspice/ng-spice-rework/"
+                            "old-releases/" version
+                            "/ngspice-" version ".tar.gz")))
+       (sha256
+        (base32 "1dfpkgkwmgwhq8dnbb8dh28cfap6rw0yywkhmxr4jxclcvygyqr2"))))
     (build-system gnu-build-system)
     (arguments
      `(;; No tests for libngspice exist.
@@ -1718,14 +1705,12 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
          (add-after 'unpack 'patch-timestamps
            (lambda _
              (substitute* "configure"
-               (("`date`") "Thu Jan  1 00:00:01 UTC 1970"))
-             #t))
+               (("`date`") "Thu Jan  1 00:00:01 UTC 1970"))))
          (add-after 'unpack 'delete-program-manuals
            (lambda _
              (substitute* "man/man1/Makefile.in"
                (("^man_MANS = ngspice\\.1 ngnutmeg\\.1 ngsconvert\\.1 ngmultidec\\.1")
-                "man_MANS = "))
-             #t))
+                "man_MANS = "))))
          (add-after 'install 'delete-script-files
            (lambda* (#:key outputs #:allow-other-keys)
              (delete-file-recursively
@@ -1733,6 +1718,7 @@ high-performance parallel differential evolution (DE) optimization algorithm.")
                              "/share/ngspice/scripts")))))
        #:configure-flags
        (list "--enable-openmp"
+             "--enable-ciderlib"
              "--enable-xspice"
              "--with-ngshared"
              "--with-readline=yes")))
@@ -1752,6 +1738,7 @@ provides code modeling support and simulation of digital components through
 an embedded event driven algorithm.")
     (license (list license:lgpl2.0+ ; code in frontend/numparam
                    (license:non-copyleft "file:///COPYING") ; spice3 bsd-style
+                   license:bsd-3 ; ciderlib
                    license:public-domain)))) ; xspice
 
 (define-public ngspice
@@ -1768,16 +1755,7 @@ an embedded event driven algorithm.")
              (lambda _
                (substitute* "src/Makefile.in"
                  (("^SUBDIRS = misc maths frontend spicelib include/ngspice")
-                  "SUBDIRS = misc maths frontend spicelib"))
-               #t))
-           (add-after 'install 'delete-cmpp-dlmain
-             (lambda* (#:key outputs #:allow-other-keys)
-               (for-each (lambda (file)
-                           (delete-file
-                            (string-append (assoc-ref outputs "out")
-                                           file)))
-                         '("/bin/cmpp" "/share/ngspice/dlmain.c"))
-               #t))
+                  "SUBDIRS = misc maths frontend spicelib"))))
            (delete 'delete-program-manuals)
            (delete 'delete-script-files)))))
     (inputs
@@ -2047,7 +2025,7 @@ parallel computing platforms.  It also supports serial execution.")
         (base32 "1b5dkanz3q0y5ag80w0l85hn7axrachb5m9zvyv4zvzrfy09wa88"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
     (native-inputs
@@ -2209,7 +2187,7 @@ simulation.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("openssl" ,openssl)
        ;; Depends on radare2 4.5.1 officially, builds and works fine with
@@ -2288,7 +2266,7 @@ specification can be downloaded at @url{http://3mf.io/specification/}.")
        ("mpfr" ,mpfr)
        ("opencsg" ,opencsg)
        ("qscintilla" ,qscintilla)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)))
     (native-inputs
      `(("bison" ,bison)
@@ -2420,7 +2398,7 @@ comments.")))
        ("python-pyyaml" ,python-pyyaml)
        ("python-shiboken-2" ,python-shiboken-2)
        ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtwebkit" ,qtwebkit)
        ("qtx11extras" ,qtx11extras)
@@ -2700,7 +2678,7 @@ export filters.")
                (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)
        ("qtxmlpatterns" ,qtxmlpatterns)
        ("mesa" ,mesa)
diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm
index 80bfbd8c84..c602789b45 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -88,7 +88,7 @@
        ("libintl" ,intltool)
        ("libxkbcommon" ,libxkbcommon)))
     (propagated-inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (synopsis "Fcitx Qt5 Input Context")
     (description "This package provides a Qt5 frontend for fcitx.")
     (home-page "https://github.com/fcitx/fcitx-qt5/")
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index a01eacb7cb..737f47f20f 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -87,7 +87,7 @@ client.")
 (define-public fcitx5
   (package
     (name "fcitx5")
-    (version "5.0.5")
+    (version "5.0.8")
     (source
      (origin
        (method url-fetch)
@@ -95,7 +95,7 @@ client.")
              "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
              version "_dict.tar.xz"))
        (sha256
-        (base32 "16j716xawbszkb3fxzpdza1a4czh0fvkysikjc9bfyvbwp72p6an"))))
+        (base32 "0536sjpgjlg0bf8imz4jf9bdsp7fhm09bkssddji56cc9mgdxx82"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -133,7 +133,8 @@ client.")
        ("xcb-util-wm" ,xcb-util-wm)
        ("xkeyboard-config" ,xkeyboard-config)))
     (native-inputs
-     `(("extra-cmake-modules" ,extra-cmake-modules)
+     `(("gcc" ,gcc-9)                   ; for #include <charconv>
+       ("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
     (native-search-paths
      (list (search-path-specification
@@ -147,7 +148,7 @@ client.")
 (define-public fcitx5-lua
   (package
     (name "fcitx5-lua")
-    (version "5.0.2")
+    (version "5.0.5")
     (source
      (origin
        (method url-fetch)
@@ -155,7 +156,7 @@ client.")
              "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
              version ".tar.xz"))
        (sha256
-        (base32 "0y5yc9102bz681f4wj6xqjxmfdmrshz3fhf39pa61718hkyy9lih"))))
+        (base32 "0f3raxzkq0nwdfpc9hxvg65vga09gznjjgy9dr6jlkamzx8zlyw9"))))
     (build-system cmake-build-system)
     (inputs
      `(("fcitx5" ,fcitx5)
@@ -172,14 +173,14 @@ client.")
 (define-public libime
   (package
     (name "libime")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
                            version "_dict.tar.xz"))
        (sha256
-        (base32 "1s8gzpzyn16pg9gm7kw1nhl09drdndi6j4mjam14ymqsrfsdqr1r"))))
+        (base32 "06smx1kqq3qh0xra8070cjfhw79hcm0vksrswk05wq6jyhvrk5sd"))))
     (build-system cmake-build-system)
     (inputs
      `(("fcitx5" ,fcitx5)
@@ -189,15 +190,15 @@ client.")
        ("extra-cmake-modules" ,extra-cmake-modules)
        ("python" ,python)))             ;needed to run test
     (home-page "https://github.com/fcitx/libime")
-    (synopsis "Library for implementing generic input method")
-    (description "Libime is a library for implementing various input methods
+    (synopsis "Library for implementing generic input methods")
+    (description "Libime is a library for implementing various input method
 editors.")
     (license license:lgpl2.1+)))
 
 (define-public fcitx5-gtk
   (package
     (name "fcitx5-gtk")
-    (version "5.0.3")
+    (version "5.0.7")
     (source
      (origin
        (method url-fetch)
@@ -205,7 +206,7 @@ editors.")
                            "/fcitx5-gtk/fcitx5-gtk-"
                            version ".tar.xz"))
        (sha256
-        (base32 "18bwwj9a5v82c6ssc8560hd8vwykakvg6sfijwdb5jswk9mafvgj"))))
+        (base32 "0x9xwyb3hnb2xl47jkj8zs34fhyf7gshy3bv3jxd66sfkjrscr5v"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;No test
@@ -228,6 +229,7 @@ editors.")
                   (string-append gtk2 "/lib")))))))))
     (inputs
      `(("fcitx5" ,fcitx5)
+       ("fmt" ,fmt)
        ("libxkbcommon" ,libxkbcommon)
        ("gobject-introspection" ,gobject-introspection)
        ("gtk2" ,gtk+-2)
@@ -250,7 +252,7 @@ for GTK+2/GTK+3 application.")
 (define-public fcitx5-qt
   (package
     (name "fcitx5-qt")
-    (version "5.0.5")
+    (version "5.0.6")
     (source
      (origin
        (method url-fetch)
@@ -258,7 +260,7 @@ for GTK+2/GTK+3 application.")
                            "/fcitx5-qt/fcitx5-qt-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0vsvrfv0b21pfrz5n0v6p458vfr8k7km50h9bhjp1bnssampjfsb"))))
+        (base32 "0wp88cmy0gn15gkfzl5z4q4qd9j1ssdmgp1rfsbw0cp3qh5x4m69"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -269,7 +271,7 @@ for GTK+2/GTK+3 application.")
      `(("fcitx5" ,fcitx5)
        ("libxcb" ,libxcb)
        ("libxkbcommon" ,libxkbcommon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("gettext" ,gettext-minimal)))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
@@ -285,7 +287,7 @@ for Qt based application.")
 (define-public fcitx5-chinese-addons
   (package
     (name "fcitx5-chinese-addons")
-    (version "5.0.3")
+    (version "5.0.6")
     (source
      (origin
        (method url-fetch)
@@ -293,7 +295,7 @@ for Qt based application.")
                            "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
                            version "_dict.tar.xz"))
        (sha256
-        (base32 "1kmzbllk0g86m2z3piwn9j84ihxixyxzv7rzj832xfvwqgk7gixk"))))
+        (base32 "11l76gpcfm0x1f6x5m9s37q7ffa7xcsdydlzjdz2s6kk45fvvq89"))))
     (build-system cmake-build-system)
     (arguments
      `(#:phases
@@ -315,7 +317,7 @@ for Qt based application.")
        ("fmt" ,fmt)
        ("libpthread-stubs" ,libpthread-stubs)
        ("opencc" ,opencc)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("fcitx5-qt" ,fcitx5-qt)
        ("qtwebkit" ,qtwebkit)))
     (native-inputs
@@ -346,7 +348,7 @@ including input methods previous bundled inside Fcitx 4:
 (define-public fcitx5-configtool
   (package
     (name "fcitx5-configtool")
-    (version "5.0.2")
+    (version "5.0.5")
     (source
      (origin
        (method url-fetch)
@@ -354,7 +356,7 @@ including input methods previous bundled inside Fcitx 4:
              "https://download.fcitx-im.org/fcitx5"
              "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
        (sha256
-        (base32 "0rpk3yn572pcr29jak63x84g0qgj8hj011aw8gmxjah9311nxhpb"))))
+        (base32 "1diwiniqvsvcdwzcx1dqxbvwsr6ajbxs67my0cpn8n22asd5mx8i"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -363,7 +365,7 @@ including input methods previous bundled inside Fcitx 4:
     (inputs
      `(("fcitx5" ,fcitx5)
        ("fcitx5-qt" ,fcitx5-qt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("kitemviews" ,kitemviews)
        ("kwidgetsaddons" ,kwidgetsaddons)
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 4d6dc89fd9..e2335b8a86 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -345,8 +345,8 @@ from a mounted file system.")
     (license license:gpl2+)))
 
 (define-public bcachefs-tools
-  (let ((commit "7942d5cab4f02bd4db12ee26a792a6012b4d7b07")
-        (revision "7"))
+  (let ((commit "fe1bb39aa52d9140981ba1e96f3c95ddf14006ce")
+        (revision "8"))
     (package
       (name "bcachefs-tools")
       (version (git-version "0.1" revision commit))
@@ -358,7 +358,7 @@ from a mounted file system.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0k8cnkjm0v9xs7w02sj5151y6h8bj0gxmc3fq8js1wzx6wip9w96"))))
+          (base32 "1ks6w2v76pfpp70cv1d6znxaw1g5alz1v6hf8z9gvj15r94vgpwz"))))
       (build-system gnu-build-system)
       (arguments
        `(#:make-flags
@@ -576,6 +576,7 @@ single file can be mounted.")
        (sha256
         (base32 "0kbsy2sk1jv4m82rxyl25gwrlkzvl3hzdga9gshkxkhm83v1aji4"))
        (patches (search-patches "jfsutils-add-sysmacros.patch"
+                                "jfsutils-gcc-compat.patch"
                                 "jfsutils-include-systypes.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -860,7 +861,7 @@ A simple @command{eatmydata} script is included that does this for you.")
 (define-public libnfs
   (package
     (name "libnfs")
-    (version "3.0.0")
+    (version "4.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -869,7 +870,7 @@ A simple @command{eatmydata} script is included that does this for you.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "115p55y2cbs92z5lmcnjx1v29lwinpgq4sha9v1kq1vd8674h404"))))
+                "0i27wd4zvhjz7620q043p4d4mkx8zv2yz9adm1byin47dynahyda"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/sahlberg/libnfs")
     (native-inputs
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index fbd7df783c..d4c571d3ec 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
 ;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Carlo Holl <carloholl@gmail.com>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2021 ZmnSCPxj jxPCSnmZ <ZmnSCPxj@protonmail.com>
@@ -138,7 +138,7 @@
        ("libevent" ,libevent)
        ("miniupnpc" ,miniupnpc)
        ("openssl" ,openssl)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:configure-flags
        (list
@@ -268,14 +268,14 @@ Accounting.")
 (define-public homebank
   (package
     (name "homebank")
-    (version "5.4.3")
+    (version "5.5.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://homebank.free.fr/public/homebank-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "02wd569viwy6ncy0144z9nxr3zmpl4shkqhz7zzwyky4gknxf8lj"))))
+                "1lhyql94zx51vcw9hlc9r26wkm2bn6jdd4xvc95j7y69wiwg77lq"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -773,7 +773,7 @@ the Monero command line client and daemon.")
      `(,@(package-inputs monero)
        ("libgcrypt" ,libgcrypt)
        ("monero" ,monero)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtquickcontrols" ,qtquickcontrols)
@@ -1309,7 +1309,7 @@ Trezor wallet.")
        ("openssl" ,openssl)
        ("protobuf" ,protobuf)
        ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zeromq" ,zeromq)
        ("zlib" ,zlib)))
     (arguments
@@ -1422,7 +1422,7 @@ following three utilities are included with the library:
        ("openssl" ,openssl)
        ("protobuf" ,protobuf)
        ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zeromq" ,zeromq)
        ("zlib" ,zlib)))
     (arguments
@@ -1496,7 +1496,7 @@ a Qt GUI.")
      `(("qttools" ,qttools)))
     (inputs
      `(("python" ,python)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("rocksdb" ,rocksdb)
        ("zlib" ,zlib)))
     (home-page "https://gitlab.com/FloweeTheHub/fulcrum/")
@@ -1561,7 +1561,7 @@ like Flowee the Hub, which Fulcrum connects to over RPC.")
        ("libevent" ,libevent)
        ("miniupnpc" ,miniupnpc)
        ("openssl" ,openssl)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c9a68f5a93..ebcb89923c 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -56,7 +56,8 @@
                (base32
                 "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
               (file-name (git-file-name name version))
-              (patches (search-patches "ath9k-htc-firmware-objcopy.patch"))))
+              (patches (search-patches "ath9k-htc-firmware-objcopy.patch"
+                                       "ath9k-htc-firmware-gcc-compat.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 4b597dca50..e0a099e966 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -333,7 +333,7 @@ RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.")
                #t))))))
     (inputs
      `(("libusb" ,libusb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (home-page "https://glassechidna.com.au/heimdall/")
     (synopsis "Flash firmware onto Samsung mobile devices")
@@ -476,7 +476,7 @@ ME as far as possible (it only edits ME firmware image files).")
                                                      "/bin"))
              #t)))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://github.com/LongSoft/UEFITool/")
     (synopsis "UEFI image editor")
     (description "@code{uefitool} is a graphical image file editor for
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 973393acc4..618686a0ea 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -40,6 +40,8 @@
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
 ;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
+;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -414,14 +416,15 @@ The unified Libertinus family consists of:
 (define-public font-terminus
   (package
     (name "font-terminus")
-    (version "4.48")
+    (version "4.49.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/terminus-font/terminus-font-"
-                           version "/terminus-font-" version ".tar.gz"))
+                           (version-major+minor version)
+                           "/terminus-font-" version ".tar.gz"))
        (sha256
-        (base32 "1bwlkj39rqbyq57v5yssayav6hzv1n11b9ml2s0dpiyfsn6rqy9l"))))
+        (base32 "0yggffiplk22lgqklfmd2c0rw8gwchynjh5kz4bz8yv2h6vw2qfr"))))
     (build-system gnu-build-system)
     (outputs (list "out" "pcf-8bit"))
     (arguments
@@ -1211,11 +1214,55 @@ later hand-tweaked with the gbdfed(1) editor:
 typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
     (license license:silofl1.1)))
 
+;; When updating the version (and hash) of font-iosevka, also update the hash
+;; of the Iosevka variants further below.
+;; The following script downloads all Iosevka variants to the store and prints
+;; their hash at the end.
+#|
+guix repl <<EOF
+(use-modules (guix base32)
+             (guix download)
+             (guix packages)
+             (guix store)
+             (gcrypt hash)
+             (ice-9 string-fun)
+             (gnu packages fonts))
+
+(let ((new-version "7.0.3")
+      (iosevka-hashes #nil)
+      (iosevka-fails #nil))
+  (for-each (lambda (font)
+              (let ((file (download-to-store (open-connection)
+                                             (string-replace-substring
+                                              (origin-uri (package-source font))
+                                              (package-version font)
+                                              new-version))))
+                (if file
+                    (set! iosevka-hashes
+                          (acons file (bytevector->nix-base32-string
+                                       (file-sha256 file))
+                                 iosevka-hashes))
+                    (set! iosevka-fails (cons font iosevka-fails)))))
+            (list font-iosevka
+                  font-iosevka-slab
+                  font-iosevka-term
+                  font-iosevka-term-slab
+                  font-iosevka-aile
+                  font-iosevka-curly
+                  font-iosevka-curly-slab
+                  font-iosevka-etoile))
+  (for-each (lambda (hash)
+              (format #t "~a: ~a~%" (car hash) (cdr hash)))
+            iosevka-hashes)
+  (for-each (lambda (fail)
+              (format #t "~a: failed to download latest version~%" fail))
+            iosevka-fails))
+EOF
+|#
 (define-public font-iosevka
   (package
     (name "font-iosevka")
-    ;; When updating, also update the hash of the Iosevka variant(s) below.
-    (version "4.0.3")
+    (version "7.0.3")
     (source
      (origin
        (method url-fetch/zipbomb)
@@ -1223,7 +1270,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
                            "/releases/download/v" version
                            "/ttc-iosevka-" version ".zip"))
        (sha256
-        (base32 "1xc45rs09aj899wz9ghyizq6ddbgxpkqq5bl1jc89hls5laf7qjb"))))
+        (base32 "08n1c2j38vd1qrf18ilgvq6rl7z9yrsyq9ljf037yiw6zlphx4da"))))
     (build-system font-build-system)
     (home-page "https://be5invis.github.io/Iosevka/")
     (synopsis "Coders' typeface, built from code")
@@ -1231,8 +1278,8 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
      "Iosevka is a slender monospace sans-serif or slab-serif typeface inspired
 by Pragmata Pro, M+, and PF DIN Mono, designed to be the ideal font for
 programming.  Iosevka is completely generated from its source code.")
-    (license (list license:silofl1.1 ; build artifacts (i.e. the fonts)
-                   license:bsd-3)))) ; supporting code
+    (license (list license:silofl1.1    ;build artifacts (i.e., the fonts)
+                   license:bsd-3))))    ;supporting code
 
 (define-public font-iosevka-slab
   (package
@@ -1246,7 +1293,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-slab-" version ".zip"))
        (sha256
-        (base32 "0qpfzyi050zca0bwhb460nvcaarij4srhify0rb8sf9ygpzyvnjh"))))))
+        (base32 "1ggrbl8gi2hv8yiw7vw8cajlv7nkz8i975165cayyzppjlrfs3nr"))))))
 
 (define-public font-iosevka-term
   (package
@@ -1260,7 +1307,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttf-iosevka-term-" version ".zip"))
        (sha256
-        (base32 "092ygzv24wbi8cjjsmq0jkxdf4cm7wqlfj7jkn0cip7nlbyskl3h"))))
+        (base32 "1jmbp3hni99l92653b356nbmj45kd54kbl6c6ws1k5jxydrjglrh"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1281,7 +1328,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version "/"
                            "ttf-iosevka-term-slab-" version ".zip"))
        (sha256
-        (base32 "157kdxrxz981ympd2iww66v50vm2cxd7z98vvb36rii94hf30k7x"))))
+        (base32 "19fc6jbkv0aif6ds9ddxaarz2ambzln7y6k2qjsczwlbznr8cf09"))))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1302,7 +1349,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-aile-" version ".zip"))
        (sha256
-        (base32 "0n52lfn7awc28a4f5yh4my8q4ikzza705kp69chfw9jm2xx79npc"))))))
+        (base32 "1bkrk4dqkj45fbaac2n61a5kwxs3bk6sdm5hanw7g2h4xb83fi8d"))))))
 
 (define-public font-iosevka-curly
   (package
@@ -1316,7 +1363,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-" version ".zip"))
        (sha256
-        (base32 "0m51r0bc25khllq8nsfgsldhwfs7kzl8kqasivjlm14mpv5080fn"))))))
+        (base32 "12jdb38dlbwa58q0b0sf9sp1dcafzp9dcf71jf1wrlnn8047vxyx"))))))
 
 (define-public font-iosevka-curly-slab
   (package
@@ -1330,7 +1377,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "releases/download/v" version  "/"
                            "ttc-iosevka-curly-slab-" version ".zip"))
        (sha256
-        (base32 "0ffiz2kg43kc2dxv48sjji33ra3kc6sy8vlard93c601fqjmrjws"))))))
+        (base32 "0zn21bxyj0ni4vbdarwam2piixzvkdk769vg3k4fl3h03q56cj24"))))))
 
 (define-public font-iosevka-etoile
   (package
@@ -1344,21 +1391,7 @@ programming.  Iosevka is completely generated from its source code.")
                            "/releases/download/v" version
                            "/ttc-iosevka-etoile-" version ".zip"))
        (sha256
-        (base32 "1fj8g7sjp9idjh14iqk4wsz3rdarlmq7amcdsr0dznwyivx8a9wx"))))))
-
-(define-public font-iosevka-sparkle
-  (package
-    (inherit font-iosevka)
-    (name "font-iosevka-sparkle")
-    (version (package-version font-iosevka))
-    (source
-     (origin
-       (method url-fetch/zipbomb)
-       (uri (string-append "https://github.com/be5invis/Iosevka"
-                           "/releases/download/v" version
-                           "/ttc-iosevka-sparkle-" version ".zip"))
-       (sha256
-        (base32 "00dw894930xdikai8bcaimp0a3720diwi0r7ii52jwl4d70w53dx"))))))
+        (base32 "0lnpdvv20g2bg6rwl0gv83bkbgfmkbyfxshhpw9vprfs2g8k6lil"))))))
 
 (define-public font-sarasa-gothic
   (package
@@ -2175,3 +2208,32 @@ neighborhood of Buenos Aires inspired Julieta Ulanovsky to design this
 typeface and rescue the beauty of urban typography that emerged in the first
 half of the twentieth century.")
     (license license:silofl1.1)))
+
+(define-public font-overpass
+  (package
+    (name "font-overpass")
+    (version "3.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/RedHatOfficial/Overpass")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pl7zpwlx0j2xv23ahnpmbb4a5d6ib2cjck5mxqzi3jjk25rk9kb"))))
+    (build-system font-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-webfonts
+           (lambda _
+             (delete-file-recursively "webfonts"))))))
+    (home-page "https://overpassfont.org")
+    (synopsis "Sans serif font family inspired by Highway Gothic")
+    (description
+     "Overpass is a sans-serif typeface based on the U.S. interstate highway
+road signage typefaces, adapted for on-screen display and user interfaces.
+Overpass includes proprotional and monospace variants.")
+    (license (list license:silofl1.1
+                   license:lgpl2.1))))
diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 380a09d7f6..5509f19471 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -289,7 +289,7 @@ Includes the actual FTDI connector.")
          ("eigen" ,eigen)
          ("icestorm" ,icestorm)
          ("python" ,python)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("yosys" ,yosys)))
       (build-system cmake-build-system)
       (arguments
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 24e8544db7..5c76e6b8f0 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -2297,7 +2297,7 @@ fallback to generic Systray support if none of those are available.")
 (define-public xdg-desktop-portal
   (package
     (name "xdg-desktop-portal")
-    (version "1.7.2")
+    (version "1.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2306,7 +2306,7 @@ fallback to generic Systray support if none of those are available.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rkwpsmbn3d3spkzc2zsd50l2r8pp4la390zcpsawaav8w7ql7xm"))))
+                "0pq0kmvzk56my396vh97pzw4wizwmlmzvv2kr2xv047x3044mr5n"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2326,6 +2326,21 @@ fallback to generic Systray support if none of those are available.")
        ("geoclue" ,geoclue)
        ("pipewire" ,pipewire-0.3)
        ("fuse" ,fuse)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'po-chmod
+           (lambda _
+             ;; Make sure 'msgmerge' can modify the PO files.
+             (for-each (lambda (po)
+                         (chmod po #o666))
+                       (find-files "po" "\\.po$"))
+             #t)))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XDG_DESKTOP_PORTAL_DIR")
+            (separator #f)
+            (files '("share/xdg-desktop-portal/portals")))))
     (home-page "https://github.com/flatpak/xdg-desktop-portal")
     (synopsis "Desktop integration portal for sandboxed apps")
     (description
@@ -2394,7 +2409,7 @@ interfaces.")
 (define-public xdg-desktop-portal-wlr
   (package
     (name "xdg-desktop-portal-wlr")
-    (version "0.3.0")
+    (version "0.4.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2403,8 +2418,12 @@ interfaces.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "18nlkqqxgxh7k0r2nk867wnp2nmaiinl6z67lrfv7rmiym0x82p8"))))
+                "13fbzh8bjnhk4xs8j9bpc01q3hy27zpbf0gkk1fnh3hm5pnyfyiv"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags
+       '("-Dsystemd=disabled"
+         "-Dsd-bus-provider=libelogind")))
     (native-inputs
      `(("cmake" ,cmake)
        ("pkg-config" ,pkg-config)))
@@ -2412,6 +2431,7 @@ interfaces.")
      `(("elogind" ,elogind)
        ("iniparser" ,iniparser)
        ("pipewire" ,pipewire-0.3)
+       ("inih" ,libinih)
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/emersion/xdg-desktop-portal-wlr")
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 559a502cae..b67c4e51d2 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -66,6 +66,7 @@
   #:use-module (gnu packages fribidi)
   #:use-module (gnu packages dbm)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -460,7 +461,7 @@ support.")
                 "1prajkx1xpp3csa0xpkrn3c2cnzvmwzxgrqb9d3gqszp3sllr2dg"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
@@ -493,7 +494,7 @@ clone.")
 (define-public tsukundere
   (package
     (name "tsukundere")
-    (version "0.3.0")
+    (version "0.3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -502,7 +503,7 @@ clone.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06jiaylbnx8khicsaq2gwnd8wspjhjymbb5z6x5445krklk0jx18"))))
+                "13p9inz7jj3hm2lmx4p0lhva4ng1m148pjzhq12ybc4kk139i75b"))))
     (build-system gnu-build-system)
     (arguments
      `(#:modules ((ice-9 match)
@@ -546,6 +547,7 @@ clone.")
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
        ("guile" ,guile-3.0)
        ("pkg-config" ,pkg-config)
        ("texinfo" ,texinfo)))
@@ -1106,7 +1108,7 @@ to create fully featured games and multimedia programs in the python language.")
 
 (define-public python2-pygame-sdl2
   (let ((real-version "2.1.0")
-        (renpy-version "7.4.4"))
+        (renpy-version "7.4.5"))
     (package
       (inherit python2-pygame)
       (name "python2-pygame-sdl2")
@@ -1116,7 +1118,7 @@ to create fully featured games and multimedia programs in the python language.")
          (method url-fetch)
          (uri (string-append "https://www.renpy.org/dl/" renpy-version
                              "/pygame_sdl2-" version ".tar.gz"))
-         (sha256 (base32 "1lj5c3kfnl8s824j3hs47dg3g5rlabscmwrbb0lgpyy4633pv9ka"))
+         (sha256 (base32 "03jqg4lniazqrm40v2fy4z1a16qzs037r22qavzb6bh7kcmg1ydy"))
          (modules '((guix build utils)))
          (snippet
           '(begin
@@ -1159,13 +1161,13 @@ developed mainly for Ren'py.")
 (define-public python2-renpy
   (package
     (name "python2-renpy")
-    (version "7.4.4")
+    (version "7.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.renpy.org/dl/" version
                            "/renpy-" version "-source.tar.bz2"))
-       (sha256 (base32 "1cbbvsk1snjrsh59blb8q2h86555gi23pylmwlnk9dx0jxckdi21"))
+       (sha256 (base32 "0a7lwijmj9l3sjdmxgwvvlx28byws3z9cq94l417bi6r7f6pcxam"))
        (modules '((guix build utils)))
        (patches
         (search-patches
@@ -1609,7 +1611,7 @@ of use.")
        ("mygui" ,mygui-gl)              ; OpenMW does not need Ogre.
        ("openal" ,openal)
        ("openscenegraph" ,openmw-openscenegraph)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sdl" ,sdl2)
        ("unshield" ,unshield)))
     (synopsis "Re-implementation of the RPG Morrowind engine")
@@ -2428,7 +2430,7 @@ utilities frequently used in roguelikes.")
          ("mesa" ,mesa)
          ("openal" ,openal)
          ("pulseaudio" ,pulseaudio)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtdeclarative" ,qtdeclarative)
          ("sdl2" ,sdl2)
          ("uuid.h" ,util-linux "lib")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 19c1f35808..6bd6104629 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -928,7 +928,7 @@ want what you have.")
          ("pkg-config" ,pkg-config)))
       (inputs
        `(("protobuf" ,protobuf)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtmultimedia" ,qtmultimedia)
          ("qtsvg" ,qtsvg)
          ("qttools" ,qttools)
@@ -2414,7 +2414,7 @@ and defeat them with your bubbles!")
        ("luajit" ,luajit)
        ("openal" ,openal)
        ("physfs" ,physfs)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sdl2" ,(sdl-union (list sdl2 sdl2-image sdl2-ttf)))))
     (home-page "https://www.solarus-games.org/")
     (synopsis "Lightweight game engine for Action-RPGs")
@@ -5179,7 +5179,7 @@ in-window at 640x480 resolution or fullscreen.")
               ("miniupnpc" ,miniupnpc)
               ("openal" ,openal)
               ("physfs" ,physfs)
-              ("qtbase" ,qtbase)
+              ("qtbase" ,qtbase-5)
               ("qtscript" ,qtscript)
               ("openssl" ,openssl)
               ("sdl2" ,sdl2)
@@ -7139,7 +7139,7 @@ some graphical niceities, and numerous bug-fixes and other improvements.")
                (mkdir-p (string-append out "/lib"))
                (mkdir-p (string-append out "/bin"))
                ;; The yamagi-quake2 binary must be in the same directory
-               ;; as it's engine libraries, but symlinking it to /bin is okay
+               ;; as its engine libraries, but symlinking it to /bin is okay.
                ;; https://github.com/yquake2/yquake2/blob/master/stuff/packaging.md
                (copy-recursively "release"
                                  (string-append out "/lib/yamagi-quake2"))
@@ -7233,7 +7233,7 @@ making Yamagi Quake II one of the most solid Quake II implementations available.
        ;; with multiple "QPainter:: ... Painter not active" warnings.
        #:tests? #f))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("cmake" ,cmake-minimal)
@@ -8950,7 +8950,7 @@ a fortress beyond the forbidden swamp.")
        ("mesa" ,mesa)
        ("miniupnpc" ,miniupnpc)
        ("openal" ,openal)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("readline" ,readline)
        ("sdl" ,sdl2)
        ("tinyxml" ,tinyxml)
@@ -9284,7 +9284,7 @@ and also provides the base for the FlightGear Flight Simulator.")
        ("openal" ,openal)
        ("openscenegraph" ,openscenegraph-3.4)
        ("plib" ,plib)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("simgear" ,simgear)
@@ -9411,7 +9411,7 @@ play with up to four players simultaneously.  It has network support.")
        ("libpng" ,libpng)
        ("lua" ,lua-5.1)
        ("physfs" ,physfs)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sdl" ,(sdl-union
                 (list sdl2 sdl2-mixer sdl2-net sdl2-ttf sdl2-image)))))
     (native-inputs
@@ -10096,7 +10096,7 @@ remake of that series or any other game.")
       ("ocl-icd" ,ocl-icd)
       ("openblas" ,openblas)
       ("opencl-headers" ,opencl-headers)
-      ("qtbase" ,qtbase)
+      ("qtbase" ,qtbase-5)
       ("zlib" ,zlib)))
    (arguments
     '(#:configure-flags '("-DUSE_BLAS=YES")
@@ -10139,7 +10139,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
    (native-inputs
     `(("pkg-config" ,pkg-config)))
    (inputs
-    `(("qtbase" ,qtbase)
+    `(("qtbase" ,qtbase-5)
       ("qtmultimedia" ,qtmultimedia)
       ("qtsvg" ,qtsvg)))
    (arguments
@@ -10231,7 +10231,7 @@ can be downloaded from @url{https://zero.sjeng.org/best-network}.")
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
        ("python" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
@@ -10279,7 +10279,7 @@ This package is part of the KDE games module.")
        ("knewstuff" ,knewstuff)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10318,7 +10318,7 @@ This package is part of the KDE games module.")
        ("kxmlgui" ,kxmlgui)
        ("ktextwidgets" ,ktextwidgets)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Miniature golf game")
@@ -10362,7 +10362,7 @@ This package is part of the KDE games module.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
     (synopsis "Shared library for kmahjongg and kshisen")
@@ -10395,7 +10395,7 @@ other Mah Jongg like games.")
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
        ("libkmahjongg" ,libkmahjongg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10438,7 +10438,7 @@ This package is part of the KDE games module.")
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
        ("libkmahjongg" ,libkmahjongg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Shisen-Sho solitaire game")
@@ -10483,7 +10483,7 @@ This package is part of the KDE games module.")
        ("python" ,python)
        ("python-twisted" ,python-twisted)
        ("python-pyqt" ,python-pyqt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
     (synopsis "Classical Mah Jongg game for 4 players")
@@ -10526,7 +10526,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Breakout like game")
@@ -10565,7 +10565,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Classical mine sweeper game")
@@ -10602,7 +10602,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10642,7 +10642,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10681,7 +10681,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10725,7 +10725,7 @@ This package is part of the KDE games module.")
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
        ("glu" ,glu)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10782,7 +10782,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Place 5 equal pieces together, but wait, there are 3 new ones")
@@ -10826,7 +10826,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Action and puzzle solving game")
@@ -10870,7 +10870,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Three-in-a-row game")
@@ -10906,7 +10906,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10946,7 +10946,7 @@ This package is part of the KDE games module.")
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -10988,7 +10988,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Turn the board pieces to get all computers connected")
@@ -11027,7 +11027,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Arcade bombing game")
@@ -11072,7 +11072,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11109,7 +11109,7 @@ This package is part of the KDE games module.")
        ("libkdegames" ,libkdegames)
        ("phonon" ,phonon)
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
@@ -11171,7 +11171,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("shared-mime-info" ,shared-mime-info)))
@@ -11213,7 +11213,7 @@ This package is part of the KDE games module.")
        ("kiconthemes" ,kiconthemes)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Yahtzee dice game")
@@ -11253,7 +11253,7 @@ This package is part of the KDE games module.")
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11299,7 +11299,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11340,7 +11340,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11379,7 +11379,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11419,7 +11419,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11453,7 +11453,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11493,7 +11493,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Port of the classic BSD console game robots")
@@ -11535,7 +11535,7 @@ This package is part of the KDE games module.")
        ("ki18n" ,ki18n)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11573,7 +11573,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Simple ball dodging game")
@@ -11614,7 +11614,7 @@ This package is part of the KDE games module.")
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Battleship board game with built-in game server")
@@ -11654,7 +11654,7 @@ This package is part of the KDE games module.")
        ("kio" ,kio)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11696,7 +11696,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://games.kde.org/")
     (synopsis "Dots and Boxes game")
@@ -11733,7 +11733,7 @@ This package is part of the KDE games module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("libkdegames" ,libkdegames)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -11896,7 +11896,7 @@ and chess engines.")
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtspeech" ,qtspeech)
        ("qtsvg" ,qtsvg)
@@ -12227,7 +12227,7 @@ game.")  ;thanks to Debian for description
        ("libgcrypt" ,libgcrypt)
        ("libircclient" ,libircclient)
        ("protobuf" ,protobuf-2)         ; remove package when no longer needed
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sdl" ,(sdl-union (list sdl sdl-mixer)))
        ("sqlite" ,sqlite)
        ("tinyxml" ,tinyxml)
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 5d114dca87..24a4b42000 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -551,7 +551,8 @@ It also includes runtime support libraries for these languages.")))
                (base32
                 "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k"))
               (patches (search-patches "gcc-8-strmov-store-file-names.patch"
-                                       "gcc-5.0-libvtv-runpath.patch"))))))
+                                       "gcc-5.0-libvtv-runpath.patch"
+                                       "gcc-8-sort-libtool-find-output.patch"))))))
 
 (define-public gcc-9
   (package
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index c4bdb6aca0..a0b43308e4 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -1247,7 +1247,7 @@ map display.  Downloads map data from a number of websites, including
        ("libpng" ,libpng)
        ("openjpeg" ,openjpeg)
        ("proj.4" ,proj.4)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (synopsis "Weather Forecast Visualization")
     (description
@@ -1663,7 +1663,7 @@ using the dataset of topographical information collected by
      `(("gdal" ,gdal)
        ("libjpeg-turbo" ,libjpeg-turbo)
        ("proj" ,proj)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtlocation" ,qtlocation)
        ("qtwebchannel" ,qtwebchannel)
@@ -2282,7 +2282,7 @@ growing set of geoscientific methods.")
        ("python-urllib3" ,python-urllib3)
        ("qca" ,qca)
        ("qscintilla" ,qscintilla)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtkeychain" ,qtkeychain)
        ("qtlocation" ,qtlocation)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ca573d55ee..e03ed77374 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2721,7 +2721,7 @@ and how they are displayed (View).")
 (define-public gtg
   (package
     (name "gtg")
-    (version "0.4")
+    (version "0.5")
     (source
      (origin
        (method git-fetch)
@@ -2730,7 +2730,7 @@ and how they are displayed (View).")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0r28vyr88rj3kd3cg4gj7sd29wadjchi92wzmbx67d4hlg25h8kk"))))
+        (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -2757,10 +2757,13 @@ and how they are displayed (View).")
        ("gtk+:bin" ,gtk+ "bin")
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+     `(("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gtk+" ,gtk+)
+       ("pango" ,pango)
        ("python-dbus" ,python-dbus)
        ("python-liblarch" ,python-liblarch)
+       ("python-lxml" ,python-lxml)
        ("python-pycairo" ,python-pycairo)
        ("python-pygobject" ,python-pygobject)
        ("python-pyxdg" ,python-pyxdg)))
@@ -4084,14 +4087,14 @@ Hints specification (EWMH).")
 (define-public goffice
   (package
     (name "goffice")
-    (version "0.10.49")
+    (version "0.10.50")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/goffice/"
                                   (version-major+minor version)  "/"
                                   "goffice-" version ".tar.xz"))
               (sha256
-               (base32 "1s87ngs3g3nfvcn96aq4lgzx5cscbfg4n9f6ns2zpvc5ngdiiz2z"))))
+               (base32 "1p5zbj7cbcfcxd6l8pnph54p6ah1bwf146y810j4bcq8ggf3sp1c"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 4.0 MiB of gtk-doc
@@ -4148,7 +4151,7 @@ Hints specification (EWMH).")
 (define-public gnumeric
   (package
     (name "gnumeric")
-    (version "1.12.49")
+    (version "1.12.50")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gnumeric/"
@@ -4156,7 +4159,7 @@ Hints specification (EWMH).")
                                   "gnumeric-" version ".tar.xz"))
               (sha256
                (base32
-                "0mzdhhpa7kwkc51l344g6vgqwaxkjdf03s7zasqh0bn3jpn75h4i"))))
+                "1f0lrj5msg80pgjp38jj6rddf352gwddgip7z4lki66n3fx1k23m"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(;; The gnumeric developers don't worry much about failing tests.
@@ -4209,7 +4212,7 @@ engineering.")
 (define-public drawing
   (package
     (name "drawing")
-    (version "0.6.5")
+    (version "0.8.0")
     (source
      (origin
        (method git-fetch)
@@ -4218,7 +4221,7 @@ engineering.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1kfgmalakifcvzhzss9zhmqjbdk24zr22c5xwkkahlvfcafp13wn"))))
+        (base32 "03cx6acb0ph7b3difshjfddi8ld79wp8d12bdp7dp1q1820j5mz0"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -11956,7 +11959,7 @@ integrated profiler via Sysprof, debugging support, and more.")
 (define-public komikku
   (package
     (name "komikku")
-    (version "0.29.0")
+    (version "0.29.2")
     (source
      (origin
        (method git-fetch)
@@ -11966,7 +11969,7 @@ integrated profiler via Sysprof, debugging support, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1sirwgny1s6jv9rb0lildqv4p7nfa15rvw957pwxnvrjasxyf6bq"))))
+         "0g1whk0y3k1cy6ix20gz226ww1vzpb9hinn5d24z6j38mdgqqa5l"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -11999,6 +12002,7 @@ integrated profiler via Sysprof, debugging support, and more.")
        ("libsecret" ,libsecret)
        ("python-beautifulsoup4" ,python-beautifulsoup4)
        ("python-brotli" ,python-brotli)
+       ("python-cloudscraper" ,python-cloudscraper)
        ("python-dateparser" ,python-dateparser)
        ("python-keyring" ,python-keyring)
        ("python-lxml" ,python-lxml)
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index cb481b38e1..a6ec75765c 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -410,7 +410,7 @@ and every application benefits from this.")
        ,@(package-native-inputs gpgme)))
     (inputs
      `(("gpgme" ,gpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ,@(package-inputs gpgme)))
     (synopsis "Qt API bindings for gpgme")
     (description "QGpgme provides a very high level Qt API around GpgMEpp.
@@ -863,7 +863,7 @@ software.")))
     (arguments
      `(#:configure-flags '("--enable-fallback-curses")))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ,@(package-inputs pinentry-tty)))
   (description
    "Pinentry provides a console and a Qt GUI that allows users to enter a
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 59f8a58634..a0e72be427 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1276,14 +1276,19 @@ from forcing GEXP-PROMISE."
                     (pulseaudio (assoc-ref inputs "pulseaudio"))
                     (pulseaudio-lib (string-append pulseaudio "/lib"))
                     (libxscrnsaver (assoc-ref inputs "libxscrnsaver"))
-                    (libxscrnsaver-lib (string-append libxscrnsaver "/lib")))
+                    (libxscrnsaver-lib (string-append libxscrnsaver "/lib"))
+                    (mit-krb5 (assoc-ref inputs "mit-krb5"))
+                    (mit-krb5-lib (string-append mit-krb5 "/lib")))
                (wrap-program (car (find-files lib "^icecat$"))
                  `("XDG_DATA_DIRS" prefix (,gtk-share))
                  ;; The following line is commented out because the icecat
                  ;; package on guix has been observed to be unstable when
                  ;; using wayland, and the bundled extensions stop working.
                  ;;   `("MOZ_ENABLE_WAYLAND" = ("1"))
-                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,mesa-lib ,libxscrnsaver-lib)))
+                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib
+                                             ,mesa-lib
+                                             ,libxscrnsaver-lib
+                                             ,mit-krb5-lib)))
                #t))))))
     (home-page "https://www.gnu.org/software/gnuzilla/")
     (synopsis "Entirely free browser derived from Mozilla Firefox")
diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm
index 67ec0d7acf..b6a692bc3e 100644
--- a/gnu/packages/gpodder.scm
+++ b/gnu/packages/gpodder.scm
@@ -141,7 +141,7 @@ locally for later listening.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("qt" ,qtbase)))
+     `(("qt" ,qtbase-5)))
     (arguments
      `(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
        ;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index dd43efc0d5..49bc5e8254 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -85,7 +85,7 @@
     (inputs
      `(("expat" ,expat)
        ("libusb" ,libusb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (native-inputs
      `(("which" ,which)
@@ -207,7 +207,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("qttools" ,qttools)))
     (home-page "https://www.gpxsee.org")
@@ -246,7 +246,7 @@ such as elevation, speed, heart rate, power, temperature, and gear shifts.")
        ("python-pygobject" ,python-pygobject)
        ("python-pyserial" ,python-pyserial)
        ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:scons-flags
        (list (string-append "prefix=" %output)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 1006bb3cb4..e0cade6359 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -826,8 +826,8 @@ exception-handling library.")
 
 (define-public lib2geom
   ;; Use the latest master commit, as the 1.0 release suffer build problems.
-  (let ((revision "3")
-        (commit "17e0d21f0afc8489656f9184bff7ad024a42394a"))
+  (let ((revision "4")
+        (commit "b29d60e49a58f4e8069544b44863b1a623e4ee59"))
     (package
       (name "lib2geom")
       (version (git-version "1.0" revision commit))
@@ -839,7 +839,7 @@ exception-handling library.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0waskrmdrrdjw8pr5cvlkrxywgf376viggpc2jzdqxxpy2k78fpr"))
+                  "0xd8f3cgfnipdav4w8j54r7hzy9f3m7xk42ppcfhdjz2hriggyk6"))
                 (patches
                  ;; Patch submitted to upstream (see:
                  ;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32).
@@ -1500,7 +1500,7 @@ exec -a \"$0\" ~a/.brdf-real~%"
       (native-inputs
        `(("qttools" ,qttools))) ;for 'qmake'
       (inputs
-       `(("qtbase" ,qtbase)
+       `(("qtbase" ,qtbase-5)
          ("mesa" ,mesa)
          ("glew" ,glew)
          ("freeglut" ,freeglut)
@@ -1936,7 +1936,7 @@ Automated palette selection is supported.")
          ("libvpx" ,libvpx)
          ("libxi" ,libxi)
          ;; ("miniupnpc" ,miniupnpc) ;segfaults for some reason
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtkeychain" ,qtkeychain)
          ("qtmultimedia" ,qtmultimedia)
          ("qtsvg" ,qtsvg)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 9e70961655..3047773e0f 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -767,7 +767,7 @@ model to base your own plug-in on, here it is.")
        ("openssl" ,openssl)
        ("opus" ,opus)
        ("orc" ,orc)
-       ;("qtbase" ,qtbase)
+       ;("qtbase" ,qtbase-5)
        ;("qtdeclarative" ,qtdeclarative)
        ;("qtx11extras" ,qtx11extras)
        ("soundtouch" ,soundtouch)
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index e4164d2c47..5e63075751 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1370,7 +1370,7 @@ microblogging service.")
 (define-public guile-parted
   (package
     (name "guile-parted")
-    (version "0.0.4")
+    (version "0.0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1379,7 +1379,7 @@ microblogging service.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0b7h8psfm9gmmwb65pp5zwzglvwnfmw5j40g09hhf3f7kwxc0mv2"))
+                "1ar6n38br3h1jm54yy6d54rpqdgsy7pmnj3nqdzqrfk8z0kx0rm9"))
               (modules '((guix build utils)))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index da2653c546..7b29c2a215 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -707,7 +707,7 @@ including 2D color images.")
        ("qttools" ,qttools)))
     (inputs
      `(("gmic" ,gmic)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ,@(package-inputs gmic)))
     (synopsis "Qt frontend for the G'MIC image processing framework")
     (license license:gpl3+)))
@@ -1035,7 +1035,7 @@ combine the information contained in both.")
        ;; not with 4.13.  It really needs to be 4.12.
        ("itk" ,insight-toolkit-4.12)
        ("vtk" ,vtk-6)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("vxl" ,vxl-1)
        ("zlib" ,zlib)))
@@ -1162,7 +1162,7 @@ substituted by matching images.")
          ("libjpeg" ,libjpeg-turbo)
          ("libpng" ,libpng)
          ("libtiff" ,libtiff)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtsvg" ,qtsvg)
          ("zlib" ,zlib)))
       (arguments
diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm
index c7dd358ad4..f01b6a614a 100644
--- a/gnu/packages/image-viewers.scm
+++ b/gnu/packages/image-viewers.scm
@@ -358,7 +358,7 @@ It supports JPEG, PNG and GIF formats.")
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)
        ("qtwebkit" ,qtwebkit)
@@ -527,7 +527,7 @@ For PDF support, install the @emph{mupdf} package.")
                (("updateText\\(\\);") ""))
              #t)))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtimageformats" ,qtimageformats)))
     (home-page "https://interversehq.com/qview/")
@@ -733,7 +733,7 @@ to set X desktop background.")
        ("opencv" ,opencv)
        ("python" ,python-wrapper)
        ("quazip" ,quazip)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index f009a30d53..0ab910f0dc 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1834,7 +1834,7 @@ parsing, viewing, modifying, and saving this metadata.")
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (arguments
      `(#:tests? #f))                    ;no tests
@@ -2177,7 +2177,7 @@ by AOM, including with alpha.")
 (define-public libheif
   (package
     (name "libheif")
-    (version "1.11.0")
+    (version "1.12.0")
     (source
      (origin
        (method git-fetch)
@@ -2186,7 +2186,7 @@ by AOM, including with alpha.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "036n63vlk4sk7y25q2kzyvvw4r5vv323ysbmbrcaprg9hdyjqgf5"))))
+        (base32 "0cp2d216hp7gw3n56x3g5q5n8jb9ganyanrlibxw8fw16il8nca6"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ;no test target although there is a tests folder
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 713a0056b1..1e19ea592e 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -117,19 +117,20 @@ apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,
 as the native format.")
     (license license:gpl2+)))
 
-(define-public inkscape-1.0
+(define-public inkscape-1.1
   (package
     (name "inkscape")
-    (version "1.0.2")
+    (version "1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://media.inkscape.org/dl/"
                            "resources/file/"
                            "inkscape-" version ".tar.xz"))
+       (patches (search-patches "inkscape-1.1-fix-build-witch-gcc7.5.patch"))
        (sha256
         (base32
-         "12krl97a00gdcxxibsb7g2lgx5458mhx2437x0hvz350242j6gns"))
+         "1rlm2wqg8bgdxkdvnadh49wfp0mrbrk7d8n4vdcjyw6z7z7firki"))
        (modules '((guix build utils)
                   (ice-9 format)))
        (snippet
@@ -188,7 +189,7 @@ endif()~%~%"
                          (string-append "#include " quote
                                         (basename source-dir)))
                         ...))))))
-             (unbundle ("2geom" "src/2geom" #t)
+             (unbundle ("2geom" "src/3rdparty/2geom" #t)
                        ;; libcroco cannot be unbundled as it is heavily
                        ;; modified (see:
                        ;; https://gitlab.com/inkscape/inkscape/issues/876#note_276114904).
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 2cc4e5e2c2..3d1753bff4 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
@@ -35,8 +35,8 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
-  #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
   #:use-module (gnu packages)
@@ -74,6 +74,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages regex)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tcl)
@@ -130,7 +131,7 @@
      `(("inxi" ,inxi-minimal)
        ("libdbusmenu-qt" ,libdbusmenu-qt)
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtscript" ,qtscript)
        ("qtsvg" ,qtsvg)
@@ -189,14 +190,14 @@ SILC and ICB protocols via plugins.")
 (define-public weechat
   (package
     (name "weechat")
-    (version "3.1")
+    (version "3.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://weechat.org/files/src/weechat-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "1xx4fx7785yw3ml3k1z08h3qvrizvcypwl0j6jc7d7qim9sjjnm5"))))
+                "1a47knznlm9f2f83d71s3c4fm50m6iq6iq1bvp4m61p8fkrsva1r"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -241,7 +242,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
 (define-public srain
   (package
     (name "srain")
-    (version "1.1.3")
+    (version "1.2.2")
     (source
      (origin
        (method git-fetch)
@@ -250,22 +251,17 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vqjjsxzc4601dpc8lf9k25rp2c7sjab7l5a6cbfygpr8dqvm6vq"))))
+        (base32 "04bgfyrl5swppsqmhzmjnnj2q7844k99f3894ank8v8fr3y6x78p"))))
+    (build-system meson-build-system)
     (arguments
      `(#:tests? #f ;there are no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'fix-permissions
-           ;; Make po folder writable for gettext to install translations.
-           (lambda _
-             (for-each make-file-writable
-                       (find-files "po" "." #:directories? #t)))))))
-    (build-system glib-or-gtk-build-system)
+       #:glib-or-gtk? #t))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)))
+       ("python" ,python-wrapper)
+       ("python-sphinx" ,python-sphinx)))
     (inputs
      `(("glib-networking" ,glib-networking)
        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
diff --git a/gnu/packages/irods.scm b/gnu/packages/irods.scm
new file mode 100644
index 0000000000..bb0263682c
--- /dev/null
+++ b/gnu/packages/irods.scm
@@ -0,0 +1,271 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; 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 irods)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages backup)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
+  #:use-module (gnu packages databases)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages kerberos)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
+  #:use-module (gnu packages logging)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages networking)
+  #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages serialization)
+  #:use-module (gnu packages tls)
+  #:use-module (srfi srfi-1))
+
+(define-public irods
+  (package
+    (name "irods")
+    (version "4.2.8")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/irods/irods/releases/download/"
+                                  version "/irods-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0ny54c3r0j692rvbr4iibg7xgd2i7g9x8yyrw04j889bywix14rc"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "-DCMAKE_BUILD_TYPE=Release"
+        (string-append "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib")
+        (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                       (assoc-ref %outputs "out") "/lib")
+
+        ;; Configuration aborts if no generator format is set
+        "-DCPACK_GENERATOR=TGZ"
+
+        ;; Configuration attempts to guess the distribution with Python.
+        "-DIRODS_LINUX_DISTRIBUTION_NAME=guix"
+        "-DIRODS_LINUX_DISTRIBUTION_VERSION_MAJOR=1"
+
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CLANG="
+                       (assoc-ref %build-inputs "clang"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME="
+                       (assoc-ref %build-inputs "clang-runtime"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CPPZMQ="
+                       (assoc-ref %build-inputs "cppzmq"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_ARCHIVE="
+                       (assoc-ref %build-inputs "libarchive"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_AVRO="
+                       (assoc-ref %build-inputs "avro-cpp"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_BOOST="
+                       (assoc-ref %build-inputs "boost"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_ZMQ="
+                       (assoc-ref %build-inputs "zeromq"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_JSON="
+                       (assoc-ref %build-inputs "json"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CATCH2="
+                       (assoc-ref %build-inputs "catch2"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_NANODBC="
+                       (assoc-ref %build-inputs "nanodbc"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_FMT="
+                       (assoc-ref %build-inputs "fmt")))
+
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unset-Werror
+           (lambda _
+             ;; -Werror kills the build due to a comparison REQUIRE(errs.size() == err->len);
+             ;; in unit_tests/src/test_irods_lifetime_manager.cpp
+             (substitute* "CMakeLists.txt"
+               (("-Werror") ""))))
+         (add-after 'unpack 'remove-FHS-and-prefix-assumptions
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* '("CMakeLists.txt"
+                            "cmake/server.cmake"
+                            "cmake/development_library.cmake"
+                            "cmake/runtime_library.cmake")
+               (("usr/") ""))
+             (substitute* "lib/core/src/irods_default_paths.cpp"
+               (("path.append\\(\"usr\"\\)") "path")
+               (("path.remove_filename\\(\\).remove_filename\\(\\).remove_filename\\(\\)")
+                "path.remove_filename().remove_filename()"))
+             (substitute* "scripts/irods/paths.py"
+               (("'usr', 'lib', 'irods'") "'lib', 'irods'"))
+             (substitute* "scripts/irods/pypyodbc.py"
+               (("\"/usr/lib/libodbc.so\"")
+                (string-append (assoc-ref inputs "unixodbc") "/lib/libodbc.so")))))
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs  "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
+                                              "/include/c++/v1")
+                               (string-append (assoc-ref inputs "catch2")
+                                              "/include/catch2")
+                               (string-append (assoc-ref inputs "json")
+                                              "/include/nlohmann")
+                               ;; Hide GCC's C++ headers so that they do not interfere with
+                               ;; the Clang headers.
+                               (delete (string-append gcc "/include/c++")
+                                       (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                     #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (inputs
+     `(("avro-cpp" ,avro-cpp-1.9-for-irods)
+       ("boost" ,boost-for-irods)
+       ("cppzmq" ,cppzmq)
+       ("fmt" ,fmt-for-irods)
+       ("json" ,json-modern-cxx)
+       ("libarchive" ,libarchive)
+       ("libcxxabi" ,libcxxabi-6) ; we need this for linking with -lc++abi
+       ("linux-pam" ,linux-pam)
+       ("mit-krb5" ,mit-krb5)
+       ("nanodbc" ,nanodbc-for-irods)
+       ("openssl" ,openssl)
+       ("python" ,python-wrapper)
+       ("unixodbc" ,unixodbc)
+       ("zeromq" ,zeromq)))
+    (native-inputs
+     `(("catch2" ,catch-framework2)
+       ("clang" ,clang-toolchain-6)
+       ("clang-runtime" ,clang-runtime-6)
+       ("libcxx+libcxxabi" ,libcxx+libcxxabi-6)))
+    (home-page "https://irods.org")
+    (synopsis "Data management software")
+    (description "The Integrated Rule-Oriented Data System (iRODS) is data
+management software.  iRODS virtualizes data storage resources, so users can
+take control of their data, regardless of where and on what device the data is
+stored.")
+    (license license:bsd-3)))
+
+(define-public irods-client-icommands
+  (package
+    (name "irods-client-icommands")
+    (version "4.2.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/irods/irods_client_icommands")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "069n647p5ypf44gim8z26mwayg5lzgk7r9qyyqd8f9n7h0p4jxpn"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #false ; not clear how to run tests
+       #:configure-flags
+       (list
+        "-DCMAKE_BUILD_TYPE=Release"
+
+        ;; Configuration attempts to guess the distribution with Python.
+        "-DIRODS_LINUX_DISTRIBUTION_NAME=guix"
+        "-DIRODS_LINUX_DISTRIBUTION_VERSION_MAJOR=1"
+
+        (string-append "-DIRODS_DIR="
+                       (assoc-ref %build-inputs "irods")
+                       "/lib/irods/cmake")
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CLANG="
+                       (assoc-ref %build-inputs "clang"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CLANG_RUNTIME="
+                       (assoc-ref %build-inputs "clang-runtime"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_CPPZMQ="
+                       (assoc-ref %build-inputs "cppzmq"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_ARCHIVE="
+                       (assoc-ref %build-inputs "libarchive"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_AVRO="
+                       (assoc-ref %build-inputs "avro-cpp"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_BOOST="
+                       (assoc-ref %build-inputs "boost"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_ZMQ="
+                       (assoc-ref %build-inputs "zeromq"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_JSON="
+                       (assoc-ref %build-inputs "json"))
+        (string-append "-DIRODS_EXTERNALS_FULLPATH_FMT="
+                       (assoc-ref %build-inputs "fmt")))
+
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unset-Werror ;
+           (lambda _                           ;
+             ;; -Werror kills the build due to a deprecation warning
+             (substitute* "CMakeLists.txt" ;
+               (("-Werror") ""))))
+         (add-after 'unpack 'remove-/usr-prefix
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("usr/") ""))))
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs  "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
+                                              "/include/c++/v1")
+                               (string-append (assoc-ref inputs "json")
+                                              "/include/nlohmann")
+                               ;; Hide GCC's C++ headers so that they do not interfere with
+                               ;; the Clang headers.
+                               (delete (string-append gcc "/include/c++")
+                                       (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                     #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (inputs
+     `(("avro-cpp" ,avro-cpp-1.9-for-irods)
+       ("boost" ,boost-for-irods)
+       ("cppzmq" ,cppzmq)
+       ("fmt" ,fmt-for-irods)
+       ("irods" ,irods)
+       ("json" ,json-modern-cxx)
+       ("libarchive" ,libarchive)
+       ("libcxxabi" ,libcxxabi-6)     ; we need this for linking with -lc++abi
+       ("mit-krb5" ,mit-krb5)
+       ("openssl" ,openssl)
+       ("zeromq" ,zeromq)))
+    (native-inputs
+     `(("clang" ,clang-toolchain-6)
+       ("clang-runtime" ,clang-runtime-6)
+       ("libcxx+libcxxabi" ,libcxx+libcxxabi-6)
+       ("help2man" ,help2man)
+       ("which" ,which)))
+    (home-page "https://irods.org")
+    (synopsis "Data management software")
+    (description "The Integrated Rule-Oriented Data System (iRODS) is data
+management software.  iRODS virtualizes data storage resources, so users can
+take control of their data, regardless of where and on what device the data is
+stored.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
index ff14373bf3..baef61b824 100644
--- a/gnu/packages/jami.scm
+++ b/gnu/packages/jami.scm
@@ -62,13 +62,11 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
-(define %jami-version "20210326.1.cfba013")
+(define %jami-version "20210606.1.e2f9490")
 
-(define* (jami-source #:key keep-contrib-patches?)
-  "Return an origin object of the tarball release sources archive of Jami.
-When KEEP-CONTRIB-PATCHES? is #t, do not completely remove the contrib
-subdirectory, which contains patches to be applied to some of the dependencies
-of Jami."
+(define %jami-sources
+  ;; Return an origin object of the tarball release sources archive of the
+  ;; Jami project.
   (origin
     (method url-fetch)
     (uri (string-append "https://dl.jami.net/release/tarballs/jami_"
@@ -79,11 +77,9 @@ of Jami."
      `(begin
         ;; Delete multiple MiBs of bundled tarballs.  The contrib directory
         ;; contains the custom patches for pjproject and other libraries used
-        ;; by Savoir-faire Linux.
-        (if ,keep-contrib-patches?
-            (delete-file-recursively "daemon/contrib/tarballs")
-            (delete-file-recursively "daemon/contrib"))
-        ;; Remove code from unused Jami clients.
+        ;; by Jami.
+        (delete-file-recursively "daemon/contrib/tarballs")
+        ;; Remove the git submodule directories of unused Jami clients.
         (for-each delete-file-recursively '("client-android"
                                             "client-electron"
                                             "client-ios"
@@ -91,20 +87,16 @@ of Jami."
                                             "client-uwp"))))
     (sha256
      (base32
-      "1h0avma8bdzyznkz39crjyv2888bii4f49md15jg7970dyp5pdyz"))))
+      "1vpxv2dk3l9cahv6mxd2754pxs9mzrid5bgwvl6k1byzpq8y4smr"))))
 
-(define %sfl-patches (jami-source #:keep-contrib-patches? #t))
-
-(define %jami-sources (jami-source))
-
-;; Savoir-faire Linux maintains a set of patches for some key dependencies
-;; (currently pjproject and ffmpeg) of Jami that haven't yet been integrated
-;; upstream.  This procedure simplifies the process of applying these patches.x
-(define jami-apply-dependency-patches
+;; Jami maintains a set of patches for some key dependencies (currently
+;; pjproject and ffmpeg) of Jami that haven't yet been integrated upstream.
+;; This procedure simplifies the process of applying them.
+(define jami-apply-custom-patches
   '(lambda* (#:key inputs dep-name patches)
-     (let ((patches-directory "sfl-patches"))
+     (let ((patches-directory "patches"))
        (mkdir-p patches-directory)
-       (invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
+       (invoke "tar" "-xvf" (assoc-ref inputs "jami-sources")
                "-C" patches-directory
                "--strip-components=5"
                (string-append "ring-project/daemon/contrib/src/"
@@ -136,7 +128,7 @@ of Jami."
                         "pjproject-correct-the-cflags-field.patch"
                         "pjproject-fix-pkg-config-ldflags.patch"))))
     (native-inputs
-     `(("sfl-patches" ,%sfl-patches)
+     `(("jami-sources" ,%jami-sources)
        ,@(package-native-inputs pjproject)))
     (arguments
      (substitute-keyword-arguments (package-arguments pjproject)
@@ -144,7 +136,7 @@ of Jami."
         `(modify-phases ,phases
            (add-after 'make-source-files-writable 'apply-patches
              (lambda* (#:key inputs #:allow-other-keys)
-               (,jami-apply-dependency-patches
+               (,jami-apply-custom-patches
                 #:inputs inputs
                 #:dep-name "pjproject"
                 #:patches
@@ -166,7 +158,8 @@ of Jami."
                   "0015-update-local-preference-for-peer-reflexive-candidate"
                   "0016-use-addrinfo-instead-CFHOST"
                   "0017-CVE-2020-15260"
-                  "0018-CVE-2021-21375"))))))))))
+                  "0018-CVE-2021-21375"
+                  "0019-ignore-down-interfaces"))))))))))
 
 ;; The following variables are configure flags used by ffmpeg-jami.  They're
 ;; from the ring-project/daemon/contrib/src/ffmpeg/rules.mak file. We try to
@@ -387,7 +380,7 @@ of Jami."
   (package/inherit ffmpeg
     (name "ffmpeg-jami")
     (native-inputs
-     `(("sfl-patches" ,%sfl-patches)
+     `(("jami-sources" ,%jami-sources)
        ("libiconv" ,libiconv)
        ,@(package-native-inputs ffmpeg)))
     (supported-systems '("x86_64-linux" "i686-linux"
@@ -405,19 +398,15 @@ of Jami."
                 (for-each make-file-writable (find-files "."))))
             (add-after 'unpack 'apply-patches
               (lambda* (#:key inputs #:allow-other-keys)
-                (let ((jami-apply-dependency-patches
-                       ,jami-apply-dependency-patches))
-                  ;; These patches come from:
-                  ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
-                  (jami-apply-dependency-patches
-                   #:inputs inputs
-                   #:dep-name "ffmpeg"
-                   #:patches
-                   '("remove-mjpeg-log"
-                     "change-RTCP-ratio"
-                     "rtp_ext_abs_send_time"
-                     "libopusdec-enable-FEC"
-                     "libopusenc-enable-FEC"))))))))))))
+                ;; These patches come from:
+                ;; "ring-project/daemon/contrib/src/ffmpeg/rules.mak".
+                (,jami-apply-custom-patches
+                 #:inputs inputs #:dep-name "ffmpeg"
+                 #:patches '("remove-mjpeg-log"
+                             "change-RTCP-ratio"
+                             "rtp_ext_abs_send_time"
+                             "libopusdec-enable-FEC"
+                             "libopusenc-enable-FEC")))))))))))
 
 (define-public libring
   (package
@@ -486,7 +475,7 @@ protocols, as well as decentralized calling using P2P-DHT.")
      `(("libring" ,libring)
        ("network-manager" ,network-manager)))
     (propagated-inputs
-     `(("qtbase" ,qtbase)))     ; Qt is included in several installed headers.
+     `(("qtbase" ,qtbase-5)))     ; Qt is included in several installed headers.
     (arguments
      `(#:tests? #f                      ; There is no testsuite.
        #:configure-flags
@@ -579,28 +568,16 @@ decentralized calling using P2P-DHT.")
   (package
     (name "jami-qt")                    ;to be renamed 'jami' at some point
     (version %jami-version)
-    ;; The Qt client code is not yet part of the release tarball; fetch it
-    ;; from git for now.
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://git.jami.net/savoirfairelinux/jami-client-qt.git")
-                    (commit "ae21c17da5e8f730ae3895ccbc4da8047e3be1eb")))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1rf3lpk8c4qc12pi6pn4rdp7i8b83xv64yqr0q47rzv9s518qyjp"))))
+    (source %jami-sources)
     (build-system qt-build-system)
     (outputs '("out" "debug"))
     (arguments
      `(#:tests? #f                      ;no test suite
-       ;; TODO: Uncomment after switching back to the tarball source.
-       ;; #:phases
-       ;; (modify-phases %standard-phases
-       ;;     (add-after 'unpack 'change-directory
-       ;;       (lambda _
-       ;;         (chdir "client-qt"))))
-       ))
+       #:phases
+       (modify-phases %standard-phases
+           (add-after 'unpack 'change-directory
+             (lambda _
+               (chdir "client-qt"))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 5dcee9e6ac..bf5da8272f 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Mike Gerwitz <mtg@gnu.org>
+;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2432,14 +2433,16 @@ new Date();"))
   (package
     (inherit openjdk12)
     (name "openjdk")
-    (version "13.0")
+    (version "13.0.7")
     (source (origin
-              (method url-fetch)
-              (uri "http://hg.openjdk.java.net/jdk/jdk13/archive/9c250a7600e1.tar.bz2")
-              (file-name (string-append name "-" version ".tar.bz2"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk13u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0v0ljvx5dyzp96dw4z4ksw3pvasil7783mgnmd1wk9gads5ab8iq"))
+                "0wrrr0d7lz1v8qqm752mn4gz5l2vpl2kmx4ac3ysvk4mljc924hp"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -2474,14 +2477,16 @@ new Date();"))
   (package
     (inherit openjdk13)
     (name "openjdk")
-    (version "14.0")
+    (version "14.0.2")
     (source (origin
-              (method url-fetch)
-              (uri "http://hg.openjdk.java.net/jdk/jdk14/archive/bc54620a3848.tar.bz2")
-              (file-name (string-append name "-" version ".tar.bz2"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk14u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0z485pk7r1xpw8004g4nrwrzj17sabgx8yfdbxwfvzkjp8qyajch"))
+                "07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6"))
               (modules '((guix build utils)))
               (snippet
                `(begin
@@ -2516,6 +2521,67 @@ new Date();"))
        ("zip" ,zip)))
     (home-page "https://openjdk.java.net/projects/jdk/14")))
 
+(define-public openjdk15
+  (package
+    (inherit openjdk14)
+    (name "openjdk")
+    (version "15.0.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk15u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "168cr08nywp0q3vyj8njkhsmmnyd8rz9r58hk4xhzdzc6bdfkl1i"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("openjdk14:jdk" ,openjdk14 "jdk")
+       ("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)
+       ("which" ,which)
+       ("zip" ,zip)))
+    (home-page "https://openjdk.java.net/projects/jdk/15")))
+
+(define-public openjdk16
+  (package
+    (inherit openjdk15)
+    (name "openjdk")
+    (version "16.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/openjdk/jdk16u")
+                    (commit (string-append "jdk-" version "-ga"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ggddsbsar4dj2fycfqqqagqil7prhb30afvq6933rz7pa9apm2f"))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("openjdk15:jdk" ,openjdk15 "jdk")
+       ("pkg-config" ,pkg-config)
+       ("unzip" ,unzip)
+       ("which" ,which)
+       ("zip" ,zip)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments openjdk15)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'unpack 'make-templates-writable
+             (lambda _
+               ;; The build system copies a few .template files from the
+               ;; source directory into the build directory and then modifies
+               ;; them in-place.  So these files have to be writable.
+               (for-each
+                (lambda (file)
+                  (invoke "chmod" "u+w" file))
+                (find-files "src/java.base/share/classes/jdk/internal/misc/"
+                            "\\.template$"))
+               #t))))))
+    (home-page "https://openjdk.java.net/projects/jdk/16")))
+
 (define-public icedtea icedtea-8)
 
 
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index edf53d18ac..0cf3515b03 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1512,7 +1512,7 @@ build tree Yggdrasil.")
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (propagated-inputs
      `(("julia-jllwrappers" ,julia-jllwrappers)
        ("julia-libglvnd-jll" ,julia-libglvnd-jll)
diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm
index 816ca9c85b..50effa43f4 100644
--- a/gnu/packages/julia-xyz.scm
+++ b/gnu/packages/julia-xyz.scm
@@ -77,7 +77,7 @@ in this package.")
 (define-public julia-adapt
   (package
     (name "julia-adapt")
-    (version "3.3.0")
+    (version "3.3.1")
     (source
      (origin
        (method git-fetch)
@@ -86,7 +86,7 @@ in this package.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0zs5mjnql77jvrsm8lrlfkq5524wnrfxqxyqyjk8ka2xpxf9lp7n"))))
+        (base32 "009fj59fzhvfsyw35kakllsh36k3xlwyzq8qa5f5k598i3pq14i7"))))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaGPU/Adapt.jl")
     (synopsis "Package providing the @code{adapt} function, similar to @code{convert}")
@@ -116,6 +116,42 @@ be GPU compatible without throwing away the wrapper.")
 provides functions to run a few automatable checks for Julia packages.")
     (license license:expat)))
 
+(define-public julia-arrayinterface
+  (package
+    (name "julia-arrayinterface")
+    (version "3.1.17")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/ArrayInterface.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1yfl7wsciqm8ggfs6grxdrvpkxniy4c63d05f65v2j0c55z8a6mn"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-ifelse" ,julia-ifelse)
+       ("julia-requires" ,julia-requires)
+       ("julia-static" ,julia-static)))
+    (native-inputs
+     `(("julia-aqua" ,julia-aqua)
+       ("julia-bandedmatrices" ,julia-bandedmatrices)
+       ("julia-blockbandedmatrices" ,julia-blockbandedmatrices)
+       ("julia-ifelse" ,julia-ifelse)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (home-page "https://github.com/JuliaArrays/ArrayInterface.jl")
+    (synopsis "Base array interface primitives")
+    (description "The purpose of this library is to solidify extensions to the
+current @code{AbstractArray} interface, which are put to use in package
+ecosystems like @code{DifferentialEquations.jl}.  Since these libraries are
+live, this package will serve as a staging ground for ideas before they are
+merged into Base Julia.  For this reason, no functionality is exported so that
+if such functions are added and exported in a future Base Julia, there will be
+no issues with the upgrade.")
+    (license license:expat)))
+
 (define-public julia-arraylayouts
   (package
     (name "julia-arraylayouts")
@@ -140,6 +176,86 @@ appropriate BLAS or optimised Julia linear algebra routines.  This supports a
 much wider class of matrix types than Julia's in-built @code{StridedArray}.")
     (license license:expat)))
 
+(define-public julia-axisalgorithms
+  (package
+    (name "julia-axisalgorithms")
+    (version "1.0.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/timholy/AxisAlgorithms.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "00x85lnfln7xkfnirpplzyi8r6q92nfqwya8il156bf7b1pa20gk"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-woodburymatrices" ,julia-woodburymatrices)))
+    (home-page "https://github.com/timholy/AxisAlgorithms.jl")
+    (synopsis "Filtering and linear algebra routines for multidimensional arrays")
+    (description "@code{AxisAlgorithms} is a collection of filtering and linear
+algebra algorithms for multidimensional arrays.  For algorithms that would
+typically apply along the columns of a matrix, you can instead pick an arbitrary
+axis (dimension).")
+    (license license:expat)))
+
+(define-public julia-axisarrays
+  (package
+    (name "julia-axisarrays")
+    (version "0.4.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/AxisArrays.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "079rj7wvh9ks293g2ih1yah5k0sg8wazw08z3vg2bxj4s16wr64p"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-rangearrays" ,julia-rangearrays)
+       ("julia-intervalsets" ,julia-intervalsets)
+       ("julia-itertools" ,julia-itertools)))
+    (native-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-unitful" ,julia-unitful)))
+    (home-page "http://juliaarrays.github.io/AxisArrays.jl/latest/")
+    (synopsis "Arrays where each dimension can have a named axis with values")
+    (description "This package for the Julia language provides an array type
+(the AxisArray) that knows about its dimension names and axis values.  This
+allows for indexing by name without incurring any runtime overhead.  This
+permits one to implement algorithms that are oblivious to the storage order of
+the underlying arrays.  AxisArrays can also be indexed by the values along their
+axes, allowing column names or interval selections.")
+    (license license:expat)))
+
+(define-public julia-bandedmatrices
+  (package
+    (name "julia-bandedmatrices")
+    (version "0.16.9")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMatrices/BandedMatrices.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "105y5d3208s0byk3p0469sfy79lhjpdblk6karbwj8x7hl26na00"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arraylayouts" ,julia-arraylayouts)
+       ("julia-fillarrays" ,julia-fillarrays)))
+    (native-inputs
+     `(("julia-genericlinearalgebra" ,julia-genericlinearalgebra)))
+    (home-page "https://github.com/JuliaMatrices/BandedMatrices.jl")
+    (synopsis "Julia package for representing banded matrices")
+    (description "This package supports representing banded matrices by only
+the entries on the bands.")
+    (license license:expat)))
+
 (define-public julia-benchmarktools
   (package
     (name "julia-benchmarktools")
@@ -162,6 +278,70 @@ code easy by supplying a framework for writing and running groups of
 benchmarks as well as comparing benchmark results.")
     (license license:expat)))
 
+(define-public julia-blockarrays
+  (package
+    (name "julia-blockarrays")
+    (version "0.15.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/BlockArrays.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "15nd493bfkx92ihnr8dj8mb155dj44iqw266igv0qr5q0wad2bfr"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arraylayouts" ,julia-arraylayouts)
+       ("julia-fillarrays" ,julia-fillarrays)))
+    (native-inputs
+     `(("julia-lazyarrays" ,julia-lazyarrays)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (home-page "https://github.com/JuliaArrays/BlockArrays.jl")
+    (synopsis "BlockArrays for Julia")
+    (description "A block array is a partition of an array into blocks or
+subarrays.  This package has two purposes.  Firstly, it defines an interface for
+an @code{AbstractBlockArray} block arrays that can be shared among types
+representing different types of block arrays.  The advantage to this is that it
+provides a consistent API for block arrays.
+Secondly, it also implements two different type of block arrays that follow the
+@code{AbstractBlockArray} interface.  The type @code{BlockArray} stores each
+block contiguously while the type @code{PseudoBlockArray} stores the full matrix
+contiguously.  This means that @code{BlockArray} supports fast non copying
+extraction and insertion of blocks while @code{PseudoBlockArray} supports fast
+access to the full matrix to use in in for example a linear solver.")
+    (license license:expat)))
+
+(define-public julia-blockbandedmatrices
+  (package
+    (name "julia-blockbandedmatrices")
+    (version "0.10.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMatrices/BlockBandedMatrices.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0q9ni4pgdkb00jb42fdzlhx745852xx2666vr96k0c4l0cn5mi0y"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arraylayouts" ,julia-arraylayouts)
+       ("julia-bandedmatrices" ,julia-bandedmatrices)
+       ("julia-blockarrays" ,julia-blockarrays)
+       ("julia-fillarrays" ,julia-fillarrays)
+       ("julia-matrixfactorizations" ,julia-matrixfactorizations)))
+    (home-page "https://github.com/JuliaMatrices/BlockBandedMatrices.jl")
+    (synopsis "Block-banded matrices and banded-block-banded matrices")
+    (description "This package supports representing block-banded and
+banded-block-banded matrices by only storing the entries in the non-zero bands.
+A @code{BlockBandedMatrix} is a subtype of @code{BlockMatrix} of
+@code{BlockArrays.jl} whose layout of non-zero blocks is banded.")
+    (license license:expat)))
+
 (define-public julia-bufferedstreams
   (package
     (name "julia-bufferedstreams")
@@ -379,6 +559,54 @@ constructors, and sets up traits and show methods to make them easier to work
 with.")
     (license license:expat)))
 
+(define-public julia-colorvectorspace
+  (package
+    (name "julia-colorvectorspace")
+    (version "0.9.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGraphics/ColorVectorSpace.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1gx4k1bvf6lkzxphnvpkw857ihrkifhb68yvsj889k9pf1vda3fq"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-colortypes" ,julia-colortypes)
+       ("julia-specialfunctions" ,julia-specialfunctions)
+       ("julia-tensorcore" ,julia-tensorcore)))
+    (native-inputs
+     `(("julia-colors" ,julia-colors)))
+    (home-page "https://github.com/JuliaGraphics/ColorVectorSpace.jl")
+    (synopsis "Treat colors as n-vectors for the purposes of arithmetic")
+    (description "This package is an add-on to @code{ColorTypes.jl} and provides
+fast mathematical operations for objects with types such as RGB and Gray.
+Specifically, with this package both grayscale and RGB colors are treated as if
+they are points in a normed vector space.")
+    (license license:expat)))
+
+(define-public julia-combinatorics
+  (package
+    (name "julia-combinatorics")
+    (version "1.0.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMath/Combinatorics.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0gafqkqi874zfm9h99akw9q95lk3ih5gip2h8p12fj9h7rvyf4j5"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaMath/Combinatorics.jl")
+    (synopsis "Combinatorics library for Julia")
+    (description "This package provides a combinatorics library for Julia,
+focusing mostly (as of now) on enumerative combinatorics and permutations.")
+    (license license:expat)))
+
 (define-public julia-commonsubexpressions
   (package
     (name "julia-commonsubexpressions")
@@ -404,7 +632,7 @@ common subexpression elimination.")
 (define-public julia-compat
   (package
     (name "julia-compat")
-    (version "3.29.0")
+    (version "3.30.0")
     (source
      (origin
        (method git-fetch)
@@ -413,7 +641,7 @@ common subexpression elimination.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00wn28kmzn61fpj3i8f6p987927h9315j9pzzvjpfk5c0ppd1p6q"))))
+        (base32 "1qs6fm58dicdjy69qk5p0ndj2b7qsvg7rmydq7igvrvirad55v56"))))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaLang/Compat.jl")
     (synopsis "Compatibility across Julia versions")
@@ -443,6 +671,41 @@ way.")
 for construction of objects.")
     (license license:expat)))
 
+(define-public julia-coordinatetransformations
+  (package
+    (name "julia-coordinatetransformations")
+    (version "0.6.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGeometry/CoordinateTransformations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "15zbkn32v7xlz7559s0r5a0vkwmjwsswxaqpzijly4lky4jnp33d"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Documenter.jl not packaged yet.
+    (propagated-inputs
+     `(("julia-staticarrays" ,julia-staticarrays)))
+    ;(native-inputs
+    ; `(("julia-documenter" ,julia-documenter)
+    ;   ("julia-forwarddiff" ,julia-forwarddiff)
+    ;   ("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaGeometry/CoordinateTransformations.jl")
+    (synopsis "Coordinate transformations in Julia")
+    (description "@code{CoordinateTransformations} is a Julia package to manage
+simple or complex networks of coordinate system transformations.
+Transformations can be easily applied, inverted, composed, and differentiated
+(both with respect to the input coordinates and with respect to transformation
+parameters such as rotation angle).  Transformations are designed to be
+light-weight and efficient enough for, e.g., real-time graphical applications,
+while support for both explicit and automatic differentiation makes it easy to
+perform optimization and therefore ideal for computer vision applications such
+as SLAM (simultaneous localization and mapping).")
+    (license license:expat)))
+
 (define-public julia-crayons
   (package
     (name "julia-crayons")
@@ -566,6 +829,29 @@ without having to take direct dependencies.")
 to represent missing data.")
     (license license:expat)))
 
+(define-public julia-deepdiffs
+  (package
+    (name "julia-deepdiffs")
+    (version "1.2.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/ssfrr/DeepDiffs.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1gsbxb1d67g05h5bvzz3swdfih6404jrydy724a8dvbdgqvm3sds"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/ssfrr/DeepDiffs.jl")
+    (synopsis "Compute and pretty-print diffs for data structures")
+    (description "@code{DeepDiffs.jl} provides the @code{deepdiff} function,
+which finds and displays differences (diffs) between Julia data structures.  It
+supports @code{Vectors}, @code{Dicts}, and @code{String}s.  When diffing
+dictionaries where values associated with a particular key may change,
+@code{deepdiff} will recurse into value to provide a more detailed diff.")
+    (license license:expat)))
+
 (define-public julia-dictionaries
   (package
     (name "julia-dictionaries")
@@ -588,10 +874,46 @@ to represent missing data.")
 dictionaries in Julia, for improved productivity and performance.")
     (license license:expat)))
 
+(define-public julia-distances
+  (package
+    (name "julia-distances")
+    (version "0.10.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaStats/Distances.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1yqd9wg4z15k42mrp4y14j2x0sq7yrjhm5zpqklrw6w6j1c367ig"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-flakey-tests
+           (lambda _
+             (substitute* "test/test_dists.jl"
+               (("test dyz ≥") "test_nowarn dyz ≥")
+               (("test dist\\(y, x") "test_nowarn dist(y, x")
+               (("test dist\\(z, x") "test_nowarn dist(z, x")))))))
+    (propagated-inputs
+     `(("julia-statsapi" ,julia-statsapi)))
+    (native-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaStats/Distances.jl")
+    (synopsis "Julia package for evaluating distances (metrics) between vectors")
+    (description "A Julia package for evaluating distances(metrics) between
+vectors.  This package also provides optimized functions to compute column-wise
+and pairwise distances, which are often substantially faster than a
+straightforward loop implementation.")
+    (license license:expat)))
+
 (define-public julia-docstringextensions
   (package
     (name "julia-docstringextensions")
-    (version "0.8.4")
+    (version "0.8.5")
     (source
       (origin
         (method git-fetch)
@@ -600,7 +922,7 @@ dictionaries in Julia, for improved productivity and performance.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1fazv87f0j6hw03frx0gqgq9qpjbddqgccm9998a3329wrrs6gwd"))))
+         (base32 "0fy4kfnfacyfmlly6nqxn77dk2gqw80b69zb4m1i0i39zv3cpqfb"))))
     (build-system julia-build-system)
     (home-page "https://juliadocs.github.io/DocStringExtensions.jl/latest/")
     (synopsis "Extensions for Julia's docsystem")
@@ -678,6 +1000,63 @@ a given rule exists, and symbolically apply rules to simple Julia expressions.")
 stressing the robustness of differentiation tools.")
     (license license:expat)))
 
+(define-public julia-dualnumbers
+  (package
+    (name "julia-dualnumbers")
+    (version "0.6.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDiff/DualNumbers.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05vr5wbzqpchnb96b3pmn67x196mbfnkv7r9bdlz3gm56if4awk5"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-test-suite
+           (lambda _
+             (substitute* "test/runtests.jl"
+               ;; Seems to not play nicely with SpecialFunctions
+               ((".*isempty.*") "")))))))
+    (propagated-inputs
+     `(("julia-calculus" ,julia-calculus)
+       ("julia-nanmath" ,julia-nanmath)
+       ("julia-specialfunctions" ,julia-specialfunctions)))
+    (home-page "https://github.com/JuliaDiff/DualNumbers.jl")
+    (synopsis "Represent dual numbers and for perform dual algebra")
+    (description "The @code{DualNumbers} Julia package defines the @code{Dual}
+type to represent dual numbers, and supports standard mathematical operations on
+them.  Conversions and promotions are defined to allow performing operations on
+combinations of dual numbers with predefined Julia numeric types.")
+    (license license:expat)))
+
+(define-public julia-ellipsisnotation
+  (package
+    (name "julia-ellipsisnotation")
+    (version "1.1.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/ChrisRackauckas/EllipsisNotation.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0py46kxl702r8pw3v7x4cqllf7yc91b0dr7vb60xh2qi7d6y3jc7"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arrayinterface" ,julia-arrayinterface)))
+    (home-page "https://github.com/ChrisRackauckas/EllipsisNotation.jl")
+    (synopsis "Elipsis notation implementation")
+    (description "This implements the notation @code{..} for indexing arrays.
+It's similar to the Python @code{...} in that it means \"all of the columns
+before (or after)\".")
+    (license license:expat)))
+
 (define-public julia-example
   (let ((commit "f968c69dea24f851d0c7e686db23fa55826b5388"))
     (package
@@ -722,7 +1101,7 @@ performant tooling without requiring additional package dependencies.")
 (define-public julia-ffmpeg
   (package
     (name "julia-ffmpeg")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
       (origin
         (method git-fetch)
@@ -731,7 +1110,7 @@ performant tooling without requiring additional package dependencies.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1kwqixwhnnxs59xsw2k44xxnkx5fn4y49g58l5snfbszycxq7lls"))))
+         (base32 "1ldxbp0kq3ip67x7sp82dz56aq4p5i0chspbgx2zgskr6jcbjj1b"))))
     (build-system julia-build-system)
     (propagated-inputs
      `(("julia-ffmpeg-jll" ,julia-ffmpeg-jll)
@@ -743,6 +1122,78 @@ need the ffmpeg binaries + executables, and don't want the overhead of
 @code{VideoIO.jl}.")
     (license license:expat)))
 
+(define-public julia-fileio
+  (package
+    (name "julia-fileio")
+    (version "1.9.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaIO/FileIO.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1b18x43i737g5q41n9818xbnc2pgd98q1m6yw3h29yri0clg4gfx"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'reset-gzip-timestamps)
+         (add-after 'unpack 'skip-network-tests
+           (lambda _
+             ;; These tests try to download audio/video files.
+             (substitute* "test/query.jl"
+               (("testset.*(MP4|OGG|MATROSKA).*" all)
+                (string-append all "return\n")))
+             (substitute* "test/loadsave.jl"
+               (("testset.*CSVFiles.*" all)
+                (string-append all "return\n")))
+             ;; This test tries to download a Julia package.
+             (substitute* "test/error_handling.jl"
+               (("testset.*Not installed.*" all)
+                (string-append all "return\n")))
+             ;; This test tries to write to the store.
+             ;; (Error says can't find User 0)
+             (substitute* "test/runtests.jl"
+               ((".*test_mimesave.*") "")))))))
+    (propagated-inputs
+     `(("julia-requires" ,julia-requires)))
+    (native-inputs
+     `(("julia-colortypes" ,julia-colortypes)
+       ("julia-filepathsbase" ,julia-filepathsbase)
+       ("julia-http" ,julia-http)))
+    (home-page "https://github.com/JuliaIO/FileIO.jl")
+    (synopsis "Main Package for IO, loading all different kind of files")
+    (description "@code{FileIO} aims to provide a common framework for detecting
+file formats and dispatching to appropriate readers/writers.  The two core
+functions in this package are called @code{load} and @code{save}, and offer
+high-level support for formatted files (in contrast with Julia's low-level
+@code{read} and @code{write}).")
+    (license license:expat)))
+
+(define-public julia-filepathsbase
+  (package
+    (name "julia-filepathsbase")
+    (version "0.9.10")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/rofinn/FilePathsBase.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "136wm4ik6isrdanmpi4gdr1qw0qhr15i925qzjxbawk5hnyzwng9"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with JLSO.jl
+    (home-page "https://github.com/rofinn/FilePathsBase.jl")
+    (synopsis "Filesystem path types in Julia")
+    (description "@code{FilePathsBase.jl} provides a type based approach to
+working with filesystem paths in Julia.")
+    (license license:expat)))
+
 (define-public julia-fillarrays
   (package
     (name "julia-fillarrays")
@@ -767,6 +1218,45 @@ following types: @code{Eye}, @code{Fill}, @code{Ones}, @code{Zeros},
 @code{Trues} and @code{Falses}.")
     (license license:expat)))
 
+(define-public julia-finitediff
+  (package
+    (name "julia-finitediff")
+    (version "2.8.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDiff/FiniteDiff.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0ndazn02wn8ddwgjh1i32y7pbaqpw06f42ccilz5ya78cyrjhq2m"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; We don't want to run all the tests; the Downstream tests
+             ;; try to download the package registry.
+             (setenv "GROUP" "Core")
+             #t)))))
+    (propagated-inputs
+     `(("julia-arrayinterface" ,julia-arrayinterface)
+       ("julia-requires" ,julia-requires)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (native-inputs
+     `(("julia-bandedmatrices" ,julia-bandedmatrices)
+       ("julia-blockbandedmatrices" ,julia-blockbandedmatrices)
+       ("julia-safetestsets" ,julia-safetestsets)))
+    (home-page "https://github.com/JuliaDiff/FiniteDiff.jl")
+    (synopsis "Calculations of gradients, Jacobians, and Hessians")
+    (description "This package is for calculating derivatives, gradients,
+Jacobians, Hessians, etc. numerically.  This library is for maximizing speed
+while giving a usable interface to end users in a way that specializes on array
+types and sparsity.")
+    (license license:expat)))
+
 (define-public julia-finitedifferences
   (package
     (name "julia-finitedifferences")
@@ -880,6 +1370,34 @@ functions (or any callable object, really) using forward mode automatic
 differentiation (AD).")
     (license license:expat)))
 
+(define-public julia-functionwrappers
+  (package
+    (name "julia-functionwrappers")
+    (version "1.1.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/yuyichao/FunctionWrappers.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "02jilpjr7px6138dx2w7ixricvfgsxqdk84d9dgviranibhnjcxa"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-tests
+           (lambda _
+             (substitute* "test/runtests.jl"
+               (("testset \\\"Abstract.*" all)
+                (string-append all "return\n"))))))))
+    (home-page "https://github.com/yuyichao/FunctionWrappers.jl")
+    (synopsis "Type stable and efficient wrapper of arbitrary functions")
+    (description "This package provides a type stable and efficient wrapper of
+arbitrary functions.")
+    (license license:expat)))
+
 (define-public julia-fuzzycompletions
   (package
     (name "julia-fuzzycompletions")
@@ -900,6 +1418,74 @@ differentiation (AD).")
      "FuzzyCompletions provides fuzzy completions for a Julia runtime session.")
     (license license:expat)))
 
+(define-public julia-genericlinearalgebra
+  (package
+    (name "julia-genericlinearalgebra")
+    (version "0.2.5")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0ndwypa397z3pwzdgc3s9plaqlqf63g3d4px5pvym5psgr6lnm3l"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-test-suite
+           (lambda _
+             (substitute* "test/runtests.jl"
+               ((".*lapack.*") "")))))))
+    (native-inputs
+     `(("julia-quaternions" ,julia-quaternions)))
+    (home-page "https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl")
+    (synopsis "Generic numerical linear algebra")
+    (description "The purpose of this package is partly to extend linear algebra
+functionality in base to cover generic element types, e.g. @code{BigFloat} and
+@code{Quaternion}, and partly to be a place to experiment with fast linear
+algebra routines written in Julia (except for optimized BLAS).")
+    (license license:expat)))
+
+(define-public julia-genericschur
+  (package
+    (name "julia-genericschur")
+    (version "0.5.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/RalphAS/GenericSchur.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0kklc2niylvynhq0v49kdmy58m9jmr5jxjf287k1wr9r81fya3sz"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-test-suite
+           (lambda _
+             (substitute* "test/complex.jl"
+               ;; expected Array{Int32,1}, got a value of type Array{Int64,1}
+               (("A = _example") "#A = _example")
+               (("schurtest\\(A,20\\)") ""))
+             (substitute* "test/runtests.jl"
+               ;; Test errors relating to liblapack.so
+               ((".*complex\\.jl.*") "")
+               ((".*real\\.jl.*") "")
+               ;; GenericSVD is deprecated upstream
+               ((".*gordschur\\.jl.*") "")))))))
+    (home-page "https://github.com/RalphAS/GenericSchur.jl")
+    (synopsis "Schur decomposition of matrices with generic element types")
+    (description "The Schur decomposition is the workhorse for eigensystem
+analysis of dense matrices.  The diagonal eigen-decomposition of normal
+(especially Hermitian) matrices is an important special case, but for non-normal
+matrices the Schur form is often more useful.")
+    (license license:expat)))
+
 (define-public julia-graphics
   (package
     (name "julia-graphics")
@@ -1004,6 +1590,32 @@ library for parsing HTML.")
 implementing both a client and a server.")
     (license license:expat)))
 
+(define-public julia-identityranges
+  (package
+    (name "julia-identityranges")
+    (version "0.3.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/IdentityRanges.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0jvl4xn8f8k70sn473li5q62wbiycl5qi25b5k456h3a0j1lbiml"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    (home-page "https://github.com/JuliaArrays/IdentityRanges.jl")
+    (synopsis "Ranges that preserve indices of views")
+    (description "@code{IdentityRanges} are Julia-language a helper type for
+creating \"views\" of arrays.  They are a custom type of AbstractUnitRange that
+makes it easy to preserve the indices of array views.  The key property of an
+@code{IdentityRange r} is that @code{r[i] == i} (hence the name of the
+type/package), and that they support arbitrary start/stop indices (i.e., not
+just starting at 1).")
+    (license license:expat)))
+
 (define-public julia-ifelse
   (package
     (name "julia-ifelse")
@@ -1024,6 +1636,292 @@ implementing both a client and a server.")
 conditional ifelse.  It is similar to @code{Core.ifelse} but it is extendable.")
     (license license:expat)))
 
+(define-public julia-imageaxes
+  (package
+    (name "julia-imageaxes")
+    (version "0.6.9")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageAxes.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "15zqxani1jjh8849s7rdps6b6prqdwv8yxx893y536vkpk7i07qd"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-axisarrays" ,julia-axisarrays)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-reexport" ,julia-reexport)
+       ("julia-simpletraits" ,julia-simpletraits)))
+    (native-inputs
+     `(("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaImages/ImageAxes.jl")
+    (synopsis "Julia package for giving \"meaning\" to the axes of an image")
+    (description "This small package supports the representation of images as
+@code{AxisArrays} to endow the axes with \"meaning,\" and makes programming with
+such arrays easy via traits.")
+    (license license:expat)))
+
+(define-public julia-imagebase
+  (package
+    (name "julia-imagebase")
+    (version "0.1.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageBase.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1n63f2zs6ail9pcl7rzgv3l0z8v1idjsaza3zgvgy7iacxsdpcj2"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ImageMagick.jl.
+    (propagated-inputs
+     `(("julia-imagecore" ,julia-imagecore)
+       ("julia-reexport" ,julia-reexport)))
+    ;(native-inputs
+    ; `(("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-offsetarrays" ,julia-offsetarrays)
+    ;   ("julia-testimages" ,julia-testimages)))
+    (home-page "https://github.com/JuliaImages/ImageBase.jl")
+    (synopsis "Wrapper package around ImageCore")
+    (description "This is a twin package to @code{ImageCore} with functions that
+are used among many of the packages in JuliaImages.  The main purpose of this
+package is to reduce unnecessary compilation overhead from external
+dependencies.")
+    (license license:expat)))
+
+(define-public julia-imagecore
+  (package
+    (name "julia-imagecore")
+    (version "0.9.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageCore.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0d844lrilw7zjpax8zr5272a9s292wg4qk53mvm0n88yai598zd6"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ImageMagick.jl.
+    (propagated-inputs
+     `(("julia-abstractffts" ,julia-abstractffts)
+       ("julia-colors" ,julia-colors)
+       ("julia-colorvectorspace" ,julia-colorvectorspace)
+       ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
+       ("julia-graphics" ,julia-graphics)
+       ("julia-mappedarrays" ,julia-mappedarrays)
+       ("julia-mosaicviews" ,julia-mosaicviews)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-paddedviews" ,julia-paddedviews)
+       ("julia-reexport" ,julia-reexport)))
+    ;(native-inputs
+    ; `(("julia-aqua" ,julia-aqua)
+    ;   ("julia-colorvectorspace" ,julia-colorvectorspace)
+    ;   ("julia-documenter" ,julia-documenter)
+    ;   ("julia-fftw" ,julia-fftw)
+    ;   ("julia-imageinterminal" ,julia-imageinterminal)
+    ;   ("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-referencetests" ,julia-referencetests)
+    ;   ("julia-statistics" ,julia-statistics)))
+    (home-page "https://github.com/JuliaImages/ImageCore.jl")
+    (synopsis "Julia types for representing images")
+    (description "@code{ImageCore} is the lowest-level component of the system
+of packages designed to support image processing and computer vision.")
+    (license license:expat)))
+
+(define-public julia-imageinterminal
+  (package
+    (name "julia-imageinterminal")
+    (version "0.4.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageInTerminal.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1mqbv27qmnsr6wqvklzb4gawi7hp4wnaspszhaxny1m53q6wbifl"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ReferenceTests.jl.
+    (propagated-inputs
+     `(("julia-crayons" ,julia-crayons)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-imagetransformations" ,julia-imagetransformations)))
+    ;(native-inputs
+    ; `(("julia-coordinatetransformations" ,julia-coordinatetransformations)
+    ;   ("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-offsetarrays" ,julia-offsetarrays)
+    ;   ("julia-referencetests" ,julia-referencetests)
+    ;   ("julia-rotations" ,julia-rotations)
+    ;   ("julia-sparsearrays" ,julia-sparsearrays)
+    ;   ("julia-testimages" ,julia-testimages)))
+    (home-page "https://github.com/JuliaImages/ImageInTerminal.jl")
+    (synopsis "Julia package for displaying images in the terminal")
+    (description "@code{ImageInTerminal.jl} is a drop-in package that once
+imported changes a how a single @code{Colorant} and whole @code{Colorant} arrays
+(i.e. Images) are displayed in the interactive REPL.  The displayed images will
+be downscaled to fit into the size of your active terminal session.")
+    (license license:expat)))
+
+(define-public julia-imagemagick
+  (package
+    (name "julia-imagemagick")
+    (version "1.2.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaIO/ImageMagick.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "05vzv4jsj3l9pv6yrix28hlw7wnag0mqdfjwv8shn4x71hcfxl1p"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-failing-test
+           (lambda _
+             ;; These tests try to download from the imagemagick.org
+             (substitute* "test/runtests.jl"
+               ((".*readremote\\.jl.*") ""))
+             ;; Tests with the color gray are hard.
+             (substitute* "test/constructed_images.jl"
+               (("test (b == aa)" _ test) (string-append "test_nowarn " test))
+               (("test (B == map)" _ test) (string-append "test_nowarn " test)))
+             #t)))))
+    (propagated-inputs
+     `(("julia-fileio" ,julia-fileio)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-imagemagick-jll" ,julia-imagemagick-jll)))
+    (native-inputs
+     `(("julia-colors" ,julia-colors)
+       ("julia-colorvectorspace" ,julia-colorvectorspace)
+       ("julia-imagemetadata" ,julia-imagemetadata)
+       ("julia-imageshow" ,julia-imageshow)
+       ("julia-imagetransformations" ,julia-imagetransformations)
+       ("julia-indirectarrays" ,julia-indirectarrays)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-zipfile" ,julia-zipfile)))
+    (home-page "https://github.com/JuliaIO/ImageMagick.jl")
+    (synopsis "Thin wrapper for ImageMagick")
+    (description "This package provides a wrapper around ImageMagick version 6.
+It was split off from @code{Images.jl} to make image I/O more modular.")
+    (license license:expat)))
+
+(define-public julia-imagemetadata
+  (package
+    (name "julia-imagemetadata")
+    (version "0.9.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageMetadata.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0iv154ms370xgcr56bwsjl13iwmy671cbxjl9ld5yfj85pclcwi1"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-axisarrays" ,julia-axisarrays)
+       ("julia-imageaxes" ,julia-imageaxes)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-indirectarrays" ,julia-indirectarrays)))
+    (native-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-simpletraits" ,julia-simpletraits)
+       ("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaImages/ImageMetadata.jl")
+    (synopsis "Julia package for images having metadata")
+    (description "@code{ImageMetadata} is a simple package providing utilities
+for working with images that have metadata attached.  For example, you might
+want to associate an image with the date on which the picture was taken, or an
+MRI scan with patient data, or an astronomical image with sky coordinates and
+information about the detector used to acquire the image.")
+    (license license:expat)))
+
+(define-public julia-imageshow
+  (package
+    (name "julia-imageshow")
+    (version "0.3.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageShow.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "00wq3ab8y6nyhxwc5lpz9dnslsmcr1vg3cjdkh7wb7k6a8bw98mh"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; cycle with ImageMagick.jl.
+    (propagated-inputs
+     `(("julia-fileio" ,julia-fileio)
+       ("julia-imagebase" ,julia-imagebase)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-stackviews" ,julia-stackviews)))
+    ;(native-inputs
+    ; `(("julia-imagedistances" ,julia-imagedistances)
+    ;   ("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-suppressor" ,julia-suppressor)
+    ;   ("julia-testimages" ,julia-testimages)))
+    (home-page "https://github.com/JuliaImages/ImageShow.jl")
+    (synopsis
+     "Inline graphical display of images in Julia graphical environments")
+    (description "This package implements image @code{show} methods suitable
+for graphical platforms such as IJulia.  It is intended to provide convenient
+inline presentation of greyscale or color images.")
+    (license license:expat)))
+
+(define-public julia-imagetransformations
+  (package
+    (name "julia-imagetransformations")
+    (version "0.8.12")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/ImageTransformations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0i8gw68hljshsy9wdl5mrpbb31irhmayqyglsxi7jwm88iy9pxhm"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ImageMagick.jl.
+    (propagated-inputs
+     `(("julia-axisalgorithms" ,julia-axisalgorithms)
+       ("julia-colorvectorspace" ,julia-colorvectorspace)
+       ("julia-coordinatetransformations" ,julia-coordinatetransformations)
+       ("julia-identityranges" ,julia-identityranges)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-interpolations" ,julia-interpolations)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-rotations" ,julia-rotations)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    ;(native-inputs
+    ; `(("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-referencetests" ,julia-referencetests)
+    ;   ("julia-testimages" ,julia-testimages)))
+    (home-page "https://github.com/JuliaImages/ImageTransformations.jl")
+    (synopsis "Geometric transformations on images for Julia")
+    (description "This package provides support for image resizing, image
+rotation, and other spatial transformations of arrays.")
+    (license license:expat)))
+
 (define-public julia-indexing
   (package
     (name "julia-indexing")
@@ -1092,6 +1990,64 @@ indexed images, sometimes called \"colormap images\" or \"paletted images.\"")
 interfaces with @file{.ini} files.")
     (license license:expat)))
 
+(define-public julia-interpolations
+  (package
+    (name "julia-interpolations")
+    (version "0.13.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMath/Interpolations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "06wh4fc7hy20kq9iipk3w8v50vd09k7vkii43k8z1vw036f6l7x3"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-axisalgorithms" ,julia-axisalgorithms)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-ratios" ,julia-ratios)
+       ("julia-staticarrays" ,julia-staticarrays)
+       ("julia-woodburymatrices" ,julia-woodburymatrices)))
+    (native-inputs
+     `(("julia-dualnumbers" ,julia-dualnumbers)
+       ("julia-forwarddiff" ,julia-forwarddiff)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaMath/Interpolations.jl")
+    (synopsis "Continuous interpolation of discrete datasets")
+    (description "This package implements a variety of interpolation schemes for
+the Julia language.  It has the goals of ease-of-use, broad algorithmic support,
+and exceptional performance.")
+    (license license:expat)))
+
+(define-public julia-intervalsets
+  (package
+    (name "julia-intervalsets")
+    (version "0.5.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaMath/IntervalSets.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0gsz89cd3iygbl5qr389k9vwpg7w1nk0s90g25nsmk34y9hifxag"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-ellipsisnotation" ,julia-ellipsisnotation)))
+    (native-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    (home-page "https://github.com/JuliaMath/IntervalSets.jl")
+    (synopsis "Interval Sets for Julia")
+    (description "This package is intended to implement a \"minimal\" foundation
+for intervals upon which other packages might build.  In particular, we
+encourage type-piracy for the reason that only one interval package can
+unambiguously define the @code{..} and @code{±} operators.")
+    (license license:expat)))
+
 (define-public julia-invertedindices
   (package
     (name "julia-invertedindices")
@@ -1118,7 +2074,7 @@ as an index into any @code{AbstractArray} subtype, including OffsetArrays.")
 (define-public julia-iocapture
   (package
     (name "julia-iocapture")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
       (origin
         (method git-fetch)
@@ -1127,7 +2083,7 @@ as an index into any @code{AbstractArray} subtype, including OffsetArrays.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0ajlfh8f1g23bx5f8h70nrgr0zfwxaqnpxlka8l4qhjmnfqxl43a"))))
+         (base32 "0v76wbvg80g9nx0rjbcna82zk61krly1y9yhyfrjv2pf7mcr4idb"))))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaDocs/IOCapture.jl")
     (synopsis "Capture standard output and error streams")
@@ -1182,6 +2138,26 @@ Cassette.")
 extensions to the iterator interface.")
     (license license:expat)))
 
+(define-public julia-itertools
+  (package
+    (name "julia-itertools")
+    (version "1.3.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaCollections/IterTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0haf974kcqj6arv4if97ahs4w3dmvslh6ab3hl57r9s41ic36xdq"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaCollections/IterTools.jl")
+    (synopsis "Common functional iterator patterns")
+    (description
+     "Common functional iterator patterns (formerly @code{Iterators.jl}).")
+    (license license:expat)))
+
 (define-public julia-json
   (package
     (name "julia-json")
@@ -1207,6 +2183,84 @@ extensions to the iterator interface.")
 and printing JSON documents.")
     (license license:expat)))
 
+(define-public julia-json3
+  (package
+    (name "julia-json3")
+    (version "1.8.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/quinnj/JSON3.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1mc3byqm6ygg4mjpdrx6grkr4gn06p25nr7050jgq1k2cf06iqba"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-parsers" ,julia-parsers)
+       ("julia-structtypes" ,julia-structtypes)))
+    (home-page "https://github.com/quinnj/JSON3.jl")
+    (synopsis "JSON package for Julia")
+    (description "This package provides another JSON package for Julia, with a
+focus on speed and slick struct mapping.")
+    (license license:expat)))
+
+(define-public julia-lazyarrays
+  (package
+    (name "julia-lazyarrays")
+    (version "0.21.6")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/LazyArrays.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0zm1ihvi8v2823ap59ajqcs46s5z0nai8l70n51f6j9dzp8lc3cy"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-arraylayouts" ,julia-arraylayouts)
+       ("julia-fillarrays" ,julia-fillarrays)
+       ("julia-macrotools" ,julia-macrotools)
+       ("julia-matrixfactorizations" ,julia-matrixfactorizations)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (native-inputs
+     `(("julia-tracker" ,julia-tracker)))
+    (home-page "https://github.com/JuliaArrays/LazyArrays.jl")
+    (synopsis "Lazy arrays and linear algebra")
+    (description "This package supports lazy analogues of array operations like
+@code{vcat}, @code{hcat}, and multiplication.  This helps with the
+implementation of matrix-free methods for iterative solvers.")
+    (license license:expat)))
+
+(define-public julia-logexpfunctions
+  (package
+    (name "julia-logexpfunctions")
+    (version "0.2.4")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaStats/LogExpFunctions.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0rvms3mmq8a1viqlyzdgs2ccddcy6j0c677dlb8m5nk6hkiwr16n"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-docstringextensions" ,julia-docstringextensions)))
+    (native-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    (home-page "https://github.com/JuliaStats/LogExpFunctions.jl")
+    (synopsis "Special functions based on @code{log} and @code{exp}")
+    (description "Various special functions based on log and exp moved from
+@code{StatsFuns.jl} into a separate package, to minimize dependencies.  These
+functions only use native Julia code, so there is no need to depend on
+@code{librmath} or similar libraries.")
+    (license license:expat)))
+
 (define-public julia-macrotools
   (package
     (name "julia-macrotools")
@@ -1389,6 +2443,38 @@ with @code{missing} values in Julia.")
 to be temporarily overloaded for the purpose of testing.")
     (license license:expat)))
 
+(define-public julia-mosaicviews
+  (package
+    (name "julia-mosaicviews")
+    (version "0.3.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/MosaicViews.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "04fgxghyb7n2ji76xkb1r1fjhzsdbgmp5wsfyyn3yjcsdqbyp8pz"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ImageCore.jl
+    (propagated-inputs
+     `(("julia-mappedarrays" ,julia-mappedarrays)
+       ("julia-paddedviews" ,julia-paddedviews)
+       ("julia-stackviews" ,julia-stackviews)))
+    ;(native-inputs
+    ; `(("julia-colorvectorspace" ,julia-colorvectorspace)
+    ;   ("julia-imagecore" ,julia-imagecore)))
+    (home-page "https://github.com/JuliaArrays/MosaicViews.jl")
+    (synopsis
+     "Lazily view a 3D or 4D array as an expanded 2D array as a matrix of slices")
+    (description "When visualizing images, it is not uncommon to provide a 2D
+view of different image sources.  For example, comparing multiple images of
+different sizes, getting a preview of machine learning dataset.  This package
+aims to provide easy-to-use tools for such tasks.")
+    (license license:expat)))
+
 (define-public julia-msgpack
   (package
     (name "julia-msgpack")
@@ -1409,6 +2495,32 @@ to be temporarily overloaded for the purpose of testing.")
 Julia, with type-driven, overloadable packing/unpacking functionality.")
     (license license:expat)))
 
+(define-public julia-mutablearithmetics
+  (package
+    (name "julia-mutablearithmetics")
+    (version "0.2.19")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/jump-dev/MutableArithmetics.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1zjfq5sh0rc941pbc9kvnr6a2lpr4yd276mw62vbncbz9jg52rrg"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    (home-page "https://github.com/jump-dev/MutableArithmetics.jl")
+    (synopsis "Interface for arithmetics on mutable types in Julia")
+    (description "MutableArithmetics is a Julia package which allows:
+@itemize
+@item mutable types to implement mutable arithmetics
+@item algorithms that could exploit mutable arithmetics to exploit them while
+still being completely generic
+@end itemize")
+    (license license:mpl2.0)))
+
 (define-public julia-nanmath
   (package
     (name "julia-nanmath")
@@ -1429,6 +2541,72 @@ Julia, with type-driven, overloadable packing/unpacking functionality.")
 @code{NaN} instead of throwing a @code{DomainError}.")
     (license license:expat)))
 
+(define-public julia-nlsolversbase
+  (package
+    (name "julia-nlsolversbase")
+    (version "7.8.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaNLSolvers/NLSolversBase.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0n8qh5a2ghjx1j70zxn0hmh8gzpa46kmjg8di879y9974bfk0f98"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-diffresults" ,julia-diffresults)
+       ("julia-finitediff" ,julia-finitediff)
+       ("julia-forwarddiff" ,julia-forwarddiff)))
+    (native-inputs
+     `(("julia-optimtestproblems" ,julia-optimtestproblems)
+       ("julia-recursivearraytools" ,julia-recursivearraytools)))
+    (home-page "https://github.com/JuliaNLSolvers/NLSolversBase.jl")
+    (synopsis "Optimization and equation solver software in JuliaNLSolvers")
+    (description "This package aims at establishing common ground for Optim.jl,
+LineSearches.jl, and NLsolve.jl.  The common ground is mainly the types used to
+hold objective related callables, information about the objectives, and an
+interface to interact with these types.")
+    (license license:expat)))
+
+(define-public julia-nnlib
+  (package
+    (name "julia-nnlib")
+    (version "0.7.19")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/FluxML/NNlib.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "163v7hkmbxxgnq7qigmqjdqcdywi2njxbh54w8v0hf4bddnalbba"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'drop-cuda-support
+           (lambda _
+             (substitute* "test/runtests.jl"
+               (("using CUDA") ""))
+             (setenv "NNLIB_TEST_CUDA" "false"))))))
+    (propagated-inputs
+     `(("julia-adapt" ,julia-adapt)
+       ("julia-chainrulescore" ,julia-chainrulescore)
+       ("julia-requires" ,julia-requires)))
+    (native-inputs
+     `(("julia-chainrulestestutils" ,julia-chainrulestestutils)
+       ("julia-stablerngs" ,julia-stablerngs)
+       ("julia-zygote" ,julia-zygote)))
+    (home-page "https://github.com/FluxML/NNlib.jl")
+    (synopsis "Neural Network primitives with multiple backends")
+    (description "This package will provide a library of functions useful for
+machine learning, such as softmax, sigmoid, convolutions and pooling.  It
+doesn't provide any other \"high-level\" functionality like layers or AD.")
+    (license license:expat)))
+
 (define-public julia-optimtestproblems
   (package
     (name "julia-optimtestproblems")
@@ -1476,7 +2654,7 @@ which they were added to the collection.")
 (define-public julia-offsetarrays
   (package
     (name "julia-offsetarrays")
-    (version "1.8.0")
+    (version "1.9.2")
     (source
      (origin
        (method git-fetch)
@@ -1485,7 +2663,7 @@ which they were added to the collection.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0s02175pb2pkwg87g7vva2hsrh2ksj9ariw9ccd7axbdm2vd2zcs"))))
+        (base32 "10mycjmjlp80c1bsdmk1hnb5hg81zqd2dcxyaa9p55ykla051a9q"))))
     (build-system julia-build-system)
     (propagated-inputs
      `(("julia-adapt" ,julia-adapt)))
@@ -1498,6 +2676,33 @@ have arbitrary indices, similar to those found in some other programming
 languages like Fortran.")
     (license license:expat)))
 
+(define-public julia-paddedviews
+  (package
+    (name "julia-paddedviews")
+    (version "0.5.8")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/PaddedViews.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0ran2vj6ahlzib0g77y7g0jhavy3k9s2mqq23ybpgp9z677wf26h"))))
+    (build-system julia-build-system)
+    (arguments
+     '(#:tests? #f))                    ;require Documenter, not packaged yet
+    (propagated-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    (home-page "https://github.com/JuliaArrays/PaddedViews.jl")
+    (synopsis "Add virtual padding to the edges of an array")
+    (description "@code{PaddedViews} provides a simple wrapper type,
+@code{PaddedView}, to add \"virtual\" padding to any array without copying data.
+Edge values not specified by the array are assigned a @code{fillvalue}.
+Multiple arrays may be \"promoted\" to have common indices using the
+@code{paddedviews} function.")
+    (license license:expat)))
+
 (define-public julia-parameters
   (package
     (name "julia-parameters")
@@ -1546,7 +2751,7 @@ utilities for Julia.")
 (define-public julia-pdmats
   (package
     (name "julia-pdmats")
-    (version "0.11.0")
+    (version "0.11.1")
     (source
       (origin
         (method git-fetch)
@@ -1555,7 +2760,7 @@ utilities for Julia.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "1gyhfjmb0qlqgx2398b356cph25bnpjagcslckv41bzyf8pg3ybl"))))
+         (base32 "0bc2gmpd30rkclvxyfnssjllp0pk63h0vvgr8862phm5ia83r8j0"))))
     (build-system julia-build-system)
     (home-page "https://github.com/JuliaStats/PDMats.jl")
     (synopsis
@@ -1639,6 +2844,33 @@ plotting components.")
 purposes of compression when there are few unique elements.")
     (license license:expat)))
 
+(define-public julia-positivefactorizations
+  (package
+    (name "julia-positivefactorizations")
+    (version "0.2.4")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/timholy/PositiveFactorizations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1wxy6ak7f3hvibcgc8q88cgkf9zvi649mmjy1zlkx1qk80hgvz23"))))
+    (build-system julia-build-system)
+    (native-inputs
+     `(("julia-forwarddiff" ,julia-forwarddiff)
+       ("julia-reversediff" ,julia-reversediff)))
+    (home-page "https://github.com/timholy/PositiveFactorizations.jl")
+    (synopsis "Positive-definite \"approximations\" to matrices")
+    (description "@code{PositiveFactorizations} is a package for computing a
+positive definite matrix decomposition (factorization) from an arbitrary
+symmetric input.  The motivating application is optimization (Newton or
+quasi-Newton methods), in which the canonical search direction -H/g (H being the
+Hessian and g the gradient) may not be a descent direction if H is not positive
+definite.")
+    (license license:expat)))
+
 (define-public julia-prettytables
   (package
     (name "julia-prettytables")
@@ -1709,6 +2941,29 @@ human-readable format.")
 format.")
     (license license:expat)))
 
+(define-public julia-quaternions
+  (package
+    (name "julia-quaternions")
+    (version "0.4.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGeometry/Quaternions.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1zhynyvchc50hywws2jznpkwydr3njh8cv84d2ylyabhcwwmil9s"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-dualnumbers" ,julia-dualnumbers)))
+    (home-page "https://github.com/JuliaGeometry/Quaternions.jl")
+    (synopsis "Quaternion and dual-quaternion functionality")
+    (description "Quaternions are best known for their suitability as
+representations of 3D rotational orientation.  They can also be viewed as an
+extension of complex numbers.")
+    (license license:expat)))
+
 (define-public julia-queryoperators
   (package
     (name "julia-queryoperators")
@@ -1754,6 +3009,26 @@ array data structures where the columns of the arrays are generated (on the fly)
 by Ranges.")
     (license license:expat)))
 
+(define-public julia-ratios
+  (package
+    (name "julia-ratios")
+    (version "0.4.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/timholy/Ratios.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1a4fd4jq4qjply29rkwg3m1clfndjsbckj1b1dab1bc35h2c6yxh"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/timholy/Ratios.jl")
+    (synopsis "Faster Rational-like types for Julia")
+    (description "This package provides types similar to Julia's @code{Rational}
+type, which make some sacrifices but have better computational performance.")
+    (license license:expat)))
+
 (define-public julia-recipesbase
   (package
     (name "julia-recipesbase")
@@ -1778,25 +3053,130 @@ possible to describe visualization routines that can be used as components in
 more complex visualizations.")
     (license license:expat)))
 
+(define-public julia-recipespipeline
+  (package
+    (name "julia-recipespipeline")
+    (version "0.3.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaPlots/RecipesPipeline.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0wa342m2d9k4kihr6g9i0wpbsipp0n11kh9jmlw4pc5msmz4rxr0"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with Plots.jl.
+    (propagated-inputs
+     `(("julia-nanmath" ,julia-nanmath)
+       ("julia-plotutils" ,julia-plotutils)
+       ("julia-recipesbase" ,julia-recipesbase)))
+    (home-page "http://juliaplots.org/RecipesPipeline.jl/dev/")
+    (synopsis "Utilities for processing recipes")
+    (description "This package was factored out of @code{Plots.jl} to allow any
+other plotting package to use the recipe pipeline.  In short, the extremely
+lightweight @code{RecipesBase.jl} package can be depended on by any package to
+define \"recipes\": plot specifications of user-defined types, as well as custom
+plot types.  @code{RecipePipeline.jl} contains the machinery to translate these
+recipes to full specifications for a plot.")
+    (license license:expat)))
+
+(define-public julia-recursivearraytools
+  (package
+    (name "julia-recursivearraytools")
+    (version "2.11.4")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/SciML/RecursiveArrayTools.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "14wh39g3l0fzzrkxgxijklilqcgpxsk1d44dfpfl48gsp0n6icjm"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with OrdinaryDiffEq.jl.
+    (propagated-inputs
+     `(("julia-arrayinterface" ,julia-arrayinterface)
+       ("julia-docstringextensions" ,julia-docstringextensions)
+       ("julia-requires" ,julia-requires)
+       ("julia-recipesbase" ,julia-recipesbase)
+       ("julia-staticarrays" ,julia-staticarrays)
+       ("julia-zygoterules" ,julia-zygoterules)))
+    ;(native-inputs
+    ; `(("julia-forwarddiff" ,julia-forwarddiff)
+    ;   ("julia-nlsolve" ,julia-nlsolve)
+    ;   ("julia-ordinarydiffeq" ,julia-ordinarydiffeq)
+    ;   ("julia-structarrays" ,julia-structarrays)
+    ;   ("julia-unitful" ,julia-unitful)
+    ;   ("julia-zygote" ,julia-zygote)))
+    (home-page "https://github.com/SciML/RecursiveArrayTools.jl")
+    (synopsis "Tools for handling objects like arrays of arrays and deeper nestings")
+    (description "@code{RecursiveArrayTools.jl} is a set of tools for dealing with
+recursive arrays like arrays of arrays.")
+    (license license:expat)))
+
 (define-public julia-reexport
   (package
     (name "julia-reexport")
-    (version "1.0.0")
+    (version "1.1.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/simonster/Reexport.jl")
-             (commit version)))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1yhhja1zz6dy5f4fd19bdwd6jwgj7q4w3avzgyg1hjhmdl8jrh0s"))))
+        (base32 "1wj4vnxxmnblm6ajkkdvwb7v4835qrrc406q5is74qv1n68xql7l"))))
     (build-system julia-build-system)
     (home-page "https://github.com/simonster/Reexport.jl")
     (synopsis "Re-export modules and symbols")
     (description "This package provides tools to re-export modules and symbols.")
     (license license:expat)))
 
+(define-public julia-referencetests
+  (package
+    (name "julia-referencetests")
+    (version "0.9.7")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaTesting/ReferenceTests.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0mm6bjhs8a21pippww6b08b5frmnb9m6k8xrszrwq9zhc879zpc9"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; Cycle with ImageCore.jl through ImageMagick.jl.
+    (propagated-inputs
+     `(("julia-deepdiffs" ,julia-deepdiffs)
+       ("julia-distances" ,julia-distances)
+       ("julia-fileio" ,julia-fileio)
+       ("julia-imagecore" ,julia-imagecore)
+       ("julia-imageinterminal" ,julia-imageinterminal)))
+    ;(native-inputs
+    ; `(("julia-csvfiles" ,julia-csvfiles)
+    ;   ("julia-dataframes" ,julia-dataframes)
+    ;   ("julia-gr" ,julia-gr)
+    ;   ("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-imagetransformations" ,julia-imagetransformations)
+    ;   ("julia-plots" ,julia-plots)
+    ;   ("julia-testimages" ,julia-testimages)))
+    (home-page "https://juliatesting.github.io/ReferenceTests.jl/latest/")
+    (synopsis "Utility package for comparing data against reference files")
+    (description "@code{ReferenceTests.jl} is a Julia package that adds a couple
+of additional macros to your testing toolbox.  In particular, it focuses on
+functionality for testing values against reference files, which in turn the
+package can help create and update if need be.")
+    (license license:expat)))
+
 (define-public julia-requires
   (package
     (name "julia-requires")
@@ -1823,6 +3203,40 @@ another package is loaded, so that explicit dependencies (and long load times)
 can be avoided.")
     (license license:expat)))
 
+(define-public julia-reversediff
+  (package
+    (name "julia-reversediff")
+    (version "1.9.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaDiff/ReverseDiff.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1wrr6sqj2xl9grkvdp88rw3manxy9vbx28zq2wssya5ns1xabsnl"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-diffresults" ,julia-diffresults)
+       ("julia-diffrules" ,julia-diffrules)
+       ("julia-forwarddiff" ,julia-forwarddiff)
+       ("julia-functionwrappers" ,julia-functionwrappers)
+       ("julia-macrotools" ,julia-macrotools)
+       ("julia-nanmath" ,julia-nanmath)
+       ("julia-specialfunctions" ,julia-specialfunctions)
+       ("julia-staticarrays" ,julia-staticarrays)))
+    (native-inputs
+     `(("julia-difftests" ,julia-difftests)
+       ("julia-fillarrays" ,julia-fillarrays)))
+    (home-page "https://github.com/JuliaDiff/ReverseDiff.jl")
+    (synopsis "Reverse Mode Automatic Differentiation for Julia")
+    (description "@code{ReverseDiff.jl} is a fast and compile-able tape-based
+reverse mode @acronym{AD, automatic differentiation}, that implements methods to
+take gradients, Jacobians, Hessians, and higher-order derivatives of native
+Julia functions (or any callable object, really).")
+    (license license:expat)))
+
 (define-public julia-richardson
   (package
     (name "julia-richardson")
@@ -1850,6 +3264,35 @@ high-order accuracy, assuming that @code{f(x0+h)} has a Taylor series or some
 other power series in @code{h}.")
     (license license:expat)))
 
+(define-public julia-rotations
+  (package
+    (name "julia-rotations")
+    (version "1.0.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGeometry/Rotations.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1l1a3bnrpv9qdksnk3c8j82ik3yrnpsmnyxyiy3gc1yjya5pajqj"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-staticarrays" ,julia-staticarrays)))
+    (native-inputs
+     `(("julia-benchmarktools" ,julia-benchmarktools)
+       ("julia-forwarddiff" ,julia-forwarddiff)
+       ("julia-unitful" ,julia-unitful)))
+    (home-page "https://github.com/JuliaGeometry/Rotations.jl")
+    (synopsis "Julia implementations for different rotation parameterisations")
+    (description "This package implements various 3D rotation parameterizations
+and defines conversions between them.  At their heart, each rotation
+parameterization is a 3×3 unitary (orthogonal) matrix (based on the
+@code{StaticArrays.jl} package), and acts to rotate a 3-vector about the origin
+through matrix-vector multiplication.")
+    (license license:expat)))
+
 (define-public julia-safetestsets
   ;; The only release tag is the first commit in the repository.
   (let ((commit "e553edc4c753344d38349304b9ff5483c3b8ff21")
@@ -1880,7 +3323,7 @@ a loadable module.")
 (define-public julia-scratch
   (package
     (name "julia-scratch")
-    (version "1.0.3")
+    (version "1.1.0")
     (source
       (origin
         (method git-fetch)
@@ -1890,7 +3333,7 @@ a loadable module.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "06n0rc7grlg9igkdlrql83q0zpc97bh2hfzj5mw4spfik8ahw2aa"))))
+          "09xni9rrrax17fxjz04j1b48mk9ffww5rcbagh66jklr89mrkqhx"))))
     (build-system julia-build-system)
     (arguments
      `(#:tests? #f))    ; Test suite tries to access the Julia package registry.
@@ -1905,6 +3348,52 @@ user-friendly, scratch spaces should, in general, not be used for a storing
 files that the user must interact with through a file browser.")
     (license license:expat)))
 
+(define-public julia-showoff
+  (package
+    (name "julia-showoff")
+    (version "1.0.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaGraphics/Showoff.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1g4hqvjjpwbrs7fnllyl5w66yj6qlvpvzpygym2nvf01m1ps6m53"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/JuliaGraphics/Showoff.jl")
+    (synopsis "Nicely format an array of n things for tables and plots")
+    (description "@code{Showoff} provides an interface for consistently
+formatting an array of n things, e.g. numbers, dates, unitful values.  It's used
+in @code{Gadfly}, @code{Plots} and @code{Makie} to label axes and keys.")
+    (license license:expat)))
+
+(define-public julia-simpletraits
+  (package
+    (name "julia-simpletraits")
+    (version "0.9.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/mauro3/SimpleTraits.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1aaq91klwxb0r3ckwihf7rd7jvg70757nkhp5ip4cc3lspnnip23"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-macrotools" ,julia-macrotools)))
+    (home-page "https://github.com/mauro3/SimpleTraits.jl")
+    (synopsis "Simple Traits for Julia")
+    (description "This package provides a macro-based implementation of traits.
+The main idea behind traits is to group types outside the type-hierarchy and to
+make dispatch work with that grouping.  The difference to Union-types is that
+types can be added to a trait after the creation of the trait, whereas Union
+types are fixed after creation.")
+    (license license:expat)))
+
 (define-public julia-sortingalgorithms
   (package
     (name "julia-sortingalgorithms")
@@ -2010,10 +3499,50 @@ default are documented to have non-stable streams (which for example enables
 some performance improvements).")
     (license license:expat)))
 
+(define-public julia-stackviews
+  (package
+    (name "julia-stackviews")
+    (version "0.1.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaArrays/StackViews.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1fwiaxdpx1z9dli3jr8kyraych0jbdiny3qklynf0r13px25r6i7"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f  ; Documenter.jl not packaged yet
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'skip-doctest
+           (lambda _
+             (substitute* "test/runtests.jl"
+               ((".*doctest.*") ""))
+             #t)))))
+    (propagated-inputs
+     `(("julia-offsetarrays" ,julia-offsetarrays)))
+    ;(native-inputs
+    ; `(("julia-aqua" ,julia-aqua)
+    ;   ("julia-documenter" ,julia-documenter)))
+    (home-page "https://github.com/JuliaArrays/StackViews.jl")
+    (synopsis "No more catcat")
+    (description "StackViews provides only one array type: @code{StackView}.
+There are multiple ways to understand @code{StackView}:
+@itemize
+@item inverse of @code{eachslice}
+@item @code{cat} variant
+@item view object
+@item lazy version of @code{repeat} special case
+@end itemize")
+    (license license:expat)))
+
 (define-public julia-static
   (package
     (name "julia-static")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
       (origin
         (method git-fetch)
@@ -2022,7 +3551,7 @@ some performance improvements).")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "01rbiysrkaca03gh55rc5zykkp63bhzaqgrxxj88lnisrbzmf0d2"))))
+         (base32 "1sxfp169c7caaklpp7mz8770ayk9w8xw133m95kf7v11sya1lb7v"))))
     (build-system julia-build-system)
     (propagated-inputs
      `(("julia-ifelse" ,julia-ifelse)))
@@ -2082,6 +3611,82 @@ moving the function definition to @code{StatsAPI.jl} and each package taking a
 dependency on it.")
     (license license:expat)))
 
+(define-public julia-statsbase
+  (package
+    (name "julia-statsbase")
+    (version "0.33.8")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaStats/StatsBase.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "02y4pm5yvg713a2pn970bbcfkrn2h133rxbxk1da18svhqw3czhi"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-dataapi" ,julia-dataapi)
+       ("julia-datastructures" ,julia-datastructures)
+       ("julia-missings" ,julia-missings)
+       ("julia-sortingalgorithms" ,julia-sortingalgorithms)
+       ("julia-statsapi" ,julia-statsapi)))
+    (native-inputs
+     `(("julia-stablerngs" ,julia-stablerngs)))
+    (home-page "https://github.com/JuliaStats/StatsBase.jl")
+    (synopsis "Basic statistics for Julia")
+    (description "StatsBase.jl is a Julia package that provides basic support
+for statistics.  Particularly, it implements a variety of statistics-related
+functions, such as scalar statistics, high-order moment computation, counting,
+ranking, covariances, sampling, and empirical density estimation.")
+    (license license:expat)))
+
+(define-public julia-stringdistances
+  (package
+    (name "julia-stringdistances")
+    (version "0.10.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/matthieugomez/StringDistances.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0n5707wplbibzhhv1xmshvc025d7xk6mnikclc3hvq5cdc0gy9f7"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-distances" ,julia-distances)))
+    (home-page "https://github.com/matthieugomez/StringDistances.jl")
+    (synopsis "String Distances in Julia")
+    (description "This package provides string distances in Julia.  Distances
+are defined for @code{AbstractStrings}, and any iterator that define
+@code{length()}.  The package also defines Distance \"modifiers\" that can be
+applied to any distance.")
+    (license license:expat)))
+
+(define-public julia-structtypes
+  (package
+    (name "julia-structtypes")
+    (version "1.7.2")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaData/StructTypes.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "02mn4kkhn3927dk7945c9bjwlldihydxgn5ilmqqvs8dknvbw8p1"))))
+    (build-system julia-build-system)
+    (home-page "https://juliadata.github.io/StructTypes.jl/stable/")
+    (synopsis "Abstract definitions and convenience methods for Julia objects")
+    (description "This package provides the @code{StructTypes.StructType} trait
+for Julia types to declare the kind of \"struct\" they are, providing
+serialization/deserialization packages patterns and strategies to automatically
+construct objects.")
+    (license license:expat)))
+
 (define-public julia-suppressor
   (package
     (name "julia-suppressor")
@@ -2222,6 +3827,74 @@ product preserves all dimensions}, and @acronym{boxdot, contracts neighboring
 dimensions}.")
     (license license:expat)))
 
+(define-public julia-testimages
+  (package
+    (name "julia-testimages")
+    (version "1.5.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/JuliaImages/TestImages.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1lnfsmx33qspyvxw0cykwh7il8xykjpcw1080sisn95ngz2qhdmy"))))
+    (build-system julia-build-system)
+    (arguments
+     `(#:tests? #f))    ; cycle with ImageMagick.jl
+    (propagated-inputs
+     `(("julia-axisarrays" ,julia-axisarrays)
+       ("julia-colortypes" ,julia-colortypes)
+       ("julia-fileio" ,julia-fileio)
+       ("julia-offsetarrays" ,julia-offsetarrays)
+       ("julia-stringdistances" ,julia-stringdistances)))
+    ;(native-inputs
+    ; `(("julia-colors" ,julia-colors)
+    ;   ("julia-fixedpointnumbers" ,julia-fixedpointnumbers)
+    ;   ("julia-imagecontrastadjustment" ,julia-imagecontrastadjustment)
+    ;   ("julia-imagemagick" ,julia-imagemagick)
+    ;   ("julia-ometiff" ,julia-ometiff)
+    ;   ("julia-referencetests" ,julia-referencetests)))
+    (home-page "https://testimages.juliaimages.org/")
+    (synopsis "Standard test images for Julia")
+    (description "This package provides a convenient Julia interface for loading
+standard named test images and example images for the internal usage in
+@code{JuliaImages}.  This can be used in conjunction with the @code{Images}
+package.")
+    (license license:expat)))
+
+(define-public julia-tracker
+  (package
+    (name "julia-tracker")
+    (version "0.2.12")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/FluxML/Tracker.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "1s4mdywbp7nli7z985fqaj1rs4i6d92b1jx3lhg0qhk1s5wc0v8j"))))
+    (build-system julia-build-system)
+    (propagated-inputs
+     `(("julia-adapt" ,julia-adapt)
+       ("julia-diffrules" ,julia-diffrules)
+       ("julia-forwarddiff" ,julia-forwarddiff)
+       ("julia-macrotools" ,julia-macrotools)
+       ("julia-nanmath" ,julia-nanmath)
+       ("julia-nnlib" ,julia-nnlib)
+       ("julia-requires" ,julia-requires)
+       ("julia-specialfunctions" ,julia-specialfunctions)))
+    (native-inputs
+     `(("julia-pdmats" ,julia-pdmats)))
+    (home-page "https://github.com/FluxML/Tracker.jl")
+    (synopsis "Operator overloading reverse-mode automatic differentiator")
+    (description "@code{Tracker.jl} previously provided @code{Flux.jl} with
+automatic differentiation for its machine learning platform.")
+    (license license:expat)))
+
 (define-public julia-typedtables
   (package
     (name "julia-typedtables")
@@ -2305,7 +3978,7 @@ working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
 (define-public julia-unitful
   (package
     (name "julia-unitful")
-    (version "1.7.0")
+    (version "1.8.0")
     (source
      (origin
        (method git-fetch)
@@ -2314,7 +3987,7 @@ working with @acronym{URIs,Uniform Resource Identifiers}, as defined in RFC
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "03nq2nc2mwiqg3z1gksfsnyd7dmsjsya5c2v1n5h0ab22vm59f0m"))))
+        (base32 "0n9z4skj04h033qbn22cn6f5jby6584j6pizvs7bdbk93h39ch1g"))))
     (build-system julia-build-system)
     (propagated-inputs
      `(("julia-constructionbase" ,julia-constructionbase)))
@@ -2352,7 +4025,7 @@ useful in order to support @code{VersionNumber} comparisons applied to
 (define-public julia-weakrefstrings
   (package
     (name "julia-weakrefstrings")
-    (version "0.6.2")
+    (version "1.0.0")
     (source
       (origin
         (method git-fetch)
@@ -2361,16 +4034,40 @@ useful in order to support @code{VersionNumber} comparisons applied to
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0129mf1axxycb1ans3idlvw8ch0hmdrl80q98jw63f99zz3ddipr"))))
+         (base32 "1p8q62zsmi02vyckgy25ddmxns223xrhx575x9lfgvr7jrw1kl2p"))))
     (build-system julia-build-system)
     (propagated-inputs
-     `(("julia-dataapi" ,julia-dataapi)))
+     `(("julia-dataapi" ,julia-dataapi)
+       ("julia-parsers" ,julia-parsers)))
     (home-page "https://github.com/JuliaData/WeakRefStrings.jl")
     (synopsis "Efficient string representation and transfer in Julia")
     (description "This package provides a minimal String type for Julia that
 allows for efficient string representation and transfer")
     (license license:expat)))
 
+(define-public julia-woodburymatrices
+  (package
+    (name "julia-woodburymatrices")
+    (version "0.5.3")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/timholy/WoodburyMatrices.jl")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "04yykivi8zrbryxlmb0p5xa6lma8iq22r5s863117dnnqj5gaffd"))))
+    (build-system julia-build-system)
+    (home-page "https://github.com/timholy/WoodburyMatrices.jl")
+    (synopsis "Support for the Woodbury matrix identity for Julia")
+    (description "This package provides support for the Woodbury matrix identity
+for the Julia programming language.  This is a generalization of the
+Sherman-Morrison formula.  Note that the Woodbury matrix identity is notorious
+for floating-point roundoff errors, so be prepared for a certain amount of
+inaccuracy in the result.")
+    (license license:expat)))
+
 (define-public julia-zipfile
   (package
     (name "julia-zipfile")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index ef47a912ad..7a3b6b26a8 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -98,7 +98,7 @@
                 "10c5xs5shk0dcshpdxg564ay5y8hgmvfvmlhmhjf0dy79kcah3c3"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("qtbase" ,qtbase))) ; For tests (needs qmake)
+     `(("qtbase" ,qtbase-5))) ; For tests (needs qmake)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -165,7 +165,7 @@ common build settings used in software produced by the KDE community.")
        ("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:configure-flags
        '("-DCMAKE_CXX_FLAGS=-fPIC"
@@ -204,9 +204,9 @@ common build settings used in software produced by the KDE community.")
        ("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)
@@ -252,7 +252,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Open Collaboration Service client library")
     (description "Attica is a Qt library that implements the Open
@@ -286,7 +286,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
        ("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      ;; TODO: qtdeclarative (yields one failing test)
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:configure-flags
        (list (string-append
@@ -319,7 +319,7 @@ Bluetooth stack.  It is used by the KDE Bluetooth stack, BlueDevil.")
        ("fdupes" ,fdupes)
        ("libxml2" ,libxml2)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Default KDE Plasma 5 icon theme")
     (description "Breeze provides a freedesktop.org compatible icon theme.
@@ -356,7 +356,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.")
        ("python-jinja2" ,python-jinja2)
        ("python-pyyaml" ,python-pyyaml)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Doxygen Tools")
     (description "This framework contains scripts and data for building API
@@ -389,7 +389,7 @@ documentation.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("bzip2" ,bzip2)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("xz" ,xz)
        ("zlib" ,zlib)))
     (home-page "https://community.kde.org/Frameworks")
@@ -425,7 +425,7 @@ GZip format, via a subclass of QIODevice.")
        ("tzdata" ,tzdata-for-tests)))
     (inputs
      `(("libical" ,libical)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -485,7 +485,7 @@ and the older vCalendar.")
        ("gperf" ,gperf)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "String encoding and manipulating library")
     (description "KCodecs provide a collection of methods to manipulate
@@ -523,7 +523,7 @@ Internet).")
        ("qttools" ,qttools)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -588,7 +588,7 @@ propagate their changes to their respective configuration files.")
        ;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
        ("xorg-server" ,xorg-server-for-tests))) ; for the tests
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -644,7 +644,7 @@ many more.")
        ("dbus" ,dbus)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("kinit" ,kinit-bootstrap))) ;; kinit-bootstrap: kinit package which does not depend on kdbusaddons.
     (arguments
@@ -688,7 +688,7 @@ as well as an API to create KDED modules.")
        ("qttools" ,qttools)))
     (inputs
      `(("avahi" ,avahi) ; alternativly dnssd could be used
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Network service discovery using Zeroconf")
     (description "KDNSSD is a library for handling the DNS-based Service
@@ -711,7 +711,7 @@ infrastructure.")
                 "1h6pgg89gvxl8gw7wmkabyqqrzad5pxyv5lsmn1fl4ir8lcc5q2l"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("boost" ,boost)
        ("graphviz" ,graphviz)
        ("kiconthemes" ,kiconthemes)
@@ -749,7 +749,7 @@ replace the other outdated Graphviz tools.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for graphical user interfaces")
@@ -784,7 +784,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://invent.kde.org/frameworks/kholidays")
     (synopsis "Library for regional holiday information")
@@ -812,7 +812,7 @@ other special events for a geographical region.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)))
     (arguments
@@ -854,7 +854,7 @@ translation scripting.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("libxscrnsaver" ,libxscrnsaver) ; X-Screensaver based poller, fallback mode
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Reporting of idle time of user and system")
@@ -889,7 +889,7 @@ or user activity.")
        ;; TODO: Find a way to activate this optional include without
        ;; introducing a recursive dependency.
        ;;("plasma-frameworks" ,plasma-framework) ;; Tier 3!
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols2" ,qtquickcontrols2)
        ("qtsvg" ,qtsvg)
@@ -919,7 +919,7 @@ of applications that follow the Kirigami Human Interface Guidelines.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item models extending the Qt model-view framework")
@@ -971,7 +971,7 @@ model to observers
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Set of item views extending the Qt model-view framework")
     (description "KItemViews includes a set of views, which can be used with
@@ -997,7 +997,7 @@ to flat and hierarchical lists.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Data plotting library")
     (description "KPlotWidget is a QWidget-derived class that provides a virtual
@@ -1028,7 +1028,7 @@ pixel units.")
        ;; Optional, for compile-time validation of syntax definition files:
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1074,7 +1074,7 @@ integration with a custom editor as well as a ready-to-use
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtwayland" ,qtwayland)
        ("wayland" ,wayland)
        ("wayland-protocols" ,wayland-protocols)))
@@ -1116,7 +1116,7 @@ represented by a QPoint or a QSize.")
        ("qttools" ,qttools)
        ("xorg-server" ,xorg-server-for-tests)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1157,7 +1157,7 @@ configuration pages, message boxes, and password requests.")
        ("xorg-server" ,xorg-server-for-tests))) ; for the tests
     (inputs
      `(("libxrender" ,libxrender)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("xcb-utils-keysyms" ,xcb-util-keysyms)
        ("xcb-util-wm" ,xcb-util-wm)))
@@ -1219,7 +1219,7 @@ lower level classes for interaction with the X Windowing System.")
      ;; Headers contain #include <ModemManager/ModemManager.h>
      `(("modem-manager" ,modem-manager)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1258,7 +1258,7 @@ messages.")
      ;;                 #include <libnm/NetworkManager.h>
      `(("network-manager" ,network-manager)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1292,7 +1292,7 @@ which are used in DBus communication.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("fdupes" ,fdupes)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Oxygen provides the standard icon theme for the KDE desktop")
     (description "Oxygen icon theme for the KDE desktop")
@@ -1317,7 +1317,7 @@ which are used in DBus communication.")
     (inputs
      `(("libdmtx" ,libdmtx)
        ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase))) ;; TODO: rethink: nix propagates this
+       ("qtbase" ,qtbase-5))) ;; TODO: rethink: nix propagates this
     (home-page "https://api.kde.org/frameworks/prison/html/index.html")
     (synopsis "Barcode generation abstraction layer")
     (description "Prison is a Qt-based barcode abstraction layer/library and
@@ -1343,7 +1343,7 @@ provides uniform access to generation of barcodes with data.")
      `(("glib" ,glib)
        ("pulseaudio" ,pulseaudio)
        ("qtdeclarative" ,qtdeclarative)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/libraries/pulseaudio-qt/")
     (synopsis "Qt bindings for PulseAudio")
     (description
@@ -1378,7 +1378,7 @@ libpulse.")
        ("kcoreaddons" ,kcoreaddons)
        ("kiconthemes" ,kiconthemes) ; optional
        ("kirigami" ,kirigami)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols2" ,qtquickcontrols2)))
     (home-page "https://community.kde.org/Frameworks")
@@ -1417,7 +1417,7 @@ feel.")
        ("flex" ,flex)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("udev" ,eudev)))
     ;; TODO: Add runtime-only dependency MediaPlayerInfo
@@ -1449,7 +1449,7 @@ system.")
     (inputs
      `(("hunspell" ,hunspell)
        ;; TODO: hspell (for Hebrew), Voikko (for Finish)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Multi-language spell checker")
     (description "Sonnet is a plugin-based spell checking library for Qt-based
@@ -1474,7 +1474,7 @@ ASpell and HUNSPELL.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Helper for multithreaded programming")
     (description "ThreadWeaver is a helper for multithreaded programming.  It
@@ -1519,7 +1519,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way."
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)))
     (home-page "https://community.kde.org/Frameworks")
@@ -1553,7 +1553,7 @@ with other frameworks.")
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("polkit-qt" ,polkit-qt)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1599,7 +1599,7 @@ utilities.")
     (inputs
      `(("kconfig" ,kconfig)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Powerful autocompletion framework and widgets")
     (description "This framework helps implement autocompletion in Qt-based
@@ -1625,7 +1625,7 @@ integrated it into your application's other widgets.")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("xorg-server" ,xorg-server))) ; for the tests
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (propagated-inputs
      `(;; As required by KF5ContactsConfig.cmake.
        ("kcodecs" ,kcodecs)
@@ -1672,7 +1672,7 @@ localized country name to ISO 3166-1 alpha 2 code mapping and vice verca.
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Graceful handling of application crashes")
@@ -1705,7 +1705,7 @@ application crashes.")
        ("libxslt" ,libxslt)
        ("perl" ,perl)
        ("perl-uri" ,perl-uri)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1775,7 +1775,7 @@ from DocBook files.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("qtmultimedia" ,qtmultimedia)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ;; Required run-time packages
        ("catdoc" ,catdoc)
        ;; Optional run-time packages
@@ -1811,7 +1811,7 @@ by applications to write metadata.")
     (inputs
      `(("karchive" ,karchive) ; for Krita and OpenRaster images
        ("openexr" ,openexr) ; for OpenEXR high dynamic-range images
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1865,7 +1865,7 @@ formats.")
     (inputs
      `(("kcoreaddons" ,kcoreaddons)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Widgets for showing progress of asynchronous jobs")
@@ -1897,7 +1897,7 @@ asynchronous jobs.")
        ("kcoreaddons" ,kcoreaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtspeech" ,qtspeech)
        ;; TODO: Think about adding dbusmenu-qt5 from
        ;; https://launchpad.net/libdbusmenu-qt
@@ -1945,7 +1945,7 @@ covers feedback and persistent events.")
        ("kcoreaddons" ,kcoreaddons)
        ("kdoctools" ,kdoctools)
        ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2001,7 +2001,7 @@ were traditional plugins.")
      `(("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ;; TODO: utempter, for managing UTMP entries
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f ; FIXME: 1/1 tests fail.
        #:phases
@@ -2046,7 +2046,7 @@ and communicating with them using a pty.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Converting physical units")
     (description "KUnitConversion provides functions to convert values in
@@ -2073,7 +2073,7 @@ gallons).")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("kcodecs" ,kcodecs)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "RSS/Atom parser library")
     (description "@code{syndication} supports RSS (0.9/1.0, 0.91..2.0) and
@@ -2123,7 +2123,7 @@ between feed formats.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("lmdb" ,lmdb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)))
     (arguments
@@ -2182,7 +2182,7 @@ maintaining an index of the contents of your files.")
      `(("boost" ,boost)
        ("kactivities" ,kactivities)
        ("kconfig" ,kconfig)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Access usage statistics collected by the activity manager")
@@ -2219,7 +2219,7 @@ by which applications, and what documents have been linked to which activity.")
        ("kcoreaddons" ,kcoreaddons)
        ("kiconthemes" ,kiconthemes)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2281,7 +2281,7 @@ using the XBEL format.")
        ("kpackage" ,kpackage)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Utilities for KDE System Settings modules")
@@ -2316,7 +2316,7 @@ KCModules can be created with the KConfigWidgets framework.")
        ("kguiaddons" ,kguiaddons)
        ("ki18n" ,ki18n)
        ;; todo: PythonModuleGeneration
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qttools" ,qttools)))
     (arguments
      `(#:phases
@@ -2376,7 +2376,7 @@ their settings.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("libepoxy" ,libepoxy)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)))
     (arguments
@@ -2423,7 +2423,7 @@ that offer bindings to some of the Frameworks.")
        ("kdoctools" ,kdoctools)
        ("kinit" ,kinit)
        ("kservice" ,kservice)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Central daemon of KDE work spaces")
     (description "KDED stands for KDE Daemon.  KDED runs in the background and
@@ -2453,7 +2453,7 @@ started on demand.")
      `(("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
        ("kdoctools" ,kdoctools)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ;; optional:
        ("kcompletion" ,kcompletion)
        ("kconfigwidgets" ,kconfigwidgets)
@@ -2498,7 +2498,7 @@ ini-style description files.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kservice" ,kservice)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "User interface for running shell commands with root privileges")
     (description "KDESU provides functionality for building GUI front ends for
@@ -2531,7 +2531,7 @@ with su and ssh respectively.")
        ("kparts" ,kparts)
        ("kservice" ,kservice)
        ("kwallet" ,kwallet)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtwebkit" ,qtwebkit)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Integration for QtWebKit")
@@ -2561,7 +2561,7 @@ engine WebKit via QtWebKit.")
      `(("karchive" ,karchive)
        ("kconfig" ,kconfig)
        ("kcoreaddons" ,kcoreaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -2605,7 +2605,7 @@ emoticons coming from different providers.")
        ("kservice" ,kservice)
        ("kwindowsystem" ,kwindowsystem)
        ("libxcb" ,libxcb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
     (home-page "https://community.kde.org/Frameworks")
@@ -2643,7 +2643,7 @@ window does not need focus for them to be activated.")
        ("ki18n" ,ki18n)
        ("kitemviews" ,kitemviews)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (arguments
      `(#:phases
@@ -2721,7 +2721,7 @@ in applications using the KDE Frameworks.")
        ("kxmlgui" ,kxmlgui)
        ("libcap" ,libcap) ; to install start_kdeinit with CAP_SYS_RESOURCE
        ("plasma-framework" ,plasma-framework)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Library to speed up start of applications on KDE workspaces")
@@ -2781,7 +2781,7 @@ consumption.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)
        ("qtx11extras" ,qtx11extras)
        ("sonnet" ,sonnet)))
@@ -2863,7 +2863,7 @@ KIO enabled infrastructure.")
        ("kjobwidgets" ,kjobwidgets)
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
@@ -2916,7 +2916,7 @@ specification.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Configuration dialog for desktop notifications")
@@ -2970,7 +2970,7 @@ notifications which can be embedded in your application.")
        ("kjobwidgets" ,kjobwidgets)
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
     (home-page "https://community.kde.org/Frameworks")
@@ -3002,7 +3002,7 @@ widgets with a user-interface defined in terms of actions.")
        ("ki18n" ,ki18n)
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (arguments
      `(#:tests? #f)) ; FIXME: 1/3 tests fail.
@@ -3053,7 +3053,7 @@ to easily extend the contacts collection.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)
        ("threadweaver" ,threadweaver)))
@@ -3117,7 +3117,7 @@ typed.")
        ("kdbusaddons" ,kdbusaddons)
        ("kdoctools" ,kdoctools)
        ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f ; FIXME: 6/10 tests fail.
        #:phases
@@ -3192,7 +3192,7 @@ types or handled by application specific code.")
        ("kxmlgui" ,kxmlgui)
        ("libgit2" ,libgit2)
        ("perl" ,perl)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
        ("qtxmlpatterns" ,qtxmlpatterns)
@@ -3262,7 +3262,7 @@ library.")
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtspeech" ,qtspeech)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Text editing widgets")
@@ -3305,7 +3305,7 @@ It supports rich text as well as plain text.")
        ("libgcrypt" ,libgcrypt)
        ("phonon" ,phonon)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Safe desktop-wide storage for passwords")
     (description "This framework contains an interface to KWallet, a safe
@@ -3345,7 +3345,7 @@ the passwords on KDE work spaces.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sonnet" ,sonnet)))
     (arguments
      `(#:tests? #f ; FIXME: 1/5 tests fail.
@@ -3398,7 +3398,7 @@ descriptions for integrating actions from plugins.")
        ("kservice" ,kservice)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "XML-RPC client")
@@ -3457,7 +3457,7 @@ setUrl, setUserAgent and call.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols2" ,qtquickcontrols2)
        ("qtsvg" ,qtsvg)
@@ -3504,7 +3504,7 @@ script engines.")
        ("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kirigami" ,kirigami)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (arguments
      `(#:tests? #f  ;; seem to require network; don't find QTQuick components
@@ -3582,7 +3582,7 @@ need.")
        ("knotificantions" ,knotifications)
        ("kpackage" ,kpackage)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (arguments
      `(#:phases
@@ -3656,7 +3656,7 @@ workspace.")
        ("ktextwidgets" ,ktextwidgets)
        ("kunitconversion" ,kunitconversion)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (inputs
      `(("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
@@ -3764,7 +3764,7 @@ http://community.kde.org/Frameworks/Porting_Notes should help with this.")
        ("libpng" ,libpng)
        ("openssl" ,openssl)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("sonnet" ,sonnet)))
     (home-page "https://community.kde.org/Frameworks")
@@ -3798,7 +3798,7 @@ technology and using KJS for JavaScript support.")
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("pcre" ,pcre)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 support for Javascript scripting in Qt
 applications")
@@ -3831,7 +3831,7 @@ support.")
     (inputs
      `(("ki18n" ,ki18n)
        ("kjs" ,kjs)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 embedded Javascript engine for Qt")
@@ -3866,7 +3866,7 @@ QObjects, so you can script your applications.")
        ("kparts" ,kparts)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 plugin interface for media player features")
     (description "KMediaPlayer builds on the KParts framework to provide a
@@ -3903,7 +3903,7 @@ KParts instead.")
        ("kparts" ,kparts)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "KDE Frameworks 5 solution for application scripting")
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 617937002e..223e1aab7a 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -90,7 +90,7 @@
        ("purpose" ,purpose)
        ("qca" ,qca)
        ("qoauth" ,qoauth)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtnetworkauth" ,qtnetworkauth)
        ("qtwebkit" ,qtwebkit)
        ("sonnet" ,sonnet)))
@@ -162,7 +162,7 @@ Other notable features include:
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("qca" ,qca)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ))
     (home-page "http://www.kde.org/")
     (synopsis "Versatile and user-friendly download manager")
@@ -213,7 +213,7 @@ This package is part of the KDE networking module.")
        ("kwindowsystem" ,kwindowsystem)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qca" ,qca)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
@@ -302,7 +302,7 @@ Features are:
        ("phonon" ,phonon)
        ("qca" ,qca)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("speex" ,speex)
        ("v4l-utils" ,v4l-utils)
        ;; TODO: Xmms
@@ -358,7 +358,7 @@ This package is part of the KDE networking module.")
        ("libssh2" ,libssh)
        ;; TODO: libvnc{server,client} - is not tigervnc-{server,client}
        ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/internet/org.kde.krdc")
     (synopsis "Remote desktop client")
     (description "KRDC is a client application that allows you to view or even
@@ -412,7 +412,7 @@ This package is part of the KDE networking module.")
        ;; TODO: LibKWorkspace -> plasma-workspace?
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)
        ("qtwebkit" ,qtwebkit)
        ("solid" ,solid)
@@ -447,7 +447,7 @@ a full-featured client for BitTorrent.")
        ("kpimcommon" ,kpimcommon)
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; 2/7 tests fail (due to network issues?)
     (home-page "https://invent.kde.org/pim/libgravatar")
@@ -482,7 +482,7 @@ unnecessary network operations.")
        ("kio" ,kio)
        ("libgcrypt" ,libgcrypt)
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://invent.kde.org/network/libktorrent")
     (synopsis "BitTorrent protocol library for C++ / Qt 5 / KDE Frameworks")
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 35058363d3..21ca996246 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -71,7 +71,7 @@
        ("libkcompactdisc" ,libkcompactdisc)
        ("libvorbis" ,libvorbis)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/multimedia/org.kde.kio_audiocd")
     (synopsis "Transparent audio CD integration for applications using the KDE
 Platform")
@@ -117,7 +117,7 @@ This package is part of the KDE multimedia module.")
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
        ("phonon-backend-gstreamer" ,phonon-backend-gstreamer)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://kde.org/applications/multimedia/org.kde.dragonplayer")
     (synopsis "Simple video player")
@@ -169,7 +169,7 @@ This package is part of the KDE multimedia module.")
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects) ; not listed as dependency
        ("qtmultimedia" ,qtmultimedia)
@@ -226,7 +226,7 @@ its own database.  You can build and play your own playlist.")
        ("kconfig" ,kconfig)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/multimedia/org.kde.ffmpegthumbs")
     (synopsis "Video thumbnail generator for KDE using ffmpeg")
     (description "
@@ -272,7 +272,7 @@ This package is part of the KDE multimedia module.")
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
        ("phonon-backend-gstreamer" ,phonon-backend-gstreamer)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("taglib" ,taglib)))
     (home-page "https://kde.org/applications/multimedia/org.kde.juk")
@@ -368,7 +368,7 @@ This package is part of the KDE multimedia module.")
        ("libsndfile" ,libsndfile)
        ("libvorbis" ,libvorbis)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtwebkit" ,qtwebkit)
        ("shared-mime-info" ,shared-mime-info)
        ("solid" ,solid)
@@ -414,7 +414,7 @@ available CD drives.")
        ("kxmlgui" ,kxmlgui)
        ("libxscrnsaver" ,libxscrnsaver)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
        ("v4l-utils" ,v4l-utils) ; libdvbv5
@@ -468,7 +468,7 @@ autoloading of subtitle files for use while playing video.")
        ("kparts" ,kparts)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("purpose" ,purpose)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtquickcontrols" ,qtquickcontrols)
@@ -523,7 +523,7 @@ camera.  Use it to take pictures and make videos to share.")
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("plasma-framework" ,plasma-framework)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://kde.org/applications/multimedia/org.kde.kmix")
     (synopsis "Volume control and mixer")
@@ -566,7 +566,7 @@ This package is part of the KDE multimedia module.")
        ("libxcb" ,libxcb) ;; FIXME: why does cmake not find XEVIE and XPRINT?
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("cairo" ,cairo)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
@@ -642,7 +642,7 @@ Some features:
        ("opus" ,opus)
        ("oxygen-icons" ,oxygen-icons) ; default icon set
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("zlib" ,zlib)))
     (home-page "https://kde.org/applications/multimedia/org.kde.kwave")
@@ -699,7 +699,7 @@ Its features include:
        ("kio" ,kio)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("libmusicbrainz" ,libmusicbrainz)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ; Most tests require network
     (home-page "https://invent.kde.org/multimedia/libkcddb")
@@ -727,7 +727,7 @@ Its features include:
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (home-page "https://invent.kde.org/multimedia/libkcompactdisc")
     (synopsis "KDE library for playing & ripping CDs")
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 74e8bdb8fd..db73941b42 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -79,7 +79,7 @@
        ;; Do NOT add mysql or postgresql to the inputs. Otherwise the binaries
        ;; and wrapped files will refer to them, even if the user choices none
        ;; of these.  Executables are searched on $PATH then.
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sqlite" ,sqlite)))
     (arguments
      `(#:tests? #f ;; TODO 135/167 tests fail
@@ -151,7 +151,7 @@ programs.")
        ("ksmtp" ,ksmtp)
        ("ktextwidgets" ,ktextwidgets)
        ("kwallet" ,kwallet)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f))  ;; TODO: 1/1 test fails
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
@@ -196,7 +196,7 @@ collection and item views.")
        ("kxmlgui" ,kxmlgui)
        ("prison" ,prison)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)
        ("sonnet" ,sonnet)))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
@@ -240,7 +240,7 @@ to list and filter contacts.")
        ("kmime" ,kmime)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (arguments
      `(#:phases
@@ -283,7 +283,7 @@ with emails through Akonadi easier.")
        ("kcodecs" ,kcodecs)
        ("ki18n" ,ki18n)
        ("kmime" ,kmime)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/kdepim/akonadi/html/index.html")
     (synopsis "Akonadi notes access library")
     (description "Akonadi Notes is a library that effectively bridges the
@@ -325,7 +325,7 @@ wrapping notes into KMime::Message objects.")
        ("kmime" ,kmime)
        ("krunner" ,krunner)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("xapian" ,xapian)))
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -390,7 +390,7 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwallat" ,kwallet)
        ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/incidenceeditor")
     (synopsis "KDE PIM library for editing incidences")
     (description "This library provides an incidence editor for KDE PIM.")
@@ -445,7 +445,7 @@ Akonadi PIM data server.  It uses Xapian for indexing and querying.")
        ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
        ("prison" ,prison)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kontact.kde.org/components/kaddressbook.html")
     (synopsis "Address Book application to manage your contacts")
     (description "KAddressBook stores all the personal details of your family,
@@ -486,7 +486,7 @@ CalDAV server.")
        ("kpimtextedit" ,kpimtextedit)
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; TODO: TZ setup
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -515,7 +515,7 @@ calendar data.")
        ("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kxmlrpcclient" ,kxmlrpcclient)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("syndication" ,syndication)))
     ;; Note: Some tests take up to 90 sec.
     (home-page "https://invent.kde.org/pim/kblog")
@@ -567,7 +567,7 @@ one of the APIs mentioned above.")
        ("kpimtextedit" ,kpimtextedit)
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/stable/calendarsupport/")
     (synopsis "Calendar Support library for KDE PIM")
     (description "The Calendar Support library provides helper utilities for
@@ -604,7 +604,7 @@ calendaring applications.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; TODO: seem to pull in some wrong theme
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -632,7 +632,7 @@ functions for accessing calendar data using the kcalcore API.")
      `(("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (home-page "https://invent.kde.org/frameworks/kdav")
     (synopsis "DAV protocol implementation with KJobs")
@@ -678,7 +678,7 @@ supported using GroupDAV or CardDAV.")
        ("libkleo" ,libkleo)
        ("prison" ,prison)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/kdepim-apps-libs")
     (synopsis "KDE PIM mail related libraries and data files")
     (description "This package provides mail related libraries and data files
@@ -739,7 +739,7 @@ for KDE PIM.")
        ("libkgapi" ,libkgapi)
        ;; TODO: libkolab
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtnetworkauth" ,qtnetworkauth)
        ("qtspeech" ,qtspeech)
@@ -815,7 +815,7 @@ package.")
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/eventviews")
     (synopsis "KDE PIM library for creating events")
     (description "This library provides an event creator for KDE PIM.")
@@ -861,7 +861,7 @@ package.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.kgpg")
     (synopsis "Graphical front end for GNU Privacy Guard")
     (description "Kgpg manages cryptographic keys for the GNU Privacy Guard,
@@ -895,7 +895,7 @@ cryptography to the contents of the clipboard.")
        ("kpimtextedit" ,kpimtextedit)
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -929,7 +929,7 @@ cryptography to the contents of the clipboard.")
        ("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kmime" ,kmime)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Library for handling IMAP")
     (description "This library provides a job-based API for interacting with
@@ -959,7 +959,7 @@ easier to do so.")
      `(("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (propagated-inputs
      `(("cyrus-sasl" ,cyrus-sasl)
        ("openldap" ,openldap)))
@@ -1010,7 +1010,7 @@ protocol for querying and modifying directory services running over TCP/IP. ")
        ("libkleo" ,libkleo)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1096,7 +1096,7 @@ and retrieving certificates from LDAP servers.")
        ("libksieve" ,libksieve)
        ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
@@ -1177,7 +1177,7 @@ manager from KDE.")
        ("libxslt" ,libxslt)
        ("phonon" ,phonon)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f))  ;; TODO: 4/56 tests fail, even with "offscreen" and dbus
     (home-page "https://invent.kde.org/pim/mailcommon")
@@ -1218,7 +1218,7 @@ dealing with email.")
        ("kmime" ,kmime)
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/mailimporter")
     (synopsis "KDE mail importer library")
     (description "This package provides libraries for importing mails other
@@ -1259,7 +1259,7 @@ e-mail client programs into KMail and KDE PIM.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwallet" ,kwallet)
        ("libkgapi" ,libkgapi)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f)) ;; TODO - 3/3 tests fail, require drkonqi
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
@@ -1285,7 +1285,7 @@ mail transport.")
     (inputs
      `(("kcodecs" ,kcodecs)
        ("kmime" ,kmime)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Library for handling mbox mailboxes")
     (description "This is a library for handling mailboxes in mbox format,
@@ -1355,7 +1355,7 @@ using a Qt/KMime C++ API.")
        ("libkleo" ,libkleo)
        ("qca" ,qca)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
@@ -1398,7 +1398,7 @@ kwebengineviewer.")
     (inputs
      `(("kcodecs" ,kcodecs)
        ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1475,7 +1475,7 @@ information in non-ASCII character sets.")
        ("kxmlgui" ,kxmlgui)
        ("libkdepim" ,libkdepim)
        ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://kontact.kde.org/components/knotes.html")
     (synopsis "Note-taking utility")
@@ -1513,7 +1513,7 @@ Features:
        ("kparts" ,kparts)
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/")
     (synopsis "Kontact interface library")
     (description " This library provides the glue necessary for
@@ -1584,7 +1584,7 @@ application \"Parts\" to be embedded as a Kontact component (or plugin).")
        ("libkdepim" ,libkdepim)
        ("oxygen-icons" ,oxygen-icons) ; default icon set, required for tests
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -1639,7 +1639,7 @@ and exchanging calendar data, vCalendar and iCalendar.")
     (inputs
      `(("kcontacts" ,kcontacts)
        ("kpeople" ,kpeople)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/kpeoplevcard")
     (synopsis "Expose vCard contacts to KPeople")
     (description
@@ -1697,7 +1697,7 @@ Virtual Contact File}) files to the KPeople contact management library.")
        ("libkdepim" ,libkdepim)
        ("libxslt" ,libxslt)
        ("purpose" ,purpose)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtwebengine" ,qtwebengine)))
     (arguments
      `(#:tests? #f)) ;; TODO tests hang
@@ -1736,7 +1736,7 @@ Virtual Contact File}) files to the KPeople contact management library.")
        ("ktextwidgets" ,ktextwidgets)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtspeech" ,qtspeech)
        ("sonnet" ,sonnet)))
     (arguments
@@ -1770,7 +1770,7 @@ text in the text edit to all kinds of markup, like HTML or BBCODE.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f ;; TODO: does not find sasl mechs
        #:phases
@@ -1811,7 +1811,7 @@ standard protocols for e-mail transmission.")
        ("kcontacts" ,kcontacts)
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://api.kde.org/stable/kdepimlibs-apidocs/ktnef/html/")
     (synopsis "Library for handling mail attachments using TNEF format")
     (description "Ktnef is a library for handling data in the TNEF
@@ -1862,7 +1862,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
        ("kmime" ,kmime)
        ("kwallet" ,kwallet)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/libkdepim")
     (synopsis "Libraries for common KDE PIM apps")
     (description "This package provided libraries for common KDE PIM apps.")
@@ -1892,7 +1892,7 @@ and allows one to view/extract message formatted text in Rich Text Format.")
        ("kio" ,kio)
        ("kwallet" ,kwallet)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)))
@@ -1935,7 +1935,7 @@ various Google services.")
        ("kwindowsystem" ,kwindowsystem)
        ("kpimtextedit" ,kpimtextedit)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/libkleo")
     (synopsis "KDE PIM cryptographic library")
     (description "@code{libkleo} is a library for Kleopatra and other parts of
@@ -1978,7 +1978,7 @@ KDE using certificate-based crypto.")
        ("kwallet" ,kwallet)
        ("kwindowsystem" ,kwindowsystem)
        ("libkdepim" ,libkdepim)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)))
diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm
index c64d8ae39f..b7a2b14f65 100644
--- a/gnu/packages/kde-plasma.scm
+++ b/gnu/packages/kde-plasma.scm
@@ -74,7 +74,7 @@
        ("kpackage" ,kpackage)
        ("kwayland" ,kwayland) ; optional
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative) ; optional
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://invent.kde.org/plasma/breeze")
@@ -99,7 +99,7 @@ the Plasma Desktop.  Breeze is the default theme for the KDE Plasma desktop.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/plasma/kdecoration")
     (synopsis "Plugin based library to create window decorations")
     (description "KDecoration is a library to create window decorations.
@@ -127,7 +127,7 @@ manager which re-parents a Client window to a window decoration frame.")
        ("ki18n" ,ki18n)
        ("kwallet" ,kwallet)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/plasma/ksshaskpass")
     (synopsis "Front-end for ssh-add using kwallet")
     (description "Ksshaskpass is a front-end for @code{ssh-add} which stores the
@@ -190,7 +190,7 @@ call it if it is not associated to a terminal.")
        ("libxi" ,libxi)           ;XInput, required for grabbing XInput2 devices
        ("linux-pam" ,linux-pam)
        ("logind" ,elogind)        ;optional loginctl support
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
@@ -221,7 +221,7 @@ call it if it is not associated to a terminal.")
     (inputs
      `(("kwayland" ,kwayland)
        ("libxrandr" ,libxrandr)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (arguments
      '(#:tests? #f)) ; FIXME: 55% tests passed, 5 tests failed out of 11
@@ -261,7 +261,7 @@ basic needs and easy to configure for those who want special setups.")
        ("knewstuff" ,knewstuff)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kservice" ,kservice)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)
        ("qtwebkit" ,qtwebkit)
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
index b9c3865a93..86f169e819 100644
--- a/gnu/packages/kde-systemtools.scm
+++ b/gnu/packages/kde-systemtools.scm
@@ -75,7 +75,7 @@
        ("kwindowsystem" ,kwindowsystem)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("phonon" ,phonon)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)))
     (arguments
      `(#:tests? #f)) ;; TODO: 4/15 tests fail even with offscreen
@@ -116,7 +116,7 @@ The main features of Dolphin are:
        ("ktexteditor" ,ktexteditor)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "http://www.kde.org/")
     (synopsis "VCS-Plugins for Dolphin")
     (description "This package contains plugins that offer integration in
@@ -156,7 +156,7 @@ Dolphin with the version control systems: Bzr, Git, Mercurial, Subversion.")
        ("kwindowsystem" ,kwindowsystem)
        ("libxml2" ,libxml2)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("xapian" ,xapian)))
     (arguments
      `(#:tests? #f)) ;; 1/1 test fails
@@ -213,7 +213,7 @@ document meta data file.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)))
     (arguments
      `(#:tests? #f)) ;; TODO: 2/15 tests fail even with HOME, offscreen, SHELL, debus
@@ -262,7 +262,7 @@ This package is part of the KDE base applications module.")
        ("libxtst" ,libxtst)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("pipewire" ,pipewire)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("xcb-util-image" ,xcb-util-image)
        ("zlib" ,zlib)))
@@ -309,7 +309,7 @@ This package is part of the KDE networking module.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/system/org.kde.ksystemlog")
     (synopsis "System log viewer")
     (description "This program is developed for being used by beginner users,
@@ -353,7 +353,7 @@ This package is part of the KDE administration module.")
        ("kwayland" ,kwayland)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kwindowsystem" ,kwindowsystem)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://www.kde.org/applications/system/yakuake/")
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index e67c603e74..40267c6e91 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -68,7 +68,7 @@
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)))
     (arguments
      `(#:tests? #f ;; 2/7 tests fail
@@ -121,7 +121,7 @@ Kate's features include:
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ;; TODO: QAccessibilityClient - libqaccessibilityclien
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.kmag")
     (synopsis "Screen magnifier tool")
     (description "You can use KMagnifier to magnify a part of the screen just
@@ -160,7 +160,7 @@ artists to web-designers to people with low vision.")
        ("libxt" ,libxt)
        ("phonon" ,phonon)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.kmousetool")
     (synopsis "Automatic mouse click and mouse manipulation tool for the
 disabled")
@@ -196,7 +196,7 @@ whom pressing buttons hurts.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtspeech" ,qtspeech)))
     (home-page "https://kde.org/applications/utilities/org.kde.kmouth")
     (synopsis "Type-and-say frontend for speech synthesizers")
@@ -235,7 +235,7 @@ sentences to be re-spoken.")
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.kronometer")
     (synopsis "Simple stopwatch application")
     (description "Kronometer is a stopwatch application.  It features the
@@ -279,7 +279,7 @@ to save the times and resume them later.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("solid" ,solid)
        ("zlib" ,zlib)))
     (home-page "https://www.krusader.org")
@@ -318,7 +318,7 @@ great on your desktop.")
     (inputs
      `(("ktexteditor" ,ktexteditor)
        ("imagemagick" ,imagemagick)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (home-page "https://kde.org/applications/en/graphics/org.kde.kxstitch")
     (synopsis "Create and print cross stitch patterns")
@@ -363,7 +363,7 @@ either be created or generated from a image.")
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)))
     (arguments
      `(#:phases
@@ -421,7 +421,7 @@ redone.")
        ("kwindowsystem" ,kwindowsystem)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.rsibreak")
     (synopsis "Assists in the Recovery and Prevention of Repetitive Strain
 Injury")
@@ -468,7 +468,7 @@ remind you to take a break now and then.")
        ("libsmbclient" ,samba)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
        ("plasma-framework" ,plasma-framework)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("solid" ,solid)))
     (home-page "https://kde.org/applications/utilities/org.kde.smb4k")
@@ -530,7 +530,7 @@ Features:
        ("ktextwidgets" ,ktextwidgets)
        ("kxmlgui" ,kxmlgui)
        ("oxygen-icons" ,oxygen-icons) ;; default icon set
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/utilities/org.kde.sweeper")
     (synopsis "Temporary file and history cleaner")
     (description "
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 3b112324bf..1184aa5662 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -103,7 +103,7 @@
        ("kconfig" ,kconfig)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
@@ -140,7 +140,7 @@ This package contains GUI widgets for baloo.")
        ("ki18n" ,ki18n)
        ("kiconthemes" ,kiconthemes)
        ("knewstuff" ,knewstuff)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/pim/grantleetheme")
     (synopsis "Library providing Grantlee theme support")
     (description "This library provides Grantlee theme support.")
@@ -202,7 +202,7 @@ This package contains GUI widgets for baloo.")
        ("libkdepim" ,libkdepim)
        ("libkleo" ,libkleo)
        ("qgpgme" ,qgpgme)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
@@ -243,7 +243,7 @@ browser for easy news reading.")
          ("ffmpeg" ,ffmpeg)
          ("rttr" ,rttr)
          ("mlt" ,mlt)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtscript" ,qtscript)
          ("qtsvg" ,qtsvg)
          ("qtmultimedia" ,qtmultimedia)
@@ -350,7 +350,7 @@ projects.")
        ("kxmlgui" ,kxmlgui)
        ("libkomparediff2" ,libkomparediff2)
        ("oxygen-icons" ,oxygen-icons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols" ,qtquickcontrols)  ;; not checked as requirement
        ("qtquickcontrols2" ,qtquickcontrols2)  ;; not checked as requirement
@@ -416,7 +416,7 @@ software (Git, Subversion, Mercurial, CVS and Bazaar).")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (build-system cmake-build-system)
     (home-page "https://kde.org")
     (synopsis "Parser generator library for KDevplatform")
@@ -445,7 +445,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://invent.kde.org/graphics/kdiagram")
     (synopsis "Libraries for creating business diagrams")
@@ -532,7 +532,7 @@ illustrate project schedules.")
        ("openexr" ,openexr)
        ("perl" ,perl)
        ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
@@ -572,7 +572,7 @@ features include brush stabilizers, brush engines and wrap-around mode.")
        ("kgraphviewer" ,kgraphviewer)
        ("kio" ,kio)
        ("ki18n" ,ki18n)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (home-page "https://apps.kde.org/en/massif-visualizer")
@@ -605,7 +605,7 @@ compressed massif files can also be opened transparently.")
        ("ki18n" ,ki18n)
        ("kio" ,kio)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (build-system cmake-build-system)
     (home-page "https://kde.org")
     (synopsis "Library to compare files and strings, used in Kompare and KDevelop")
@@ -632,7 +632,7 @@ used in KDE development tools Kompare and KDevelop.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("openssl" ,openssl)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://userbase.kde.org/QCA")
     (synopsis "Libraries for the Qt Cryptographic Architecture")
     (description "The Qt Cryptographic Architecture (QCA) provides a
@@ -663,7 +663,7 @@ cards.")
        ("kcoreaddons" ,kcoreaddons)
        ("ki18n" ,ki18n)
        ("kwidgetsaddons" ,kwidgetsaddons)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qca" ,qca)
        ("util-linux" ,util-linux "lib")))
     (home-page "https://community.kde.org/Frameworks")
@@ -687,7 +687,7 @@ cards.")
     (arguments
      `(#:tests? #f)) ; both tests fail, require display
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
        ("qttools" ,qttools)))
@@ -748,7 +748,7 @@ different notification systems.")
        ("libfakekey" ,libfakekey)
        ("pulseaudio-qt" ,pulseaudio-qt)
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtmultimedia" ,qtmultimedia)
@@ -832,7 +832,7 @@ communicate with each other.  Here's a few things KDE Connect can do:
        ("kuserfeedback" ,kuserfeedback)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("shared-mime-info" ,shared-mime-info)
        ;; Optional.
@@ -868,7 +868,7 @@ to perform data analysis.")
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://phabricator.kde.org/source/kqtquickcharts/")
     (synopsis "Interactive charts for Qt Quick")
@@ -902,7 +902,7 @@ charts.")
        ("knotifications" ,knotifications)
        ("kwidgetsaddons" ,kwidgetsaddons)
        ("kxmlgui" ,kxmlgui)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/system/kdk")
     (synopsis "View Disk Usage")
     (description "KDiskFree displays the available file devices (hard drive
@@ -930,7 +930,7 @@ unmount drives and view them in a file manager.")
        ("qttools" ,qttools)
        ("kdoctools" ,kdoctools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("karchive" ,karchive)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
@@ -991,7 +991,7 @@ Python, PHP, and Perl.")
        ("kxmlgui" ,kxmlgui)
        ("libsndfile" ,libsndfile)
        ("openal" ,openal)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
     (home-page "https://games.kde.org/")
@@ -1035,7 +1035,7 @@ Python, PHP, and Perl.")
        ("kbookmarks" ,kbookmarks)
        ("kcompletion" ,kcompletion)
        ("kconfig" ,kconfig)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("libjpeg-turbo" ,libjpeg-turbo)
        ("libtiff" ,libtiff)
        ("kirigami" ,kirigami)
@@ -1084,7 +1084,7 @@ a variety of formats, including PDF, PostScript, DejaVu, and EPub.")
        ("kdoctools" ,kdoctools)))
     (inputs
      `(("gettext" ,gettext-minimal)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/development")
     (synopsis "Tools for translating DocBook XML files with Gettext")
     (description "This is a collection of tools that facilitate translating
@@ -1109,7 +1109,7 @@ PO template files.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("kio" ,kio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://apps.kde.org/en/kdegraphics_mobipocket")
     (synopsis "KDE thumbnailer for Mobipocket files")
     (description "This package provides a KDE plugin that shows thumbnails of
@@ -1132,7 +1132,7 @@ Mobipocket e-books in Dolphin and other KDE apps.")
      `(("extra-cmake-modules" ,extra-cmake-modules)))
     (inputs
      `(("exiv2" ,exiv2)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://invent.kde.org/graphics/libkexiv2")
     (synopsis "Manipulate the metadata of images")
     (description "Libkexiv2 wraps the Exiv2 library, allowing to manipulate
@@ -1158,7 +1158,7 @@ picture metadata as EXIF/IPTC and XMP.")
        ("kdnssd" ,kdnssd)
        ("ki18n" ,ki18n)
        ("kio" ,kio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://kde.org/applications/internet/org.kde.zeroconf_ioslave")
     (synopsis "DNS-SD Service Discovery Monitor")
     (description "Adds an entry to Dolphin's Network page to show local
@@ -1193,7 +1193,7 @@ or Bonjour by other projects).")
        ;;("phpunit" ,phpunit)
        ))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtcharts" ,qtcharts)
        ("qtdeclarative" ,qtdeclarative)
        ("qtsvg" ,qtsvg)))
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 55a1b72d74..199a0368a9 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -184,7 +184,7 @@
        ("hangul" ,libhangul)
        ("m17n-db" ,m17n-db)
        ("m17n-lib" ,m17n-lib)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("rime" ,librime)
        ("rsvg" ,librsvg)
        ("wayland" ,wayland)
@@ -255,7 +255,7 @@ focuses especially on Korean input (Hangul, Hanja, ...).")
        ("appindicator" ,libappindicator)
        ("chewing" ,libchewing)
        ("gtk+" ,gtk+)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("xtst" ,libxtst)))
     (synopsis "HIME Input Method Editor")
     (description "Hime is an extremely easy-to-use input method framework.  It
diff --git a/gnu/packages/lego.scm b/gnu/packages/lego.scm
index 2294d693c5..5b72c0e0be 100644
--- a/gnu/packages/lego.scm
+++ b/gnu/packages/lego.scm
@@ -115,7 +115,7 @@ restrictions that stem from limitations of the standard RCX firmware.")
      `(("qttools" ,qttools)))           ; for lrelease
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (arguments
      '(#:tests? #f
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index deda49a4bc..1c60e767b0 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -860,7 +860,7 @@ and video calls or instant messaging capabilities to an application.")
        ("liblinphone" ,liblinphone)
        ("mediastreamer2" ,mediastreamer2)
        ("ortp" ,ortp)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtquickcontrols" ,qtquickcontrols)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 98060a7696..37f7317fc4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
-;;; Copyright © 2016, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2016, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
@@ -36,14 +36,13 @@
 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
 ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019, 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
-;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;; Copyright © 2020 John Soo <jsoo1@asu.edu>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
@@ -356,7 +355,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
-(define-public linux-libre-5.12-version "5.12.9")
+(define-public linux-libre-5.12-version "5.12.12")
 (define deblob-scripts-5.12
   (linux-libre-deblob-scripts
    linux-libre-5.12-version
@@ -364,7 +363,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1p1jzrci97sipjdx3h0vmdnw35z2vyvczinxmp65xi1ja7ww0g14")))
 (define-public linux-libre-5.12-pristine-source
   (let ((version linux-libre-5.12-version)
-        (hash (base32 "0vg71h8r90fl01a8khyf1776y76rgqisxafky89cswa2fpsvxyn7")))
+        (hash (base32 "1a1ymbgkp8ngrkf7cfjrn56zb9qz1mm1j1pmd60g85ln7nyb4ai1")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.12)))
@@ -372,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.10-version "5.10.42")
+(define-public linux-libre-5.10-version "5.10.45")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
    linux-libre-5.10-version
@@ -380,12 +379,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1zsr02zmpx3968277sy8pfs2mdlgh86ifymwyj0r56wnhzf5q6hk")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "1r86v6q7ml7zv001f25w3h667nqqy39439s94vnqsyyn7g3jg84b")))
+        (hash (base32 "01rmw5rnxyybr8sh0v9rgamrg71ign2nr7m0ilrq9704k6dj9dzj")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.124")
+(define-public linux-libre-5.4-version "5.4.127")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
    linux-libre-5.4-version
@@ -393,12 +392,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1xghbbnaisjd0k1klbyn1p7r6r4x5a1bpmkm56a3gh2zvw4s7mj8")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "10kxa1ng9w9xd2d5xh48fbhp1kri650p90nihrcpnb845gd9vwpp")))
+        (hash (base32 "1gr89x1ymxaslp9fqcchaa7939yvhxy67z3pgskmx6z2vrd9pgd0")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.193")
+(define-public linux-libre-4.19-version "4.19.195")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
    linux-libre-4.19-version
@@ -406,12 +405,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "17ci49ak5iw01kfkn3fcgncg9hm4j188417bxi3bnsq9il5ymhl4")))
+        (hash (base32 "02rdy5mdmwxli0cin5n7ab492y9fs01hhqxrjq6b4idwv5baa42m")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.235")
+(define-public linux-libre-4.14-version "4.14.237")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
    linux-libre-4.14-version
@@ -419,12 +418,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "03k793hj294zf7jncs1h8zh5dh6xagkfvnydd9jadxvq2z8vvl8f")))
+        (hash (base32 "0kib9p61hhwjbr8zhir9aw86qik7k6bm95503n3k09ayyachajpq")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.271")
+(define-public linux-libre-4.9-version "4.9.273")
 (define deblob-scripts-4.9
   (linux-libre-deblob-scripts
    linux-libre-4.9-version
@@ -432,12 +431,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "1480miixphkf0b8w00m753ar7yp1rnl3zyr9wp4inngi2f90553r")))
+        (hash (base32 "0jjarv3xfkc21j1xhgch53w8wm6rq3xw1i03rjw9fv5i9k4x6qsw")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
 
-(define-public linux-libre-4.4-version "4.4.271")
+(define-public linux-libre-4.4-version "4.4.273")
 (define deblob-scripts-4.4
   (linux-libre-deblob-scripts
    linux-libre-4.4-version
@@ -445,7 +444,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
 (define-public linux-libre-4.4-pristine-source
   (let ((version linux-libre-4.4-version)
-        (hash (base32 "0n5h2lv1p542a45pas3pi0vkhgrk096vwrps79a7v3a6c1q2dxx6")))
+        (hash (base32 "1pd39cak0zhda3m9nvn9yxgd070wxvckaha5wl8pi7c8i6jfpclb")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.4)))
@@ -5088,7 +5087,16 @@ Ridge, Joliet, and zisofs.")
               (patches (search-patches "gpm-glibc-2.26.patch"))
               (sha256
                (base32
-                "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh"))))
+                "13d426a8h403ckpc8zyf7s2p5rql0lqbg2bv0454x0pvgbfbf4gh"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Take a patch from upstream to fix building with -fno-common,
+                  ;; which is default in GCC 10:
+                  ;;  https://github.com/telmich/gpm/pull/37
+                  (substitute* "src/headers/daemon.h"
+                    (("^time_t[[:blank:]]+last_selection_time;")
+                      "extern time_t           last_selection_time;"))))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -5475,7 +5483,7 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
 (define-public thinkfan
   (package
     (name "thinkfan")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method git-fetch)
@@ -5484,7 +5492,7 @@ feature, and a laptop with an accelerometer.  It has no effect on SSDs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "18vgm5w5pjnpipa34j4x87q10695w2jnqwvc2f027afy7mnzw7kz"))))
+        (base32 "01l1pnj1cgy3dwgyys2s5iqzyv6kk47vlpy09qjafk8py21ijik3"))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -6293,16 +6301,26 @@ under OpenGL graphics workloads.")
               (uri (string-append "https://github.com/rhboot/" name
                                   "/releases/download/" version "/" name
                                   "-" version ".tar.bz2"))
+              (patches (search-patches "efivar-gcc-compat.patch"))
               (sha256
                (base32
-                "17vvfivhsrszh7q39b6npjsrhrhsjf1cmmcpp3xrh6wh7ywzwrrw"))))
+                "17vvfivhsrszh7q39b6npjsrhrhsjf1cmmcpp3xrh6wh7ywzwrrw"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; Compile everything within a single LTO partition
+                  ;; to work around ordering issues in the code.  Try
+                  ;; removing this for versions > 37.
+                  (substitute* "Make.defaults"
+                    (("-flto")
+                     "-flto -flto-partition=one"))))))
     (build-system gnu-build-system)
     (arguments
      `(;; Tests require a UEFI system and is not detected in the chroot.
        #:tests? #f
        #:make-flags (list (string-append "prefix=" %output)
                           (string-append "libdir=" %output "/lib")
-                          "CC_FOR_BUILD=gcc"
+                          (string-append "CC_FOR_BUILD=" ,(cc-for-target))
                           (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
        #:phases
        (modify-phases %standard-phases
@@ -6452,13 +6470,15 @@ set the screen to be pitch black at a value of 0 (or higher).
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0immxc7almmpg80n3bdn834p3nrrz7bspl2syhb04s3lawa5y2lq"))))
+                "0immxc7almmpg80n3bdn834p3nrrz7bspl2syhb04s3lawa5y2lq"))
+              (patches (search-patches "brightnessctl-elogind-support.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
        #:make-flags (list (string-append "CC=" ,(cc-for-target))
                           (string-append "PREFIX=" %output)
-                          (string-append "UDEVDIR=" %output "/lib/udev/rules.d/"))
+                          (string-append "UDEVDIR=" %output "/lib/udev/rules.d/")
+                          "ENABLE_SYSTEMD=1")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -6467,6 +6487,10 @@ set the screen to be pitch black at a value of 0 (or higher).
              (substitute* "90-brightnessctl.rules"
                (("/bin/") "/run/current-system/profile/bin/"))
              #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("elogind" ,elogind)))
     (synopsis "Backlight and LED brightness control")
     (description
      "This program allows you read and control device brightness.  Devices
@@ -7654,7 +7678,7 @@ of Linux application development.")
   (package
     (inherit pipewire)
     (name "pipewire")
-    (version "0.3.22")
+    (version "0.3.29")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -7663,12 +7687,12 @@ of Linux application development.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ywna5f5v8s79ivrqfwwc8vy6sn3a2zvfwqyalf1fypj5d90w8g9"))))
+                "16jjxcnahxqfcawz77ywx837ybhwzcivn7hgqb9cmlp1y2syy8gk"))))
     (arguments
      '(#:configure-flags
        (list (string-append "-Dudevrulesdir=" (assoc-ref %outputs "out")
                             "/lib/udev/rules.d")
-             "-Dsystemd=false")
+             "-Dsystemd=disabled")
        #:phases
        (modify-phases %standard-phases
          ;; Skip shrink-runpath, otherwise validate-runpath fails.
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index b61356d46a..1bd35d5812 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -3451,10 +3451,10 @@ is a library for creating graphical user interfaces.")
   (sbcl-package->ecl-package sbcl-cl-cffi-gtk))
 
 (define-public sbcl-cl-webkit
-  (let ((commit "891bcd2c76a61121af930f986abb1f24814913c5"))
+  (let ((commit "cfc4f01ee806169d824750b4014653a93af9353d"))
     (package
       (name "sbcl-cl-webkit")
-      (version (git-version "2.4" "15" commit))
+      (version (git-version "2.4" "16" commit))
       (source
        (origin
          (method git-fetch)
@@ -3464,7 +3464,7 @@ is a library for creating graphical user interfaces.")
          (file-name (git-file-name "cl-webkit" version))
          (sha256
           (base32
-           "00qfbzpw3biqna6fh8ga9dmxckids46vxy4sxma1r3cxq2yig739"))))
+           "18n90m33bi6arnjmwr3q3m0arwzr0kdnydlv4if82crvaagd6m89"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("cffi" ,sbcl-cffi)
@@ -4439,7 +4439,7 @@ addition, removal, and random selection.")
 (define-public sbcl-quri
   (package
     (name "sbcl-quri")
-    (version "0.3.0")
+    (version "0.4.0")
     (source
      (origin
        (method git-fetch)
@@ -4448,7 +4448,7 @@ addition, removal, and random selection.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1pkvpiwwhx2fcknr7x47h7036ypkg8xzsskqbl5z315ipfmi8s2m"))))
+        (base32 "0ka5haq3g72hvaz4hdv7y1d6df9ncmx029wwixn4r413gll5yxy7"))))
     (build-system asdf-build-system/sbcl)
     (arguments
      ;; Test system must be loaded before, otherwise tests fail with:
@@ -5858,59 +5858,56 @@ formats.")
   (sbcl-package->ecl-package sbcl-swap-bytes))
 
 (define-public sbcl-iolib
-  ;; Latest release is from June 2017.
-  (let ((commit "7f5ea3a8457a29d224b24653c2b3657fb1898021")
-        (revision "2"))
-    (package
-      (name "sbcl-iolib")
-      (version (git-version "0.8.3" revision commit))
-      (home-page "https://github.com/sionescu/iolib")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url home-page)
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1bg5w7lm61hqk4b0svmri8a590q36z76jfa0sdgzb39r98c04w12"))))
-      (build-system asdf-build-system/sbcl)
-      (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("cffi" ,sbcl-cffi)
-         ("idna" ,sbcl-idna)
-         ("libfixposix" ,libfixposix)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("swap-bytes" ,sbcl-swap-bytes)))
-      (arguments
-       '(#:asd-files '("iolib.asdf.asd"
-                       "iolib.conf.asd"
-                       "iolib.common-lisp.asd"
-                       "iolib.base.asd"
-                       "iolib.asd")
-         #:asd-systems '("iolib"
-                         "iolib/os")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "src/syscalls/ffi-functions-unix.lisp"
-                 (("\\(:default \"libfixposix\"\\)")
-                  (string-append
-                   "(:default \""
-                   (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
-               ;; Socket tests need Internet access, disable them.
-               (substitute* "iolib.asd"
-                 (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
-                  "")))))))
-      (synopsis "Common Lisp I/O library")
-      (description "IOlib is to be a better and more modern I/O library than
+  (package
+    (name "sbcl-iolib")
+    (version "0.8.4")
+    (home-page "https://github.com/sionescu/iolib")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1f43jqqqwp9n7xksqxw91myapsdbc2dxck6nd6flakbnp9haylyq"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cffi" ,sbcl-cffi)
+       ("idna" ,sbcl-idna)
+       ("libfixposix" ,libfixposix)
+       ("split-sequence" ,sbcl-split-sequence)
+       ("swap-bytes" ,sbcl-swap-bytes)))
+    (arguments
+     '(#:asd-files '("iolib.asdf.asd"
+                     "iolib.conf.asd"
+                     "iolib.common-lisp.asd"
+                     "iolib.base.asd"
+                     "iolib.asd")
+       #:asd-systems '("iolib"
+                       "iolib/os")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/syscalls/ffi-functions-unix.lisp"
+               (("\\(:default \"libfixposix\"\\)")
+                (string-append
+                 "(:default \""
+                 (assoc-ref inputs "libfixposix") "/lib/libfixposix\")")))
+             ;; Socket tests need Internet access, disable them.
+             (substitute* "iolib.asd"
+               (("\\(:file \"sockets\" :depends-on \\(\"pkgdcl\" \"defsuites\"\\)\\)")
+                "")))))))
+    (synopsis "Common Lisp I/O library")
+    (description "IOlib is to be a better and more modern I/O library than
 the standard Common Lisp library.  It contains a socket library, a DNS
 resolver, an I/O multiplexer(which supports @code{select(2)}, @code{epoll(4)}
 and @code{kqueue(2)}), a pathname library and file-system utilities.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public cl-iolib
   (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
@@ -9857,20 +9854,20 @@ correctly.")
   (sbcl-package->ecl-package sbcl-trivialib-type-unify))
 
 (define-public sbcl-specialized-function
-  (let ((commit "dee56d2d2b6ecd10500ad291c56217698604ec35")
-        (revision "2"))
+  (let ((commit "5e2b04432bdf728496e6ff7227f210f845af7247")
+        (revision "3"))
     (package
       (name "sbcl-specialized-function")
-      (version (git-version "0.0.0" revision commit))
+      (version (git-version "0.1" revision commit))
       (source
        (origin
          (method git-fetch)
          (uri (git-reference
                (url "https://github.com/numcl/specialized-function")
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "specialized-function" version))
          (sha256
-          (base32 "1mcc7mmpbnmgnr1cl2jl5r1ai54gn7fbisv2c14sh9za5w4sib82"))))
+          (base32 "19hfgc83b7as630r1w9r8yl0v6xq3dn01vcrl0bd4pza5hgjn4la"))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Julia-like dispatch for Common Lisp")
       (description
@@ -9881,21 +9878,17 @@ code.  The main target of this macro is speed.")
       (home-page "https://github.com/numcl/specialized-function")
       (license license:lgpl3+)
       (inputs
-       `(("trivia" ,sbcl-trivia)
-         ("alexandria" ,sbcl-alexandria)
+       `(("alexandria" ,sbcl-alexandria)
          ("iterate" ,sbcl-iterate)
          ("lisp-namespace" ,sbcl-lisp-namespace)
-         ("type-r" ,sbcl-type-r)
-         ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+         ("trivia" ,sbcl-trivia)
+         ("trivial-cltl2" ,sbcl-trivial-cltl2)
+         ("type-r" ,sbcl-type-r)))
       (native-inputs
        `(("fiveam" ,sbcl-fiveam)))
       (arguments
        `(#:asd-files '("specialized-function.asd")
-         #:test-asd-file "specialized-function.test.asd"
-         ;; Tests fail because they try to use an internal symbol of SBCL
-         ;; that does not exists in recent versions:
-         ;;   "The variable SB-VM:COMPLEX-VECTOR-NIL-WIDETAG is unbound."
-         #:tests? #f)))))
+         #:test-asd-file "specialized-function.test.asd")))))
 
 (define-public cl-specialized-function
   (sbcl-package->cl-source-package sbcl-specialized-function))
@@ -15548,7 +15541,7 @@ return the CPU count of the current system.")
 (define-public sbcl-fof
   (package
     (name "sbcl-fof")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method git-fetch)
@@ -15557,7 +15550,7 @@ return the CPU count of the current system.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1xdnlqrjfmgdgw58avkci881iwarv4am2vq09b14pfifmpxpzv10"))))
+        (base32 "0j64b7p40h8bq33hqkpgakm3vs1607vyx6n48d7qg3287v1akk6m"))))
     (build-system asdf-build-system/sbcl)
     (arguments
      `(#:phases
@@ -17247,3 +17240,234 @@ needed.  The low-level command API is fully mapped however.")
 
 (define-public cl-legit
   (sbcl-package->cl-source-package sbcl-legit))
+
+(define-public sbcl-flow
+  (let ((commit "6d925af009cdfe033650d7048197a5e6ee937d15")
+        (revision "1"))
+    (package
+      (name "sbcl-flow")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/flow")
+               (commit commit)))
+         (file-name (git-file-name "flow" version))
+         (sha256
+          (base32 "0ysw1kwiqlf8kzllhnz8v3q40dmvwf83fzq8bfkbmwy5hfjh3pxp"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       ;; FIXME: (Sharlatan-20210527T203118+0100): FLOW-VISUALIZER requires
+       ;; COMMONQT which is not packed yet and required tweaks with QT. Remove
+       ;; this when it's ready.
+       `(#:asd-files '("flow.asd")))
+      (inputs
+       `(("closer-mop" ,sbcl-closer-mop)
+         ("documentation-utils" ,sbcl-documentation-utils)))
+      (home-page "https://shinmera.github.io/flow/")
+      (synopsis "Tools for the representation of graphs and flowcharts")
+      (description
+       "FLOW is a flowchart graph library.  Unlike other graphing libraries,
+this one focuses on nodes in a graph having distinct @code{ports} through which
+connections to other nodes are formed.  This helps in many concrete scenarios
+where it is important to distinguish not only which nodes are connected, but
+also how they are connected to each other.
+
+Particularly, a lot of data flow and exchange problems can be reduced to such
+a @code{flowchart}.  For example, an audio processing library may present its
+pipeline as a flowchart of segments that communicate with each other through
+audio sample buffers.  Flow gives a convenient view onto this kind of problem,
+and even allows the generic visualisation of graphs in this format.")
+      (license license:zlib))))
+
+(define-public ecl-flow
+  (sbcl-package->ecl-package sbcl-flow))
+
+(define-public cl-flow
+  (sbcl-package->cl-source-package sbcl-flow))
+
+(define-public sbcl-cl-glfw3
+  (let ((commit "32c3f34d592d55ee7ce932ed85804c1a9c4158c6")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-glfw3")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AlexCharlton/cl-glfw3")
+               (commit commit)))
+         (file-name (git-file-name "cl-glfw3" version))
+         (sha256
+          (base32 "1wzr43nckdx4rlgxzhm1r4kfc264q969mc43y0js9ramh7l8gba5"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-glfw-lib-path
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "glfw-bindings.lisp"
+                 (("libglfw.so.3" all)
+                  (string-append (assoc-ref inputs "glfw") "/lib/" all))))))))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("cl-opengl" ,sbcl-cl-opengl)
+         ("glfw" ,glfw)
+         ("trivial-main-thread" ,sbcl-trivial-main-thread)))
+      (home-page "https://github.com/AlexCharlton/cl-glfw3")
+      (synopsis "Common Lisp bindings to GLFW version 3.x")
+      (description
+       "This package provides a Common Lisp bindings to @code{glfw}, an OpenGL
+application development library.")
+      (license license:bsd-2))))
+
+(define-public ecl-cl-glfw3
+  (sbcl-package->ecl-package sbcl-cl-glfw3))
+
+(define-public cl-glfw3
+  (sbcl-package->cl-source-package sbcl-cl-glfw3))
+
+(define-public sbcl-chirp
+  (let ((commit "01c79fa41939688216d1f86d0766a687becb0654")
+        (revision "1"))
+    (package
+      (name "sbcl-chirp")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/chirp")
+               (commit commit)))
+         (file-name (git-file-name "chirp" version))
+         (sha256
+          (base32 "10xlz1vwdv3jv48kmpndpnrg6672m0r5vsjgm2pksfl8bc05j2m0"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-systems '("chirp-core" "chirp-dexador" "chirp-drakma" "chirp")))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("babel" ,sbcl-babel)
+         ("cl-base64" ,sbcl-cl-base64)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("dexador" ,sbcl-dexador)
+         ("drakma" ,sbcl-drakma)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("ironclad" ,sbcl-ironclad)
+         ("local-time" ,sbcl-local-time)
+         ("split-sequence" ,sbcl-split-sequence)
+         ("uuid" ,sbcl-uuid)
+         ("yason" ,sbcl-yason)))
+      (home-page "https://shinmera.github.io/chirp/")
+      (synopsis "Twitter client library for Common Lisp")
+      (description
+       "This package provides a Common Lisp Twitter client featuring full API
+coverage.")
+      (license license:zlib))))
+
+(define-public ecl-chirp
+  (sbcl-package->ecl-package sbcl-chirp))
+
+(define-public cl-chirp
+  (sbcl-package->cl-source-package sbcl-chirp))
+
+(define-public sbcl-cepl
+  (let ((commit "d1a10b6c8f4cedc07493bf06aef3a56c7b6f8d5b")
+        (revision "1"))
+    (package
+     (name "sbcl-cepl")
+     (version (git-version "0.0.0" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cbaggers/cepl")
+             (commit commit)))
+       (file-name (git-file-name "cepl" version))
+       (sha256
+        (base32 "0izbw2advqm3wailj3dpq6zqfrfirwn14pw5qmqh8i71r51xwmm2"))))
+     (build-system asdf-build-system/sbcl)
+     (arguments
+      `(#:asd-files '("cepl.asd" "cepl.build.asd")))
+     (inputs
+      `(("alexandria" ,sbcl-alexandria)
+        ("bordeaux-threads" ,sbcl-bordeaux-threads)
+        ("cffi" ,sbcl-cffi)
+        ("cl-opengl" ,sbcl-cl-opengl)
+        ("cl-ppcre" ,sbcl-cl-ppcre)
+        ("documentation-utils" ,sbcl-documentation-utils)
+        ("float-features" ,sbcl-float-features)
+        ("ieee-floats" ,sbcl-ieee-floats)
+        ("split-sequence" ,sbcl-split-sequence)
+        ("varjo" ,sbcl-varjo)))
+     (propagated-inputs
+      `(("quickproject" ,sbcl-quickproject)))
+     (home-page "https://github.com/cbaggers/cepl")
+     (synopsis "Development playground to work with OpenGL")
+     (description
+      "CEPL (Code Evaluate Play Loop ) is a lispy and REPL-friendly Common Lisp
+library for working with OpenGL.
+
+Its definition of success is making the user feel that GPU programming has
+always been part of the languages standard.
+
+The usual approach to using CEPL is to start it at the beginning of your Lisp
+session and leave it open for the duration of your work.  You can then treat the
+window it creates as just another output for your graphics, analogous to how
+@code{*standard-output*} is treated for text.")
+     (license license:bsd-2))))
+
+(define-public ecl-cepl
+  (sbcl-package->ecl-package sbcl-cepl))
+
+(define-public cl-cepl
+  (sbcl-package->cl-source-package sbcl-cepl))
+
+(define-public sbcl-stmx
+  ;; No release for years and recent commits contain fixes for revent SBCL versions.
+  (let ((commit "a7bb44082cd53ee968965adff03d4351750711a1")
+        (revision "1"))
+    (package
+     (name "sbcl-stmx")
+     (version (git-version "2.0.5" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cosmos72/stmx/")
+             (commit commit)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1hfmh4vj271jdilir97qs6nqbi5nmn5alyls0w3d3xxqwi6ffqjs"))))
+     (build-system asdf-build-system/sbcl)
+     (inputs
+      `(("alexandria" ,sbcl-alexandria)
+        ("bordeaux-threads" ,sbcl-bordeaux-threads)
+        ("log4cl" ,sbcl-log4cl)
+        ("closer-mop" ,sbcl-closer-mop)
+        ("trivial-garbage" ,sbcl-trivial-garbage)))
+     (home-page "https://stmx.org/")
+     (synopsis "High performance Transactional Memory for Common Lisp")
+     (description
+      "STMX is a high-performance implementation of composable Transactional
+Memory, which is a concurrency control mechanism aimed at making concurrent
+programming easier to write and understand.  Instead of traditional lock-based
+programming, one programs with atomic memory transactions, which can be
+composed together to make larger atomic memory transactions.
+
+A memory transaction gets committed if it returns normally, while it gets
+rolled back if it signals an error (and the error is propagated to the
+caller).
+
+Finally, memory transactions can safely run in parallel in different threads,
+are re-executed from the beginning in case of conflicts or if consistent reads
+cannot be guaranteed, and their effects are not visible from other threads
+until they commit.
+
+Memory transactions give freedom from deadlocks, are immune to thread-safety
+bugs and race conditions, provide automatic roll-back on failure, and aim at
+resolving the tension between granularity and concurrency.")
+     (license license:llgpl))))
diff --git a/gnu/packages/logo.scm b/gnu/packages/logo.scm
index 17c3990a94..cf70910656 100644
--- a/gnu/packages/logo.scm
+++ b/gnu/packages/logo.scm
@@ -37,7 +37,7 @@
          "0cpyj1ji6hjy7zzz05672f0j6fr0mwpc1y3sq36hhkv2fkpidw22"))))
     (build-system gnu-build-system)
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm
index b4cdcaac0f..c797b63754 100644
--- a/gnu/packages/lxqt.scm
+++ b/gnu/packages/lxqt.scm
@@ -90,7 +90,7 @@
     (native-inputs
      `(("doxygen" ,doxygen)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "https://launchpad.net/libdbusmenu-qt")
     (synopsis "Qt implementation of the DBusMenu spec")
     (description "This library provides a Qt implementation of the DBusMenu
@@ -150,7 +150,7 @@ to statistics about the system on which it's run.")
      `(("pkg-config" ,pkg-config)
        ("glib" ,glib)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (propagated-inputs
      ;; Dependent projects require Perl via the CMake files.
      `(("perl" ,perl)))
@@ -188,7 +188,7 @@ itself as well as other components maintained by the LXQt project.")
     (propagated-inputs
      ;; required by Qt5XdgIconLoader.pc
      `(("glib" ,glib)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)
@@ -259,7 +259,7 @@ components of the LXQt desktop environment.")
     (build-system cmake-build-system)
     (arguments '(#:tests? #f))          ; no tests
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)))
     (home-page "https://lxqt-project.org")
@@ -287,7 +287,7 @@ and memory usage or network traffic.")
      `(("kwindowsystem" ,kwindowsystem)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -380,7 +380,7 @@ the operating system LXQt is running on.")
        ("libqtxdg" ,libqtxdg)
        ("libxcursor" ,libxcursor)
        ("libxi" ,libxi)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
@@ -450,7 +450,7 @@ configuration of both LXQt and the underlying operating system.")
      `(("kwindowsystem" ,kwindowsystem)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -498,7 +498,7 @@ as a whole and are not limited to distinct applications.")
      `(("kwindowsystem" ,kwindowsystem)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -544,7 +544,7 @@ according to the Desktop Notifications Specification.")
      `(("kwindowsystem" ,kwindowsystem)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -595,7 +595,7 @@ of other programs.")
        ("lxqt-globalkeys" ,lxqt-globalkeys)
        ("pcre" ,pcre)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)
@@ -660,7 +660,7 @@ of other programs.")
        ("libqtxdg" ,libqtxdg)
        ("pcre" ,pcre)
        ("polkit-qt" ,polkit-qt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -709,7 +709,7 @@ LXQt.")
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
        ("lxqt-globalkeys" ,lxqt-globalkeys)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("solid" ,solid)))
@@ -757,7 +757,7 @@ when laptop batteries are low on power.")
      `(("libdbusmenu-qt" ,libdbusmenu-qt)
        ("libfm-qt" ,libfm-qt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -798,7 +798,7 @@ Qt with LXQt.")
        ("lxqt-globalkeys" ,lxqt-globalkeys)
        ("muparser" ,muparser)
        ("pcre" ,pcre)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -846,7 +846,7 @@ allows for launching applications or shutting down the system.")
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
        ("procps" ,procps)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("xdg-user-dirs" ,xdg-user-dirs)))
@@ -916,7 +916,7 @@ for the LXQt desktop environment.")
      `(("kwindowsystem" ,kwindowsystem)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("sudo" ,sudo)))
@@ -1001,7 +1001,7 @@ for LXQt.")
        ("libxcb" ,libxcb)
        ("menu-cache" ,menu-cache)
        ("pcre" ,pcre)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1027,7 +1027,7 @@ components to build desktop file managers which belongs to LXDE.")
     (build-system cmake-build-system)
     (inputs
      `(("libfm-qt" ,libfm-qt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1069,7 +1069,7 @@ LXDE.")
     (build-system cmake-build-system)
     (inputs
      `(("libconfig" ,libconfig)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)
        ("pkg-config" ,pkg-config)
@@ -1105,7 +1105,7 @@ manager Compton.")
     (inputs
      `(("libexif" ,libexif)
        ("libfm-qt" ,libfm-qt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -1141,7 +1141,7 @@ image viewer.")
        ("openbox" ,openbox)
        ("pango" ,pango)
        ("pcre" ,pcre)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)
@@ -1171,7 +1171,7 @@ window manager OpenBox.")
      `(("glib" ,glib)
        ("pcre" ,pcre)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1202,7 +1202,7 @@ window manager OpenBox.")
        ("libxrender" ,libxrender)
        ("liblxqt" ,liblxqt)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)
@@ -1228,7 +1228,7 @@ processes currently in existence, much like code{top} or code{ps}.")
         (base32 "10lv475qj0x3c3vl4yhjyr6y10qj5pq8n5pal5k24f6pf7xv412f"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("utf8proc" ,utf8proc)))
     (native-inputs
      `(("lxqt-build-tools" ,lxqt-build-tools)
@@ -1253,7 +1253,7 @@ processes currently in existence, much like code{top} or code{ps}.")
         (base32 "0rfv7a6ncm8fs8aicinh9l29w4636gxzcqz735jmch2r41v9i1d9"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("qtermwidget" ,qtermwidget)))
     (native-inputs
@@ -1282,7 +1282,7 @@ QTermWidget.")
     (inputs
      `(("kwindowsystem" ,kwindowsystem)
        ("libqtxdg" ,libqtxdg)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -1314,7 +1314,7 @@ easily publishing them on internet image hosting services.")
       `(("glib" ,glib)
         ("json-glib" ,json-glib)
         ("libfm-qt" ,libfm-qt)
-        ("qtbase" ,qtbase)
+        ("qtbase" ,qtbase-5)
         ("qtx11extras" ,qtx11extras)))
     (native-inputs
       `(("pkg-config" ,pkg-config)
@@ -1349,7 +1349,7 @@ like @command{tar} and @command{zip}.")
       (build-system cmake-build-system)
       (inputs
         `(("kwindowsystem" ,kwindowsystem)
-          ("qtbase" ,qtbase)
+          ("qtbase" ,qtbase-5)
           ("qtsvg" ,qtsvg)
           ("liblxqt" ,liblxqt)
           ("qtx11extras" ,qtx11extras)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 866b0295b1..4ab1bf0729 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -2065,14 +2065,14 @@ hashing scheme (such as scrypt) plug-in for @code{Dovecot}.")
 (define-public isync
   (package
     (name "isync")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/isync/isync/"
                            version "/isync-" version ".tar.gz"))
        (sha256 (base32
-                "0l01880fcyqn6xq9n8236ha5n2a3wl5g8rmv22z8nv5hgfsxndhd"))))
+                "0hskfpj4r4q3959k3npyqli353daj3r5d9mfia9bbmig87nyfd8r"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("perl" ,perl)))
@@ -3094,118 +3094,83 @@ for OpenSMTPD to extend its functionality.")
     (license (list license:bsd-2 license:bsd-3 ; openbsd-compat
                    license:isc))))             ; everything else
 
-(define libopensmtpd
+(define-public libopensmtpd
   ;; Private source dependency of opensmtpd-filter-dkimsign (by the same
   ;; author), until any project actually uses it in its compiled form.
-  (let ((revision 48))
-    (package
-      (name "libopensmtpd")
-      (version (format #f "0.0.0-~a" revision))
-      (source
-       (origin
-         (method svn-fetch)
-         (uri (svn-reference
-               (url "http://imperialat.at/dev/libopensmtpd/")
-               (revision revision)))
-         (sha256
-          (base32 "04fgibpi6q0c3468ww3z7gsvraz0gyfps0c2dj8mdyri636c0x0s"))
-         (file-name (git-file-name name version))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:make-flags
-         (list "-f" "Makefile.gnu"
-               (string-append "CC=" ,(cc-for-target))
-               (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
-         #:tests? #f                    ; no test suite
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'inherit-ownership
-             (lambda _
-               (substitute* "Makefile.gnu"
-                 (("-o \\$\\{BINOWN\\} -g \\$\\{BINGRP\\}") ""))
-               #t))
-           (delete 'configure)          ; no configure script
-           (add-before 'install 'create-output-directories
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (mkdir-p (string-append out "/lib"))
-                 #t)))
-           (add-after 'install 'install-header-file
-             (lambda* (#:key make-flags outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (mkdir-p (string-append out "/include"))
-                 (apply invoke "make" "includes" make-flags))))
-           (add-after 'install 'install-man-page
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (man3 (string-append out "/share/man/man3")))
-                 ;; There is no make target for this.
-                 (install-file "osmtpd_run.3" man3)
-                 #t))))))
-      (inputs
-       `(("libevent" ,libevent)))
-      (home-page "http://imperialat.at/dev/libopensmtpd/")
-      (synopsis "OpenSMTPd filter C API")
-      (description
-       "The @code{osmtpd} API is an event-based C programming interface for
+  (package
+    (name "libopensmtpd")
+    (version "0.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list (string-append "https://imperialat.at/releases/"
+                                 "libopensmtpd-" version ".tar.gz")
+                  (string-append "https://distfiles.sigtrap.nl/"
+                                 "libopensmtpd-" version ".tar.gz")))
+       (sha256
+        (base32 "04x610mvwba7m0n9h0wbnsw58rb4khq44fm4blkgjqvh3bhxbmnd"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "-f" "Makefile.gnu"
+             (string-append "CC=" ,(cc-for-target))
+             (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'inherit-ownership
+           (lambda _
+             (substitute* "Makefile.gnu"
+               (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
+         (delete 'configure))))         ; no configure script
+    (native-inputs
+     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
+    (inputs
+     `(("libevent" ,libevent)))
+    (home-page "https://imperialat.at/dev/libopensmtpd/")
+    (synopsis "OpenSMTPd filter C API")
+    (description
+     "The @code{osmtpd} API is an event-based C programming interface for
 writing OpenSMTPd filters.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public opensmtpd-filter-dkimsign
   (package
     (name "opensmtpd-filter-dkimsign")
-    ;; The .arch repackaging provides not only a usable Makefile, but patches
-    ;; the source to actually build on GNU, e.g., by making pledge() optional.
-    ;; It's effectively the portable branch that upstream lacks at this time.
-    (version "0.2.arch2")               ; also update both native-inputs
+    (version "0.5")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/de-vri-es/filter-dkimsign")
-             (commit (string-append "v" version))))
+       (method url-fetch)
+       (uri (list (string-append "https://imperialat.at/releases/"
+                                 "filter-dkimsign-" version ".tar.gz")
+                  (string-append "https://distfiles.sigtrap.nl/"
+                                 "filter-dkimsign-" version ".tar.gz")))
        (sha256
-        (base32 "1dv6184h0gq2safnc7ln4za3arbafzc1xwkgwmiihqcjvdyxig0c"))
-       (file-name (git-file-name name version))))
+        (base32 "0jwp47ixibnz8rghn193bk2hxh1j1zfrnidml18j7d7cylxfrd55"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
-       (list (string-append "CC=" ,(cc-for-target)))
+       (list "-f" "Makefile.gnu"
+             (string-append "CC=" ,(cc-for-target))
+             "HAVE_ED25519=yep-but-is-openssl-only"
+             (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
        #:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
-         (replace 'unpack
-           (lambda* (#:key source inputs #:allow-other-keys)
-             (copy-recursively source "filter-dkimsign")
-             (copy-recursively (assoc-ref inputs "libopensmtpd-source")
-                               "libopensmtpd")
-             (copy-file (assoc-ref inputs "Makefile") "Makefile")
-             #t))
-         (delete 'configure)            ; no configure script
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out     (assoc-ref outputs "out"))
-                    (libexec (string-append out "/libexec/opensmtpd"))
-                    (man8    (string-append out "/share/man/man8")))
-               (chdir "filter-dkimsign")
-               (install-file "filter-dkimsign" libexec)
-               (install-file "filter-dkimsign.8" man8)
-               #t))))))
+         (add-after 'unpack 'patch-Makefile.gnu
+           (lambda _
+             (substitute* "Makefile.gnu"
+               (("pkg-config") ,(pkg-config-for-target))
+               (("-o \\$\\{...OWN\\} -g \\$\\{...GRP\\}") ""))))
+         (delete 'configure))))         ; no configure script
     (native-inputs
-     `(("Makefile"
-        ,(origin
-           (method url-fetch)
-           (uri (string-append
-                 "https://aur.archlinux.org/cgit/aur.git/plain/Makefile"
-                 "?h=opensmtpd-filter-dkimsign"
-                 "&id=58393470477a2ff2a58f9d72f5d851698067539f"))
-           (sha256
-            (base32 "0da5qr9hfjkf07ybvfva967njmf2x0b82z020r6v5f93jzsbqx92"))
-           (file-name (string-append name "-" version "-Makefile"))))
-       ("libopensmtpd-source" ,(package-source libopensmtpd))))
+     `(("mandoc" ,mandoc)))           ; silently installs empty man page without
     (inputs
      `(("libevent" ,libevent)
-       ("libressl" ,libressl)))         ; openssl works too but follow opensmtpd
+       ("libopensmtpd" ,libopensmtpd)
+       ;; XXX Our OpenSMTPd package uses libressl, but this package currently
+       ;; supports HAVE_ED25519 only with openssl.  Switch back when possible.
+       ("openssl" ,openssl)))
     (home-page "http://imperialat.at/dev/filter-dkimsign/")
     (synopsis "OpenSMTPd filter for signing mail with DKIM")
     (description
@@ -4379,6 +4344,24 @@ score.")
     (home-page "https://www.rspamd.com/")
     (license license:asl2.0)))
 
+(define-public undbx
+  (package
+    (name "undbx")
+    (version "0.21")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/undbx/undbx-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "0ncs1dzhrn9nlaxpyap2ipf61fc7k9bkkqacp3w6bngfj2c0p6yj"))))
+    (build-system gnu-build-system)
+    (home-page "https://undbx.sourceforge.io/")
+    (synopsis "Extract email messages from Outlook Express .dbx files")
+    (description "This package provides a tool to extract, recover and
+undelete email messages from Outlook Express .dbx files.")
+    (license license:gpl3+)))
+
 (define-public crm114
   (package
     (name "crm114")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4b33056d1e..3bd382f1f3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016, 2018, 2020 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2016, 2018, 2020, 2021 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -2090,7 +2090,7 @@ script files.")
     (name "octave")
     (inputs
      `(("qscintilla" ,qscintilla)
-       ("qt" ,qtbase)
+       ("qt" ,qtbase-5)
        ,@(package-inputs octave-cli)))
     (native-inputs
      `(("qttools" , qttools) ;for lrelease
@@ -2363,7 +2363,7 @@ ASCII text files using Gmsh's own scripting language.")
        ("python-dbus" ,python-dbus)
        ("python-h5py" ,python-h5py) ;optional, for HDF5 data
        ("python-pyqt" ,python-pyqt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (propagated-inputs
      `(("python-numpy" ,python-numpy)))
@@ -3558,7 +3558,7 @@ to BMP, JPEG or PNG image formats.")
 (define-public maxima
   (package
     (name "maxima")
-    (version "5.44.0")
+    (version "5.45.0")
     (source
      (origin
        (method url-fetch)
@@ -3566,7 +3566,7 @@ to BMP, JPEG or PNG image formats.")
                            version "-source/" name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1v6jr5s6hhj6r18gfk6hgxk2qd6z1dxkrjq9ss2z1y6sqi45wgyr"))
+         "1n6hc2d07d93hgc4yf3yqb9aqjqw6fskmvxggfxww1a8chr1yqy7"))
        (patches (search-patches "maxima-defsystem-mkdir.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -3673,7 +3673,7 @@ point numbers.")
 (define-public wxmaxima
   (package
     (name "wxmaxima")
-    (version "21.04.0")
+    (version "21.05.2")
     (source
      (origin
        (method git-fetch)
@@ -3682,7 +3682,7 @@ point numbers.")
              (commit (string-append "Version-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xj95zk16x8kac8qhzd5kvf3b00x7hgdw85da9ww63xyndvhh2lw"))))
+        (base32 "0h7ryykh2dapcyvpp4f1j1b3vrrz80x9k8nkci2yxifgdb29vyhw"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)))
@@ -4587,7 +4587,7 @@ evaluates expressions using the standard order of operations.")
                 "0maw5am6rrkyjrprfg113zjq37mqj0iaznkg4h2927ff7wrprc94"))))
     (build-system gnu-build-system)
     (native-inputs `(("gettext" ,gettext-minimal)
-                     ("qtbase" ,qtbase)
+                     ("qtbase" ,qtbase-5)
                      ("qttools" ,qttools)))
     (inputs `(("libx11" ,libx11)
               ("zlib" ,zlib)
@@ -5192,7 +5192,7 @@ reduction.")
      `(("boost" ,boost)
        ("glu" ,glu)
        ("mesa" ,mesa)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (build-system cmake-build-system)
     (synopsis "Toolset for the mCRL2 formal specification language")
     (description
@@ -6123,7 +6123,7 @@ functions.")
        (base32
         "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk"))))
     (build-system cmake-build-system)
-    (inputs `(("qtbase" ,qtbase)))
+    (inputs `(("qtbase" ,qtbase-5)))
     (native-inputs `(("qttools" ,qttools)))
     (arguments
      `(#:phases
@@ -6183,7 +6183,7 @@ researchers and developers alike to get started on SAT.")
 (define-public libqalculate
   (package
     (name "libqalculate")
-    (version "3.8.0")
+    (version "3.19.0")
     (source
      (origin
        (method git-fetch)
@@ -6192,7 +6192,7 @@ researchers and developers alike to get started on SAT.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df"))
+        (base32 "1w44407wb552q21dz4m2nwwdi8b9hzjb2w1l3ffsikzqckc7wbyj"))
        (patches
         (search-patches "libqalculate-3.8.0-libcurl-ssl-fix.patch"))))
     (build-system gnu-build-system)
@@ -6237,7 +6237,7 @@ cli.")
 (define-public qalculate-gtk
   (package
     (name "qalculate-gtk")
-    (version "3.8.0")
+    (version "3.19.0")
     (source
      (origin
        (method git-fetch)
@@ -6246,7 +6246,7 @@ cli.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0nsg6dzg5r7rzqr671nvrf1c50rjwpz7bxv5f20i4s7agizgv840"))))
+        (base32 "1nrx7gp6f1yalbdda1gb97azhbr4xclq2xf08vvbvsk8jfd6fd2v"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -6270,15 +6270,6 @@ cli.")
            ;; script, which has not yet been patched to replace /bin/sh.
            (lambda _
              (setenv "NOCONFIGURE" "TRUE")
-             #t))
-         (add-before 'check 'add-pot-file
-           ;; the file contains translations and are currently not in use
-           ;; left out on purpose so add it to POTFILES.skip
-           (lambda _
-             (with-output-to-file "po/POTFILES.skip"
-               (lambda _
-                 (format #t "data/shortcuts.ui~%")
-                 #t))
              #t)))))
     (home-page "https://qalculate.github.io/")
     (synopsis "Multi-purpose graphical desktop calculator")
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 1a132c285e..8e9842515c 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -180,7 +180,7 @@
        ("hunspell" ,hunspell)
        ("libidn" ,libidn)
        ("qca" ,qca)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
        ("qtwebkit" ,qtwebkit)
@@ -677,6 +677,7 @@ used by Pidgin and Bitlbee, among others, to access
               (method url-fetch)
               (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-"
                                   version ".tar.xz"))
+              (patches (search-patches "hexchat-add-libera-chat.patch"))
               (sha256
                (base32
                 "10p829jm1r6kidkgf5lhqhyqc5mxdcq96q3zhadsckasvc9rs6lh"))))
@@ -790,7 +791,7 @@ authentication.")
 (define-public pidgin
   (package
     (name "pidgin")
-    (version "2.14.4")
+    (version "2.14.5")
     (source
      (origin
        (method url-fetch)
@@ -798,7 +799,7 @@ authentication.")
         (string-append "mirror://sourceforge/pidgin/Pidgin/"
                        version "/pidgin-" version ".tar.gz"))
        (sha256
-        (base32 "1h952bh2jdm9jymzpj4dgmh530yh7pag2janfz6d5m1r4mljwraq"))
+        (base32 "12llip3r8126gph82r638xjv2v2rg34qgggn1nbwfmc3s7halimr"))
        (patches
         (search-patches "pidgin-add-search-path.patch"))
        (modules '((guix build utils)))
@@ -1219,7 +1220,7 @@ Encryption to Gajim.")
 (define-public dino
   (package
     (name "dino")
-    (version "0.2.0")
+    (version "0.2.1")
     (source
      (origin
        (method url-fetch)
@@ -1227,7 +1228,7 @@ Encryption to Gajim.")
         (string-append "https://github.com/dino/dino/releases/download/v"
                        version "/dino-" version ".tar.gz"))
        (sha256
-        (base32 "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn"))))
+        (base32 "13rk8b0sj35az32c0ii173g9ww231awmyb4jlk56jy38hpyp7x1g"))))
     (build-system cmake-build-system)
     (outputs '("out" "debug"))
     (arguments
@@ -1275,14 +1276,14 @@ default.")
 (define-public prosody
   (package
     (name "prosody")
-    (version "0.11.3")
+    (version "0.11.9")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://prosody.im/downloads/source/"
                                   "prosody-" version ".tar.gz"))
               (sha256
                (base32
-                "11xz4milv2962qf75vrdwsvd8sy2332nf69202rmvz5989pvvnng"))))
+                "02gzvsaq0l5lx608sfh7hfz14s6yfsr4sr4kzcsqd1cxljp35h6c"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ;tests require "busted"
@@ -1606,7 +1607,7 @@ instant messenger with audio and video chat capabilities.")
        ("sqlite" ,sqlite)
        ("openal" ,openal)
        ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("sqlcipher" ,sqlcipher)))
     (native-inputs
@@ -2227,7 +2228,7 @@ notifications, and Python scripting support.")
         (base32 "0gkwr3yw6k2m0j8cc085b5p2q788rf5nhp1p5hc5d55pc7mci2qs"))))
     (build-system cmake-build-system)
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)))
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
@@ -2331,7 +2332,7 @@ for the Matrix protocol.  It is built on to of @code{Boost.Asio}.")
        ("lmdbxx" ,lmdbxx)
        ("mtxclient" ,mtxclient)
        ("openssl" ,openssl)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtmultimedia" ,qtmultimedia)
@@ -2384,7 +2385,7 @@ There is support for:
     (build-system qt-build-system)
     (inputs
      `(("libqmatrixclient" ,libqmatrixclient)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
@@ -2724,7 +2725,7 @@ as phones, embedded computers or microcontrollers.")
                   "\"../build"))
                #t)))))
       (inputs
-       `(("qtbase" ,qtbase)
+       `(("qtbase" ,qtbase-5)
          ("qtdeclarative" ,qtdeclarative)
          ("qtwebchannel" ,qtwebchannel)))
       (propagated-inputs
@@ -2853,7 +2854,7 @@ social and chat platform.")
        ("qca" ,qca)
        ("qhttp" ,qhttp)
        ("qite" ,qite)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtkeychain" ,qtkeychain)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index d33bde11ac..7670cf573e 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
-;;; Copyright © 2020 Simon Streit <simon@netpanic.org>
+;;; Copyright © 2020, 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Noah Evans <noah@nevans.me>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -383,7 +383,7 @@ other MPD frontends.")
 (define-public mpdris2
   (package
     (name "mpdris2")
-    (version "0.8")
+    (version "0.9.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -392,7 +392,7 @@ other MPD frontends.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "048b8acsd1b8kcxzd9fsh5p9g2an9c4rznicfcpyrsjz5syv894h"))))
+                "17ys8ccr3h6vix0agvhz859slz0phhk7lwqn5bg4az8s7zgqm3nm"))))
     (build-system gnu-build-system)
     ;; Manually wrap the binary, because we’re not using python-build-system.
     (arguments
@@ -447,7 +447,7 @@ support")
        ("libebur128" ,libebur128)
        ("libmtp" ,libmtp)
        ("mpg123" ,mpg123)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
        ("taglib" ,taglib)
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 4fe1a3a1cb..2011cbcd29 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -151,7 +151,7 @@ bind processes, and much more.")
   ;; Note: 2.x isn't the default yet, see above.
   (package
     (inherit hwloc-1)
-    (version "2.4.1")
+    (version "2.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.open-mpi.org/release/hwloc/v"
@@ -159,7 +159,7 @@ bind processes, and much more.")
                                   "/hwloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "0qyywmyns2jf3is3axrwmffvdd7ji7liy5axp650q4i6kzk2291r"))))
+                "1j2j9wn39a8v91r23xncm1rzls6rjkgkvdvqghbdsnq8ps491kx9"))))
 
     ;; libnuma is no longer needed.
     (inputs (alist-delete "numactl" (package-inputs hwloc-1)))
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index ffba7c144c..2ae923d6ad 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -231,7 +231,7 @@
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("dbus" ,dbus)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ;; Plugin dependencies
        ("alsa-lib" ,alsa-lib)
@@ -434,7 +434,7 @@ score, keyboard, guitar, drum and controller views.")
        ("libxml2" ,libxml2)
        ("protobuf" ,protobuf)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("sqlite" ,sqlite)
        ("sparsehash" ,sparsehash)
@@ -527,7 +527,7 @@ playing your music.")
        ("libmtp" ,libmtp)
        ("protobuf" ,protobuf)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("sqlite" ,sqlite)
        ("taglib" ,taglib)))
@@ -759,7 +759,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
        ("libsndfile" ,libsndfile)
        ("lrdf" ,lrdf)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtxmlpatterns" ,qtxmlpatterns)
        ("zlib" ,zlib)))
     (home-page "http://www.hydrogen-music.org")
@@ -1990,7 +1990,7 @@ your own lessons.")
        ("boost" ,boost)
        ("minizip" ,minizip)
        ("pugixml" ,pugixml)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("rapidjson" ,rapidjson)
        ("rtmidi" ,rtmidi)
        ("timidity" ,timidity++)
@@ -2073,7 +2073,7 @@ users to select LV2 plugins and run them with jalv.")
        ("alsa-lib" ,alsa-lib)
        ("non-session-manager" ,non-session-manager)
        ("liblo" ,liblo)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -2106,7 +2106,7 @@ oscillators and stereo effects.")
        ("alsa-lib" ,alsa-lib)
        ("non-session-manager" ,non-session-manager)
        ("liblo" ,liblo)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -2139,7 +2139,7 @@ effects.")
        ("alsa-lib" ,alsa-lib)
        ("non-session-manager" ,non-session-manager)
        ("liblo" ,liblo)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -2172,7 +2172,7 @@ effects.")
        ("non-session-manager" ,non-session-manager)
        ("liblo" ,liblo)
        ("fftwf" ,fftwf)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
@@ -2752,7 +2752,7 @@ browser.")
                                "/manpages/docbook.xsl")))
              #t)))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qttools" ,qttools)
        ("alsa-lib" ,alsa-lib)))
@@ -2800,7 +2800,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
              #t)))))
     (inputs
      `(("drumstick" ,drumstick)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs
@@ -3140,7 +3140,7 @@ from the command line.")
     (arguments
      `(#:tests? #f))                    ; no "check" target
     (inputs
-     `(("qt" ,qtbase)
+     `(("qt" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)
@@ -4458,7 +4458,7 @@ develop custom plugins for use in other applications without programming.")
      `(#:configure-flags
        (list "--enable-qt5")))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("alsa-lib" ,alsa-lib)
        ("jack" ,jack-1)
        ("liblo" ,liblo)
@@ -4489,7 +4489,7 @@ modules running in parallel.")
      `(#:configure-flags
        (list "--enable-qt5")))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("alsa-lib" ,alsa-lib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -4672,7 +4672,7 @@ are a C compiler and glib.  Full API documentation and examples are included.")
              "0g9pls46iggg7rdm65vzfj8nyr3v2n5xkp54c4qbh9hhalpsw4ay"))))))
     (inputs
      `(("sdl" ,sdl)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ("fltk" ,fltk)
        ("libogg" ,libogg)
@@ -4777,7 +4777,7 @@ standalone JACK client and an LV2 plugin is also available.")
        ("portaudio" ,portaudio)
        ("portmidi" ,portmidi)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtquickcontrols2" ,qtquickcontrols2)
@@ -4855,7 +4855,7 @@ sample library.")
        ("lv2" ,lv2)
        ("pcre" ,pcre)
        ("pulseaudio" ,pulseaudio) ; required by rtaudio
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("rtaudio" ,rtaudio)
        ("rubberband" ,rubberband)
@@ -5047,7 +5047,7 @@ specification and header.")
        ("libsamplerate" ,libsamplerate)
        ("lilypond" ,lilypond)
        ("lrdf" ,lrdf)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("tar" ,tar)
        ("lirc" ,lirc)
        ("wavpack" ,wavpack)
@@ -5153,7 +5153,7 @@ the electronic or dubstep genre.")
      `(("alsa-lib" ,alsa-lib)
        ("drumstick" ,drumstick)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (home-page "https://github.com/pedrolcl/Linux-SonivoxEas")
@@ -5537,7 +5537,7 @@ discard bad quality ones.
        ("fftw" ,fftw)
        ("jack" ,jack-1)
        ("portaudio" ,portaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)))
     (native-inputs
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index bf506b20c2..6e5a281443 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -30,13 +30,13 @@
 (define-public nano
   (package
     (name "nano")
-    (version "5.7")
+    (version "5.8")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
       (sha256
-       (base32 "1ynarilx0ca0a5h6hl5bf276cymyy8s9wr5l24vyy7f15v683cfl"))))
+       (base32 "133nhxg4xfxisjzi85rn2l575hdbvcax1s13l4m6wcvq5zdn6fz4"))))
     (build-system gnu-build-system)
     (inputs
      `(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index a79e83f587..2e63565591 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -253,8 +253,7 @@ ncursesw library provides wide character support.")
     (description "Dialog is a script-interpreter which provides a set of
 curses widgets, such as dialog boxes.")
     (home-page "https://invisible-island.net/dialog/dialog.html")
-    ;; Includes the gpl3 file "config.sub" from Automake.
-    (license (list lgpl2.1 gpl3))))
+    (license lgpl2.1)))
 
 (define-public perl-curses
   (package
diff --git a/gnu/packages/nettle.scm b/gnu/packages/nettle.scm
index 2e94fd353e..f9f34467c9 100644
--- a/gnu/packages/nettle.scm
+++ b/gnu/packages/nettle.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2016, 2021 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -25,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages m4))
 
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index bac692fbdd..b8d5cf510e 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -108,7 +108,6 @@
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
-  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
@@ -255,7 +254,7 @@ protocols.")
        ("gnutls" ,gnutls)
        ("libtiff" ,libtiff)
        ("openssl" ,openssl)
-       ("qt5" ,qtbase)
+       ("qt5" ,qtbase-5)
        ("udev" ,eudev)))
     (synopsis "Camera stack and framework")
     (description "LibCamera is a complex camera support library for GNU+Linux,
@@ -1495,7 +1494,7 @@ of the same name.")
        ("krb5" ,mit-krb5)
        ("nghttp2:lib" ,nghttp2 "lib")
        ("minizip" ,minizip)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtsvg" ,qtsvg)
        ("sbc" ,sbc)
@@ -2848,133 +2847,6 @@ It then continually measures the response time and packet loss at each hop, and
 displays the results in real time.")
     (license license:gpl2+)))
 
-(define-public strongswan
-  (package
-    (name "strongswan")
-    (version "5.8.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://download.strongswan.org/strongswan-"
-                           version ".tar.bz2"))
-       (sha256
-        (base32 "0g2m08gmgdi3qvvqz6zy7n16np53sp232xd0rdc2vdhk73img6id"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-command-file-names
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "src/libstrongswan/utils/process.c"
-               (("/bin/sh")
-                (string-append (assoc-ref inputs "bash") "/bin/sh")))
-
-             (substitute* "src/libstrongswan/tests/suites/test_process.c"
-               (("/bin/sh") (which "sh"))
-               (("/bin/echo") (which "echo"))
-               (("cat") (which "cat")))
-             #t))
-         (add-before 'check 'set-up-test-environment
-           (lambda* (#:key inputs #:allow-other-keys)
-             (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
-                                            "/share/zoneinfo"))
-             #t)))
-       #:configure-flags
-       (list
-        "--disable-ldap"
-        "--disable-mysql"
-        "--disable-systemd"
-
-        ;; Disable BSD-4 licensed plugins.
-        "--disable-blowfish"
-        "--disable-des"
-
-        ;; Make it usable.  The default configuration is far too minimal to be
-        ;; used with most common VPN set-ups.
-        ;; See <https://wiki.strongswan.org/projects/strongswan/wiki/Autoconf>.
-        "--enable-aesni"
-        "--enable-attr-sql"
-        "--enable-chapoly"
-        "--enable-curl"
-        "--enable-dhcp"
-        "--enable-eap-aka"
-        "--enable-eap-aka-3gpp"
-        "--enable-eap-dynamic"
-        "--enable-eap-identity"
-        "--enable-eap-md5"
-        "--enable-eap-mschapv2"
-        "--enable-eap-peap"
-        "--enable-eap-radius"
-        "--enable-eap-sim"
-        "--enable-eap-sim-file"
-        "--enable-eap-simaka-pseudonym"
-        "--enable-eap-simaka-reauth"
-        "--enable-eap-simaka-sql"
-        "--enable-eap-tls"
-        "--enable-eap-tnc"
-        "--enable-eap-ttls"
-        "--enable-ext-auth"
-        "--enable-farp"
-        "--enable-ha"
-        "--enable-led"
-        "--enable-md4"
-        "--enable-mediation"
-        "--enable-openssl"
-        "--enable-soup"
-        "--enable-sql"
-        "--enable-sqlite"
-        "--enable-xauth-eap"
-        "--enable-xauth-noauth"
-        "--enable-xauth-pam"
-
-        ;; Use libcap by default.
-        "--with-capabilities=libcap")))
-    (inputs
-     `(("curl" ,curl)
-       ("gmp" ,gmp)
-       ("libcap" ,libcap)
-       ("libgcrypt" ,libgcrypt)
-       ("libsoup" ,libsoup)
-       ("linux-pam" ,linux-pam)
-       ("openssl" ,openssl)))
-    (native-inputs
-     `(("coreutils" ,coreutils)
-       ("pkg-config" ,pkg-config)
-       ("tzdata" ,tzdata-for-tests)))
-    (synopsis "IKEv1/v2 keying daemon")
-    (description "StrongSwan is an IPsec implementation originally based upon
-the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
-NAT-T and more.")
-    (home-page "https://strongswan.org/")
-    (license
-     (list license:gpl2+
-           ;; src/aikgen/*
-           ;; src/libcharon/plugins/dnscert/*
-           ;; src/libcharon/plugins/ext_auth/*
-           ;; src/libcharon/plugins/vici/ruby/*
-           ;; src/libcharon/plugins/xauth_pam/xauth_pam_listener.[ch]
-           license:expat
-           ;; src/inclue/sys/*
-           license:bsd-3
-           ;; src/libstrongswan/plugins/sha3/sha3_keccak.c
-           license:public-domain
-           ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
-           (license:non-copyleft
-            "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
-            "pkcs11 contains a unknown permissive license. View the specific
-file for more details.")
-           ;; These files are not included in the
-           ;; build, they are disabled through
-           ;; options to ./configure
-           ;;
-           ;; src/libstrongswan/plugins/blowfish/bf_enc.c
-           ;; src/libstrongswan/plugins/blowfish/bf_locl.h
-           ;; src/libstrongswan/plugins/blowfish/bf_pi.h
-           ;; src/libstrongswan/plugins/blowfish/bf_skey.c
-           ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
-           ;; src/libstrongswan/plugins/des/des_crypter.c
-           license:bsd-4))))
-
 (define-public amule
   (package
     (name "amule")
@@ -3529,87 +3401,90 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
     (license license:bsd-3)))
 
 (define-public opendht
-  (package
-    (name "opendht")
-    (version "2.2.0rc7")                ;jami requires >= 2.2.0
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/savoirfairelinux/opendht")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0wkynjzwzl5q46hy1yb9npi5hvknnj17rjkax5v3acqjmd0y48h9"))))
-    ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
-    (outputs '("out" "tools" "debug"))
-    (build-system cmake-build-system)
-    (inputs
-     `(("argon2" ,argon2)
-       ("nettle" ,nettle)
-       ("readline" ,readline)
-       ("jsoncpp" ,jsoncpp)
-       ("openssl" ,openssl)             ;required for the DHT proxy
-       ("fmt" ,fmt)))
-    (propagated-inputs
-     `(("gnutls" ,gnutls)               ;included in opendht/crypto.h
-       ("msgpack" ,msgpack)             ;included in several installed headers
-       ("restinio" ,restinio)))         ;included in opendht/http.h
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("python-cython" ,python-cython)
-       ("libtool" ,libtool)
-       ("cppunit" ,cppunit)))
-    (arguments
-     `(#:imported-modules ((guix build python-build-system) ;for site-packages
-                           ,@%cmake-build-system-modules)
-       #:modules (((guix build python-build-system) #:prefix python:)
-                  (guix build cmake-build-system)
-                  (guix build utils))
-       #:tests? #f                      ; Tests require network connection.
-       #:configure-flags
-       '( ;;"-DOPENDHT_TESTS=on"
-         "-DOPENDHT_STATIC=off"
-         "-DOPENDHT_TOOLS=on"
-         "-DOPENDHT_PYTHON=on"
-         "-DOPENDHT_PROXY_SERVER=on"
-         "-DOPENDHT_PUSH_NOTIFICATIONS=on"
-         "-DOPENDHT_PROXY_SERVER_IDENTITY=on"
-         "-DOPENDHT_PROXY_CLIENT=on")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-python-installation-prefix
-           ;; Specify the installation prefix for the compiled Python module
-           ;; that would otherwise attempt to installs itself to Python's own
-           ;; site-packages directory.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "python/CMakeLists.txt"
-               (("--root=\\\\\\$ENV\\{DESTDIR\\}")
-                (string-append "--root=/ --single-version-externally-managed "
-                               "--prefix=${CMAKE_INSTALL_PREFIX}")))))
-         (add-after 'unpack 'specify-runpath-for-python-module
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "python/setup.py.in"
-                 (("extra_link_args=\\[(.*)\\]" _ args)
-                  (string-append "extra_link_args=[" args
-                                 ", '-Wl,-rpath=" out "/lib']"))))))
-         (add-after 'install 'move-and-wrap-tools
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (tools (assoc-ref outputs "tools"))
-                   (site-packages (python:site-packages inputs outputs)))
-               (mkdir tools)
-               (rename-file (string-append out "/bin")
-                            (string-append tools "/bin"))
-               (wrap-program (string-append tools "/bin/dhtcluster")
-                 `("PYTHONPATH" prefix (,site-packages)))))))))
-    (home-page "https://github.com/savoirfairelinux/opendht/")
-    (synopsis "Lightweight Distributed Hash Table (DHT) library")
-    (description "OpenDHT provides an easy to use distributed in-memory data
+  ;; Jami requires unreleased features of OpenDHT.
+  (let ((commit "c8a0b443f3117e2fa1343d2cb3c091f502b1a24e")
+        (revision "1"))
+    (package
+      (name "opendht")
+      (version (git-version "2.2.0rc7" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/savoirfairelinux/opendht")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "062irb9yii66n2fzbpsjf7v2v53zzvakr1wjmi4l1jaz33fwx5by"))))
+      ;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
+      (outputs '("out" "tools" "debug"))
+      (build-system cmake-build-system)
+      (inputs
+       `(("argon2" ,argon2)
+         ("nettle" ,nettle)
+         ("readline" ,readline)
+         ("jsoncpp" ,jsoncpp)
+         ("openssl" ,openssl)             ;required for the DHT proxy
+         ("fmt" ,fmt)))
+      (propagated-inputs
+       `(("gnutls" ,gnutls)               ;included in opendht/crypto.h
+         ("msgpack" ,msgpack)             ;included in several installed headers
+         ("restinio" ,restinio)))         ;included in opendht/http.h
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("pkg-config" ,pkg-config)
+         ("python" ,python)
+         ("python-cython" ,python-cython)
+         ("libtool" ,libtool)
+         ("cppunit" ,cppunit)))
+      (arguments
+       `(#:imported-modules ((guix build python-build-system) ;for site-packages
+                             ,@%cmake-build-system-modules)
+         #:modules (((guix build python-build-system) #:prefix python:)
+                    (guix build cmake-build-system)
+                    (guix build utils))
+         #:tests? #f                      ; Tests require network connection.
+         #:configure-flags
+         '( ;;"-DOPENDHT_TESTS=on"
+           "-DOPENDHT_STATIC=off"
+           "-DOPENDHT_TOOLS=on"
+           "-DOPENDHT_PYTHON=on"
+           "-DOPENDHT_PROXY_SERVER=on"
+           "-DOPENDHT_PUSH_NOTIFICATIONS=on"
+           "-DOPENDHT_PROXY_SERVER_IDENTITY=on"
+           "-DOPENDHT_PROXY_CLIENT=on")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-python-installation-prefix
+             ;; Specify the installation prefix for the compiled Python module
+             ;; that would otherwise attempt to installs itself to Python's own
+             ;; site-packages directory.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "python/CMakeLists.txt"
+                 (("--root=\\\\\\$ENV\\{DESTDIR\\}")
+                  (string-append "--root=/ --single-version-externally-managed "
+                                 "--prefix=${CMAKE_INSTALL_PREFIX}")))))
+           (add-after 'unpack 'specify-runpath-for-python-module
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (substitute* "python/setup.py.in"
+                   (("extra_link_args=\\[(.*)\\]" _ args)
+                    (string-append "extra_link_args=[" args
+                                   ", '-Wl,-rpath=" out "/lib']"))))))
+           (add-after 'install 'move-and-wrap-tools
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (tools (assoc-ref outputs "tools"))
+                     (site-packages (python:site-packages inputs outputs)))
+                 (mkdir tools)
+                 (rename-file (string-append out "/bin")
+                              (string-append tools "/bin"))
+                 (wrap-program (string-append tools "/bin/dhtcluster")
+                   `("PYTHONPATH" prefix (,site-packages)))))))))
+      (home-page "https://github.com/savoirfairelinux/opendht/")
+      (synopsis "Lightweight Distributed Hash Table (DHT) library")
+      (description "OpenDHT provides an easy to use distributed in-memory data
 store.  Every node in the network can read and write values to the store.
 Values are distributed over the network, with redundancy.  It includes the
 following features:
@@ -3632,7 +3507,7 @@ library (get, put, etc.) with text values.
 @item dhtchat
 A very simple IM client working over the DHT.
 @end table")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public frrouting
   (package
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 4e80dd4d4e..36c45e9c7a 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -64,6 +64,13 @@
               (modules '((guix build utils)))
               (snippet
                `(begin
+                  ;; Patch for compatibility with ICU 68 and newer, which
+                  ;; removed the public TRUE and FALSE macros.
+                  (substitute* '("deps/v8/src/objects/intl-objects.cc"
+                                 "deps/v8/src/runtime/runtime-intl.cc")
+                    (("TRUE") "true")
+                    (("FALSE") "false"))
+
                   ;; Remove bundled software.
                   (for-each delete-file-recursively
                             '("deps/cares"
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index b86def1929..191eedd158 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -187,11 +188,16 @@ computers over a network.")
                 "0ijsylc7a4jlpxsqa0jq1w1c7333id8pcakzl7a5749ria1xp0l5"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags `( "--with-privsep-user=ntpd"
-                            "--localstatedir=/var"
-                            ,(string-append "--with-cacert="
-                                            (assoc-ref %build-inputs "libressl")
-                                            "/etc/ssl/cert.pem"))
+     `(#:configure-flags
+       (let* ((libressl (assoc-ref %build-inputs "libressl"))
+              (libressl-version ,(package-version
+                                  (car (assoc-ref (package-inputs this-package)
+                                                  "libressl")))))
+         (list "--with-privsep-user=ntpd"
+               "--localstatedir=/var"
+               (string-append "--with-cacert=" libressl
+                              "/share/libressl-" libressl-version
+                              "/cert.pem")))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'modify-install-locations
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 2b4673882b..4510affe0f 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020, 2021 pukkamustard <pukkamustard@posteo.net>
 ;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,7 @@
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -957,7 +959,7 @@ written in Objective Caml.")
 (define-public ocaml-num
   (package
     (name "ocaml-num")
-    (version "1.1")
+    (version "1.4")
     (source
      (origin
        (method git-fetch)
@@ -966,33 +968,8 @@ written in Objective Caml.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0a4mhxgs5hi81d227aygjx35696314swas0vzy3ig809jb7zq4h0"))))
-    (build-system ocaml-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'fix-makefile
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; This package supposes we install to the same directory as
-             ;; the ocaml package.
-             (substitute* "src/META"
-               (("\"\\^\"") (string-append "\"" (assoc-ref outputs "out")
-                                           "/lib/ocaml/site-lib\"")))
-             (substitute* "src/Makefile"
-               (("\\) \\$\\(STDLIBDIR\\)")
-                (string-append ") " (assoc-ref outputs "out")
-                               "/lib/ocaml/site-lib")))
-             #t))
-         (add-after 'install 'fix-stubslib
-           (lambda* (#:key outputs #:allow-other-keys)
-             (format #t "~a~%" (find-files "." ".*.so"))
-             (let ((stubdir (string-append (assoc-ref outputs "out")
-                                           "/lib/ocaml/site-lib/stublibs")))
-               (delete-file stubdir)
-               (mkdir-p stubdir)
-               (install-file "src/dllnums.so" stubdir))
-             #t)))))
+        (base32 "1vzdnvpj5dbj3ifx03v25pj2jj1ccav072v4d29pk1czdba2lzfc"))))
+    (build-system dune-build-system)
     (home-page "https://github.com/ocaml/num")
     (synopsis "Arbitrary-precision integer and rational arithmetic")
     (description "OCaml-Num contains the legacy Num library for
@@ -1613,7 +1590,7 @@ full_split, cut, rcut, etc..")
 (define dune-bootstrap
   (package
     (name "dune")
-    (version "2.7.1")
+    (version "2.8.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1622,7 +1599,7 @@ full_split, cut, rcut, etc..")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
+                "0a1jj6njzsfjgklsirs6a79079wg4jhy6n888vg3dgp44awwq5jn"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:tests? #f; require odoc
@@ -2069,6 +2046,55 @@ manipulate such data.")
 spans without being subject to operating system calendar time adjustments.")
     (license license:isc)))
 
+(define-public ocaml-calendar
+  ;; No tags.
+  ;; Commit from 2019-02-03.
+  (let ((commit "a447a88ae3c1e9873e32d2a95d3d3e7c5ed4a7da")
+        (revision "0"))
+    (package
+      (name "ocaml-calendar")
+      ;; Makefile.in says 2.04.
+      (version (git-version "2.04" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ocaml-community/calendar")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "09d9gyqm3zkf3z2m9fx87clqihx6brf8rnzm4yq7c8kf1p572hmc"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:test-target "tests"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'make-deterministic
+             (lambda _
+               (substitute* "Makefile.in"
+                 (("`date`") "no date for reproducibility"))))
+           (add-before 'install 'set-environment-variables
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (setenv "OCAMLFIND_DESTDIR"
+                         (string-append out "/lib/ocaml/site-lib"))
+                 (setenv "OCAMLFIND_LDCONF" "ignore")
+                 (mkdir-p (string-append
+                           out "/lib/ocaml/site-lib/calendar"))))))))
+      (native-inputs
+       `(("autoconf" ,autoconf)
+         ("automake" ,automake)))
+      (propagated-inputs
+       `(("ocaml" ,ocaml)
+         ("ocamlfind" ,ocaml-findlib)))
+      (home-page "https://github.com/ocaml-community/calendar")
+      (synopsis "OCaml library for handling dates and times")
+      (description "This package provides types and operations over
+dates and times.")
+      ;; With linking exception.
+      (license license:lgpl2.1+))))
+
 (define-public ocaml-cmdliner
   (package
     (name "ocaml-cmdliner")
@@ -3415,6 +3441,35 @@ the need to write signal code, which is useful for quick scripts that manipulate
 JSON.")
     (license license:isc)))
 
+(define-public ocaml-uri
+  (package
+    (name "ocaml-uri")
+    (version "4.1.0")
+    (home-page "https://github.com/mirage/ocaml-uri")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "10bf28my1yhj8a2d7bkgbna9j20wq0ghp92k926y29bmjj2qh0l7"))))
+    (build-system dune-build-system)
+    (arguments '(#:package "uri"
+                 #:test-target "."))
+    (propagated-inputs
+     `(("ocaml-stringext" ,ocaml-stringext)
+       ("ocaml-angstrom" ,ocaml-angstrom)))
+    (native-inputs
+     `(("ocaml-ounit" ,ocaml-ounit)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)))
+    (properties `((upstream-name . "uri")
+                  (ocaml4.07-variant ,(delay ocaml4.07-uri))))
+    (synopsis "RFC3986 URI/URL parsing library")
+    (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.")
+    (license license:isc)))
+
 (define-public ocaml4.07-uri
   (package
     (name "ocaml4.07-uri")
@@ -3447,6 +3502,7 @@ JSON.")
      `(("ocaml-re" ,(package-with-ocaml4.07 ocaml-re))
        ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))
        ("ocaml-stringext" ,(package-with-ocaml4.07 ocaml-stringext))))
+    (properties `((upstream-name . "uri")))
     (home-page "https://github.com/mirage/ocaml-uri")
     (synopsis "RFC3986 URI/URL parsing library")
     (description "OCaml-uri is a library for parsing URI/URL in the RFC3986 format.")
@@ -3773,7 +3829,7 @@ library is currently designed for Unicode Standard 3.2.")
      `(("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
        ("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))))
     (native-inputs
-     `(("ocaml-ppx-expect" ,ocaml4.07-ppx-expect)))
+     `(("ocaml-ppx-expect" ,(package-with-ocaml4.07 ocaml-ppx-expect))))
     (properties
      `((upstream-name . "charInfo_width")))
     (home-page "https://bitbucket.org/zandoye/charinfo_width/")
@@ -4140,10 +4196,75 @@ Dedukti files.")
 syntax checking on dedukti files.")
       (license license:cecill-b))))
 
-(define-public ocaml4.07-ppx-inline-test
+(define-public ocaml-jst-config
   (package
-    (name "ocaml4.07-ppx-inline-test")
-    (version "0.12.0")
+    (name "ocaml-jst-config")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "jst-config" version
+      "1fppr29vn91zpqda8jlnp8bcssd4bf3rn36ig8fnd1yhjrsvz8f6"))
+    (build-system dune-build-system)
+    (arguments '(#:tests? #f))           ; no tests
+    (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("dune-configurator" ,dune-configurator)))
+    (home-page "https://github.com/janestreet/jst-config")
+    (synopsis "Compile-time configuration for Jane Street libraries")
+    (description "Defines compile-time constants used in Jane Street libraries
+such as Base, Core, and Async.  This package has an unstable interface; it is
+intended only to share configuration between different packages from Jane
+Street.  Future updates may not be backward-compatible, and we do not
+recommend using this package directly.")
+    (license license:expat)))
+
+(define-public ocaml-jane-street-headers
+  (package
+    (name "ocaml-jane-street-headers")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "jane-street-headers" version
+      "028yxb4h3iy025iy89v8653m5brh7flrjshghs4x99pd690pmfs7"))
+    (build-system dune-build-system)
+    (arguments '(#:tests? #f))           ; no tests
+    (home-page "https://github.com/janestreet/jane-street-headers")
+    (synopsis "Jane Street C header files")
+    (description "C header files shared between the various Jane Street
+packages.")
+    (license license:expat)))
+
+(define-public ocaml-time-now
+  (package
+    (name "ocaml-time-now")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "time_now" version
+      "0hkn2jw4dz5gflnsblskl5wp6z7zbrahwjmaxmsskfviwjg82cqh"))
+    (build-system dune-build-system)
+    (arguments '(#:tests? #f))           ; no tests
+    (propagated-inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-jane-street-headers" ,ocaml-jane-street-headers)
+       ("ocaml-jst-config" ,ocaml-jst-config)
+       ("ocaml-ppx-base" ,ocaml-ppx-base)
+       ("ocaml-ppx-optcomp" ,ocaml-ppx-optcomp)))
+    (properties `((upstream-name . "time_now")))
+    (home-page
+     "https://github.com/janestreet/time_now")
+    (synopsis "Reports the current time")
+    (description
+     "Provides a single function to report the current time in nanoseconds
+since the start of the Unix epoch.")
+    (license license:expat)))
+
+(define-public ocaml-ppx-inline-test
+  (package
+    (name "ocaml-ppx-inline-test")
+    (version "0.14.1")
     (home-page "https://github.com/janestreet/ppx_inline_test")
     (source
      (origin
@@ -4154,29 +4275,52 @@ syntax checking on dedukti files.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50"))))
+         "1ajdna1m9l1l3nfigyy33zkfa3yarfr6s086jdw2pcfwlq1fhhl4"))))
     (build-system dune-build-system)
     (arguments
-     ;see home page README for further information
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (inputs
-     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-       ("ocaml-migrate-parsetree"
-        ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-       ("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs))
-       ("ocaml-sexplib0" ,(package-with-ocaml4.07 ocaml-sexplib0))
-       ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))
-       ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_inline_test")))
+     `(#:tests? #f)) ;see home page README for further information
+    (propagated-inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-compiler-libs" ,ocaml-compiler-libs)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)
+       ("ocaml-stdio" ,ocaml-stdio)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)
+       ("ocaml-time-now" ,ocaml-time-now)))
+    (properties `((upstream-name . "ppx_inline_test")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-inline-test))))
     (synopsis "Syntax extension for writing in-line tests in ocaml code")
     (description "This package contains a syntax extension for writing
 in-line tests in ocaml code.  It is part of Jane Street's PPX rewriters
 collection.")
     (license license:expat)))
 
+(define-public ocaml4.07-ppx-inline-test
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-inline-test)
+     (name "ocaml-ppx-inline-test")
+     (version "0.12.0")
+     (home-page "https://github.com/janestreet/ppx_inline_test")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url (string-append home-page ".git"))
+              (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0nyz411zim94pzbxm2l2v2l9jishcxwvxhh142792g2s18r4vn50"))))
+    (propagated-inputs
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-compiler-libs" ,ocaml-compiler-libs)
+       ("ocaml-sexplib0" ,ocaml-sexplib0)
+       ("ocaml-stdio" ,ocaml-stdio)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_inline_test"))))))
+
 (define-public ocaml-bindlib
   (package
     (name "ocaml-bindlib")
@@ -4193,7 +4337,7 @@ collection.")
          "1f8kr81w8vsi4gv61xn1qbc6zrzkjp8l9ix0942vjh4gjxc74v75"))))
     (build-system ocaml-build-system)
     (arguments
-     `(#:tests? #f ;no tests
+     `(#:tests? #f                      ;no tests
        #:use-make? #t
        #:phases
        (modify-phases %standard-phases
@@ -4566,6 +4710,10 @@ the OCaml language.")
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'make-deterministic
+           (lambda _
+             (substitute* "Makefile.in"
+               (("`date`") "no date for reproducibility"))))
          (add-before 'configure 'configure-for-release
            (lambda _
              (substitute* "Makefile.in"
@@ -4584,10 +4732,13 @@ the OCaml language.")
          (add-before 'configure 'fix-ocaml-num
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "Makefile.in"
+               (("nums.cma") "num.cma num_core.cma")
                (("= \\$\\(FUNCTORYLIB\\)")
                 (string-append "= -I "
                                (assoc-ref inputs "ocaml-num")
-                               "/lib/ocaml/site-lib"
+                               "/lib/ocaml/site-lib/num/core -I "
+                               (assoc-ref inputs "ocaml-num")
+                               "/lib/ocaml/site-lib/num"
                                " $(FUNCTORYLIB)")))
              #t)))))
     (home-page "http://cubicle.lri.fr/")
@@ -4999,31 +5150,21 @@ by making sure that you only compare comparable values.")
                  "06bq4m1bsm4jlx4g7wh5m99qky7xm4c2g52kaz6pv25hdn5agi2m"))))
      (properties `((upstream-name . "ppx_compare"))))))
 
-(define-public ocaml4.07-fieldslib
+(define-public ocaml-fieldslib
   (package
-    (name "ocaml4.07-fieldslib")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version) "/files/"
-                                  "fieldslib-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "12948pzxrl360lybm9fzyvplgcl87zjbn4m3sk1aw75zk85p1388"))))
+    (name "ocaml-fieldslib")
+    (version "0.14.0")
+    (source (janestreet-origin
+             "fieldslib" version
+             "10n5y376fb5jgqk9h8vq158rm1b36h9lzh6p11q33h6xgvb1v6n3"))
     (build-system dune-build-system)
-    (arguments
-     ;; No tests
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+    (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "fieldslib")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "fieldslib")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-fieldslib))))
     (home-page "https://github.com/janestreet/fieldslib")
     (synopsis "Syntax extension to record fields")
     (description "Syntax extension to define first class values representing
@@ -5031,62 +5172,78 @@ record fields, to get and set record fields, iterate and fold over all fields
 of a record and create new record values.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-variantslib
+(define-public ocaml4.07-fieldslib
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-fieldslib)
+     (version "0.11.0")
+     (source (janestreet-origin
+              "fieldslib" version
+              "12948pzxrl360lybm9fzyvplgcl87zjbn4m3sk1aw75zk85p1388"))
+     (properties `((upstream-name . "fieldslib"))))))
+
+(define-public ocaml-variantslib
   (package
-    (name "ocaml4.07-variantslib")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/variantslib-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1hsdwmkslvk4cznqr4lyyiy7vvk5spil226k0z2in26fxq6y0hf3"))))
+    (name "ocaml-variantslib")
+    (version "0.14.0")
+    (source
+     (janestreet-origin "variantslib" version
+              "11zp27gh282dx9ifbhcp6i7fkc97fvk8amaj58mf1g1hwklc0lm3"))
     (build-system dune-build-system)
     (arguments
      ;; No tests
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:tests? #f))
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "variantslib")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "variantslib")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-variantslib))))
     (home-page "https://github.com/janestreet/variantslib")
     (synopsis "OCaml variants as first class values")
     (description "The Core suite of libraries is an alternative to OCaml's
 standard library.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-fields-conv
+(define-public ocaml4.07-variantslib
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-variantslib)
+     (name "ocaml-variantslib")
+     (version "0.11.0")
+     (source (origin
+               (method url-fetch)
+               (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
+                                   (version-major+minor version)
+                                   "/files/variantslib-v" version ".tar.gz"))
+               (sha256
+                (base32
+                 "1hsdwmkslvk4cznqr4lyyiy7vvk5spil226k0z2in26fxq6y0hf3"))))
+     (properties `((upstream-name . "variantslib"))))))
+
+(define-public ocaml-ppx-fields-conv
   (package
-    (name "ocaml4.07-ppx-fields-conv")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_fields_conv-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc"))))
+    (name "ocaml-ppx-fields-conv")
+    (version "0.14.2")
+    (home-page "https://github.com/janestreet/ppx_fields_conv")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-fieldslib" ,ocaml4.07-fieldslib)
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (properties `((upstream-name . "ppx_fields_conv")))
-    (home-page "https://github.com/janestreet/ppx_fields_conv")
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-fieldslib" ,ocaml-fieldslib)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_fields_conv")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-fields-conv))))
     (synopsis "Generation of accessor and iteration functions for ocaml records")
     (description "Ppx_fields_conv is a ppx rewriter that can be used to define
 first class values representing record fields, and additional routines, to get
@@ -5094,6 +5251,16 @@ and set record fields, iterate and fold over all fields of a record and create
 new record values.")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-fields-conv
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-fields-conv)
+    (version "0.11.0")
+    (source (janestreet-origin
+             "ppx_fields_conv" version
+             "07zrd3qky2ppbfl55gpm90rvqa5860xgwcsvihrjmkrw6d0jirkc"))
+    (properties `((upstream-name . "ppx_fields_conv"))))))
+
 (define-public ocaml-ppx-sexp-conv
   (package
     (name "ocaml-ppx-sexp-conv")
@@ -5138,32 +5305,29 @@ definitions.")
                  "0pqwnqy1xp309wvdcaax4lg02yk64lq2w03mbgfvf6ps5ry4gis9"))))
      (properties `((upstream-name . "ppx_sexp_conv"))))))
 
-(define-public ocaml4.07-ppx-variants-conv
+(define-public ocaml-ppx-variants-conv
   (package
-    (name "ocaml4.07-ppx-variants-conv")
-    (version "0.11.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/janestreet/ppx_variants_conv")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd"))))
+    (name "ocaml-ppx-variants-conv")
+    (version "0.14.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/janestreet/ppx_variants_conv")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0q6a43zrwqzdz7aja0k44a2llyjjj5xzi2kigwhsnww3g0r5ig84"))))
     (build-system dune-build-system)
     (propagated-inputs
-     `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-       ("ocaml-variantslib" ,ocaml4.07-variantslib)
-       ("ocaml-migrate-parsetree"
-        ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-       ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-variantslib" ,ocaml-variantslib)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
     (properties
-     `((upstream-name . "ppx_variants_conv")))
+     `((upstream-name . "ppx_variants_conv")
+       (ocaml4.07-variant . ,(delay ocaml4.07-ppx-variants-conv))))
     (home-page
      "https://github.com/janestreet/ppx_variants_conv")
     (synopsis "Generation of accessor and iteration functions for OCaml variant types")
@@ -5172,36 +5336,63 @@ definitions.")
 variant types.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-custom-printf
+(define-public ocaml4.07-ppx-variants-conv
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-variants-conv)
+     (name "ocaml-ppx-variants-conv")
+     (version "0.11.1")
+     (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+              (url "https://github.com/janestreet/ppx_variants_conv")
+              (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "1yc0gsds5m2nv39zga8nnrca2n75rkqy5dz4xj1635ybz20hhbjd"))))
+    (properties `((upstream-name . "ppx_variants_conv"))))))
+
+(define-public ocaml-ppx-custom-printf
   (package
-    (name "ocaml4.07-ppx-custom-printf")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_custom_printf-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj"))))
+    (name "ocaml-ppx-custom-printf")
+    (version "0.14.1")
+    (home-page "https://github.com/janestreet/ppx_custom_printf")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0c1m65kn27zvwmfwy7kk46ga76yw2a3ik9jygpy1b6nn6pi026w9"))))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (properties `((upstream-name . "ppx_custom_printf")))
-    (home-page "https://github.com/janestreet/ppx_custom_printf")
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_custom_printf")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-custom-printf))))
     (synopsis "Printf-style format-strings for user-defined string conversion")
     (description "Extensions to printf-style format-strings for user-defined
 string conversion.")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-custom-printf
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-custom-printf)
+     (version "0.11.0")
+     (source
+      (janestreet-origin
+       "ppx_custom_printf" version
+       "11b73smf3g3bpd9lg014pr4rx285nk9mnk6g6464ph51jv0sqzhj"))
+     (properties `((upstream-name . "ppx_custom_printf"))))))
+
 (define-public ocaml4.07-bin-prot
   (package
     (name "ocaml4.07-bin-prot")
@@ -5218,10 +5409,10 @@ string conversion.")
     (inputs
       `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare))
-        ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf)
-        ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv)
+        ("ocaml-ppx-custom-printf" ,(package-with-ocaml4.07 ocaml-ppx-custom-printf))
+        ("ocaml-ppx-fields-conv" ,(package-with-ocaml4.07 ocaml-ppx-fields-conv))
         ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv)
+        ("ocaml-ppx-variants-conv" ,(package-with-ocaml4.07 ocaml-ppx-variants-conv))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))))
     (arguments
@@ -5270,63 +5461,63 @@ storage of large amounts of data.")
     (description "Octavius is a library to parse the `ocamldoc` comment syntax.")
     (license license:isc)))
 
-(define-public ocaml4.07-ppx-hash
+(define-public ocaml-ppx-hash
   (package
-    (name "ocaml4.07-ppx-hash")
-    (version "0.11.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/janestreet/ppx_hash")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p"))))
+    (name "ocaml-ppx-hash")
+    (version "0.14.0")
+    (source
+     (janestreet-origin "ppx_hash" version
+                "0x4wgdvhgd8a49bzari52jpkykxpv6ncgp5ncda3xgg0a9r49s8n"))
     (build-system dune-build-system)
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare))
-        ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (properties `((upstream-name . "ppx_hash")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_hash")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-hash))))
     (home-page "https://github.com/janestreet/ppx_hash")
     (synopsis "Generation of hash functions from type expressions and definitions")
     (description "This package is a collection of ppx rewriters that generate
 hash functions from type exrpessions and definitions.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-enumerate
-  (package
-    (name "ocaml4.07-ppx-enumerate")
-    (version "0.11.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/janestreet/ppx_enumerate")
+(define-public ocaml4.07-ppx-hash
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-hash)
+     (name "ocaml-ppx-hash")
+     (home-page "https://github.com/janestreet/ppx_hash")
+     (version "0.11.1")
+     (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url home-page)
                      (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr"))))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "1p0ic6aijxlrdggpmycj12q3cy9xksbq2vq727215maz4snvlf5p"))))
+     (properties `((upstream-name . "ppx_hash"))))))
+
+(define-public ocaml-ppx-enumerate
+  (package
+    (name "ocaml-ppx-enumerate")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "ppx_enumerate" version
+      "1ij6sffgqhnjwnj9brhrrw1c6xgxlh0s6r17x1qkgnyrc73gfsz8"))
     (build-system dune-build-system)
     (arguments
-     `(#:tests? #f; no test suite
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:tests? #f)) ; no test suite
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_enumerate")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_enumerate")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-enumerate))))
     (home-page "https://github.com/janestreet/ppx_enumerate")
     (synopsis "Generate a list containing all values of a finite type")
     (description "Ppx_enumerate is a ppx rewriter which generates a definition
@@ -5334,6 +5525,24 @@ for the list of all values of a type (for a type which only has finitely
 many values).")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-enumerate
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-enumerate)
+     (name "ocaml-ppx-enumerate")
+     (version "0.11.1")
+     (home-page "https://github.com/janestreet/ppx_enumerate")
+     (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url home-page)
+                     (commit (string-append "v" version))))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "0spx9k1v7vjjb6sigbfs69yndgq76v114jhxvzjmffw7q989cyhr"))))
+     (properties `((upstream-name . "ppx_enumerate"))))))
+
 (define-public ocaml4.07-ppx-bench
   (package
     (name "ocaml4.07-ppx-bench")
@@ -5354,7 +5563,7 @@ many values).")
        #:findlib ,ocaml4.07-findlib
        #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
+     `(("ocaml-ppx-inline-test" ,(package-with-ocaml4.07 ocaml-ppx-inline-test))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
@@ -5515,31 +5724,22 @@ context such as function arguments.")
 @code{|>} and @code{|!}.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-optional
+(define-public ocaml-ppx-optional
   (package
-    (name "ocaml4.07-ppx-optional")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_optional-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1z8z2bga95k2vksljljfglg10vygkjd24kn1b37sk4z3nmp47x0h"))))
+    (name "ocaml-ppx-optional")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "ppx_optional" version
+      "1hh6ivlp1qpvyn8l0vhrahkkcp3scf7km254sgplprmk10wnyidz"))
     (build-system dune-build-system)
-    (arguments
-     ;; No tests
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+    (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_optional")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_optional")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-optional))))
     (home-page "https://github.com/janestreet/ppx_optional")
     (synopsis "Pattern matching on flat options")
     (description
@@ -5547,35 +5747,56 @@ context such as function arguments.")
 else expression.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-optcomp
+(define-public ocaml4.07-ppx-optional
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-optional)
+     (version "0.11.0")
+     (source
+      (janestreet-origin
+       "ppx_optional" version
+       "1z8z2bga95k2vksljljfglg10vygkjd24kn1b37sk4z3nmp47x0h"))
+     (properties `((upstream-name . "ppx_optional"))))))
+
+(define-public ocaml-ppx-optcomp
   (package
-    (name "ocaml4.07-ppx-optcomp")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_optcomp-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "1bb52p2j2h4s9f06vrcpla80rj93jinnzq6jzilapyx9q068929i"))))
+    (name "ocaml-ppx-optcomp")
+    (version "0.14.1")
+    (home-page "https://github.com/janestreet/ppx_optcomp")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0j5smqa0hig1yn8wfrb4mv0y59kkwsalmqkm5asbd7kcc6589ap4"))))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_optcomp")))
-    (home-page "https://github.com/janestreet/ppx_optcomp")
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-stdio" ,ocaml-stdio)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_optcomp")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-optcomp))))
     (synopsis "Optional compilation for OCaml")
     (description "Ppx_optcomp stands for Optional Compilation.  It is a tool
 used to handle optional compilations of pieces of code depending of the word
 size, the version of the compiler, ...")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-optcomp
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-optcomp)
+     (version "0.11.0")
+     (source
+      (janestreet-origin
+       "ppx_optcomp" version
+       "1bb52p2j2h4s9f06vrcpla80rj93jinnzq6jzilapyx9q068929i"))
+     (properties `((upstream-name . "ppx_optcomp"))))))
+
 (define-public ocaml-ppx-let
   (package
     (name "ocaml-ppx-let")
@@ -5659,72 +5880,72 @@ instruction cache on the hot path.  See also
 https://github.com/ocaml/ocaml/issues/8563.")
     (license license:expat)))
 
-(define-public ocaml4.07-ppx-assert
+(define-public ocaml-ppx-assert
   (package
-    (name "ocaml4.07-ppx-assert")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_assert-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "17kd311n0l9f72gblf9kv8i5rghr106w37x4f0m5qwh6nlgl0j9k"))))
+    (name "ocaml-ppx-assert")
+    (version "0.14.0")
+    (source
+     (janestreet-origin "ppx_assert" version
+                        "1l2rr4jz2q5b35ryn2z146z7m9v6k8krp5gpn8ilib66mnz5zx15"))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare))
-        ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here))
-        ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_assert")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-ppx-cold" ,ocaml-ppx-cold)
+       ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+       ("ocaml-ppx-here" ,ocaml-ppx-here)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_assert")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-assert))))
     (home-page "https://github.com/janestreet/ppx_assert")
     (synopsis "Assert-like extension nodes that raise useful errors on failure")
     (description "This package contains assert-like extension nodes that raise
 useful errors on failure.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-expect
+(define-public ocaml4.07-ppx-assert
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-assert)
+     (version "0.11.0")
+     (source
+      (janestreet-origin "ppx_assert" version
+                         "17kd311n0l9f72gblf9kv8i5rghr106w37x4f0m5qwh6nlgl0j9k"))
+     (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)))
+     (properties `((upstream-name . "ppx_assert"))))))
+
+(define-public ocaml-ppx-expect
   (package
-    (name "ocaml4.07-ppx-expect")
-    (version "0.12.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/janestreet/ppx_expect")
-                     (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q"))))
+    (name "ocaml-ppx-expect")
+    (version "0.14.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/janestreet/ppx_expect")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0vbbnjrzpyk5p0js21lafr6fcp2wqka89p1876rdf472cmg0l7fv"))))
     (build-system dune-build-system)
-    (arguments
-     `(#:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
-        ("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare))
-        ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf)
-        ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv)
-        ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here))
-        ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
-        ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv)
-        ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))
-        ("ocaml-re" ,(package-with-ocaml4.07 ocaml-re))))
-    (properties `((upstream-name . "ppx_expect")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-ppx-here" ,ocaml-ppx-here)
+       ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+       ("ocaml-stdio" ,ocaml-stdio)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-re" ,ocaml-re)))
+    (properties `((upstream-name . "ppx_expect")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-expect))))
     (home-page "https://github.com/janestreet/ppx_expect")
     (synopsis "Cram like framework for OCaml")
     (description "Expect-test is a framework for writing tests in OCaml, similar
@@ -5734,32 +5955,46 @@ output-generating code, interleaved with @code{%expect} extension expressions
 to denote the expected output.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-js-style
+(define-public ocaml4.07-ppx-expect
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-expect)
+     (version "0.12.0")
+     (source
+      (janestreet-origin "ppx_expect" version
+                         "1zpci8c49yn2ixchmwjx1kf9pwybv3dnn4l2dgnd6m36qnkralfk"))
+     (propagated-inputs
+      `(("ocaml-base" ,ocaml-base)
+        ("ocaml-ppx-assert" ,ocaml-ppx-assert)
+        ("ocaml-ppx-compare" ,ocaml-ppx-compare)
+        ("ocaml-ppx-custom-printf" ,ocaml-ppx-custom-printf)
+        ("ocaml-ppx-fields-conv" ,ocaml-ppx-fields-conv)
+        ("ocaml-ppx-here" ,ocaml-ppx-here)
+        ("ocaml-ppx-inline-test" ,ocaml-ppx-inline-test)
+        ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+        ("ocaml-ppx-variants-conv" ,ocaml-ppx-variants-conv)
+        ("ocaml-stdio" ,ocaml-stdio)
+        ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+        ("ocaml-ppxlib" ,ocaml-ppxlib)
+        ("ocaml-re" ,ocaml-re)))
+     (properties `((upstream-name . "ppx_expect"))))))
+
+(define-public ocaml-ppx-js-style
   (package
-    (name "ocaml4.07-ppx-js-style")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_js_style-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "0z3fc55jdjhhsblla6z4fqc13kljpcz29q79rvs5h2vsraqrldr2"))))
+    (name "ocaml-ppx-js-style")
+    (version "0.14.0")
+    (source
+     (janestreet-origin "ppx_js_style" version
+      "141fgxfipfn5jdaxc946dmp5y4fcnbhxms9maji9ddywgx82ya7l"))
     (build-system dune-build-system)
-    (arguments
-     ;; No tests
-     `(#:tests? #f
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+    (arguments `(#:tests? #f)) ; No tests
     (propagated-inputs
-      `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-octavius" ,(package-with-ocaml4.07 ocaml-octavius))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_js_style")))
+     `(("ocaml-base" ,ocaml-base)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-octavius" ,ocaml-octavius)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_js_style")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-js-style))))
     (home-page "https://github.com/janestreet/ppx_js_style")
     (synopsis "Code style checker for Jane Street Packages")
     (description "This package is a no-op ppx rewriter.  It is used as a
@@ -5767,6 +6002,16 @@ to denote the expected output.")
 packages.")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-js-style
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-js-style)
+     (version "0.11.0")
+     (source
+      (janestreet-origin "ppx_js_style" version
+                         "0z3fc55jdjhhsblla6z4fqc13kljpcz29q79rvs5h2vsraqrldr2"))
+     (properties `((upstream-name . "ppx_js_style"))))))
+
 (define-public ocaml4.07-ppx-typerep-conv
   (package
     (name "ocaml4.07-ppx-typerep-conv")
@@ -5799,34 +6044,28 @@ packages.")
 from type definitions.")
     (license license:asl2.0)))
 
-(define-public ocaml4.07-ppx-base
+(define-public ocaml-ppx-base
   (package
-    (name "ocaml4.07-ppx-base")
-    (version "0.11.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://ocaml.janestreet.com/ocaml-core/v"
-                                  (version-major+minor version)
-                                  "/files/ppx_base-v" version ".tar.gz"))
-              (sha256
-               (base32
-                "0aq206pg330jmj7lhcagiiwm3a0b3gsqm801m8ajd4ysyw7idkym"))))
+    (name "ocaml-ppx-base")
+    (version "0.14.0")
+    (source
+     (janestreet-origin
+      "ppx_base" version
+      "0b7a3fmi90jk8paz0g36yzaq670fbnrbi1j8r5ibh9wbcfli7ji6"))
     (build-system dune-build-system)
     (arguments
-     `(#:test-target "."
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
+     `(#:test-target "."))
     (propagated-inputs
-     `(("ocaml-ppx-compare" ,(package-with-ocaml4.07 ocaml-ppx-compare))
-        ("ocaml-ppx-enumerate" ,ocaml4.07-ppx-enumerate)
-        ("ocaml-ppx-hash" ,ocaml4.07-ppx-hash)
-        ("ocaml-ppx-js-style" ,ocaml4.07-ppx-js-style)
-        ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
-        ("ocaml-migrate-parsetree"
-         ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
-        ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
-    (properties `((upstream-name . "ppx_base")))
+     `(("ocaml-ppx-compare" ,ocaml-ppx-compare)
+       ("ocaml-ppx-cold" ,ocaml-ppx-cold)
+       ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate)
+       ("ocaml-ppx-hash" ,ocaml-ppx-hash)
+       ("ocaml-ppx-js-style" ,ocaml-ppx-js-style)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_base")
+                  (ocaml4.07-variant . ,(delay ocaml4.07-ppx-base))))
     (home-page "https://github.com/janestreet/ppx_base")
     (synopsis "Base set of ppx rewriters")
     (description "Ppx_base is the set of ppx rewriters used for Base.
@@ -5835,6 +6074,25 @@ Note that Base doesn't need ppx to build, it is only used as a
 verification tool.")
     (license license:asl2.0)))
 
+(define-public ocaml4.07-ppx-base
+  (package-with-ocaml4.07
+   (package
+     (inherit ocaml-ppx-base)
+     (version "0.11.0")
+     (source
+      (janestreet-origin
+       "ppx_base" version
+       "0aq206pg330jmj7lhcagiiwm3a0b3gsqm801m8ajd4ysyw7idkym"))
+    (propagated-inputs
+     `(("ocaml-ppx-compare" ,ocaml-ppx-compare)
+       ("ocaml-ppx-enumerate" ,ocaml-ppx-enumerate)
+       ("ocaml-ppx-hash" ,ocaml-ppx-hash)
+       ("ocaml-ppx-js-style" ,ocaml-ppx-js-style)
+       ("ocaml-ppx-sexp-conv" ,ocaml-ppx-sexp-conv)
+       ("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree)
+       ("ocaml-ppxlib" ,ocaml-ppxlib)))
+    (properties `((upstream-name . "ppx_base"))))))
+
 (define-public ocaml4.07-ppx-bin-prot
   (package
     (name "ocaml4.07-ppx-bin-prot")
@@ -5888,24 +6146,24 @@ functions from type definitions.")
        #:findlib ,ocaml4.07-findlib
        #:dune ,ocaml4.07-dune))
     (propagated-inputs
-      `(("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
-        ("ocaml-ppx-base" ,ocaml4.07-ppx-base)
+     `(("ocaml-ppx-assert" ,(package-with-ocaml4.07 ocaml-ppx-assert))
+       ("ocaml-ppx-base" ,(package-with-ocaml4.07 ocaml-ppx-base))
         ("ocaml-ppx-bench" ,ocaml4.07-ppx-bench)
         ("ocaml-ppx-bin-prot" ,ocaml4.07-ppx-bin-prot)
-        ("ocaml-ppx-custom-printf" ,ocaml4.07-ppx-custom-printf)
-        ("ocaml-ppx-expect" ,ocaml4.07-ppx-expect)
+        ("ocaml-ppx-custom-printf" ,(package-with-ocaml4.07 ocaml-ppx-custom-printf))
+        ("ocaml-ppx-expect" ,(package-with-ocaml4.07 ocaml-ppx-expect))
         ("ocaml-ppx-fail" ,ocaml4.07-ppx-fail)
-        ("ocaml-ppx-fields-conv" ,ocaml4.07-ppx-fields-conv)
+        ("ocaml-ppx-fields-conv" ,(package-with-ocaml4.07 ocaml-ppx-fields-conv))
         ("ocaml-ppx-here" ,(package-with-ocaml4.07 ocaml-ppx-here))
-        ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
+        ("ocaml-ppx-inline-test" ,(package-with-ocaml4.07 ocaml-ppx-inline-test))
         ("ocaml-ppx-let" ,(package-with-ocaml4.07 ocaml-ppx-let))
-        ("ocaml-ppx-optcomp" ,ocaml4.07-ppx-optcomp)
-        ("ocaml-ppx-optional" ,ocaml4.07-ppx-optional)
+        ("ocaml-ppx-optcomp" ,(package-with-ocaml4.07 ocaml-ppx-optcomp))
+        ("ocaml-ppx-optional" ,(package-with-ocaml4.07 ocaml-ppx-optional))
         ("ocaml-ppx-pipebang" ,ocaml4.07-ppx-pipebang)
         ("ocaml-ppx-sexp-message" ,ocaml4.07-ppx-sexp-message)
         ("ocaml-ppx-sexp-value" ,ocaml4.07-ppx-sexp-value)
         ("ocaml-ppx-typerep-conv" ,ocaml4.07-ppx-typerep-conv)
-        ("ocaml-ppx-variants-conv" ,ocaml4.07-ppx-variants-conv)
+        ("ocaml-ppx-variants-conv" ,(package-with-ocaml4.07 ocaml-ppx-variants-conv))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))
         ("ocaml-ppxlib" ,(package-with-ocaml4.07 ocaml-ppxlib))))
@@ -6038,7 +6296,7 @@ Configurator allows one to:
        #:findlib ,ocaml4.07-findlib
        #:dune ,ocaml4.07-dune))
     (native-inputs
-     `(("ocaml-ppx-expect" ,ocaml4.07-ppx-expect)))
+     `(("ocaml-ppx-expect" ,(package-with-ocaml4.07 ocaml-ppx-expect))))
     (home-page "https://github.com/janestreet/spawn")
     (synopsis "Spawning sub-processes")
     (description
@@ -6084,7 +6342,7 @@ thousands of times faster than fork.
       `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-configurator" ,ocaml4.07-configurator)
         ("ocaml-core-kernel" ,ocaml4.07-core-kernel)
-        ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
+        ("ocaml-ppx-assert" ,(package-with-ocaml4.07 ocaml-ppx-assert))
         ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
         ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib))
         ("ocaml-spawn" ,ocaml4.07-spawn)
@@ -6124,12 +6382,12 @@ standard library that was developed by Jane Street.")
       `(("ocaml-base" ,(package-with-ocaml4.07 ocaml-base))
         ("ocaml-bin-prot" ,ocaml4.07-bin-prot)
         ("ocaml-configurator" ,ocaml4.07-configurator)
-        ("ocaml-fieldslib" ,ocaml4.07-fieldslib)
+        ("ocaml-fieldslib" ,(package-with-ocaml4.07 ocaml-fieldslib))
         ("ocaml-jane-street-headers" ,ocaml4.07-jane-street-headers)
-        ("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
-        ("ocaml-ppx-base" ,ocaml4.07-ppx-base)
-        ("ocaml-ppx-hash" ,ocaml4.07-ppx-hash)
-        ("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
+        ("ocaml-ppx-assert" ,(package-with-ocaml4.07 ocaml-ppx-assert))
+        ("ocaml-ppx-base" ,(package-with-ocaml4.07 ocaml-ppx-base))
+        ("ocaml-ppx-hash" ,(package-with-ocaml4.07 ocaml-ppx-hash))
+        ("ocaml-ppx-inline-test" ,(package-with-ocaml4.07 ocaml-ppx-inline-test))
         ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
         ("ocaml-ppx-sexp-conv" ,(package-with-ocaml4.07 ocaml-ppx-sexp-conv))
         ("ocaml-ppx-sexp-message" ,ocaml4.07-ppx-sexp-message)
@@ -6137,7 +6395,7 @@ standard library that was developed by Jane Street.")
         ("ocaml-splittable-random" ,ocaml4.07-splittable-random)
         ("ocaml-stdio" ,(package-with-ocaml4.07 ocaml-stdio))
         ("ocaml-typerep" ,ocaml4.07-typerep)
-        ("ocaml-variantslib" ,ocaml4.07-variantslib)
+        ("ocaml-variantslib" ,(package-with-ocaml4.07 ocaml-variantslib))
         ("ocaml-migrate-parsetree"
          ,(package-with-ocaml4.07 ocaml-migrate-parsetree))))
     (properties `((upstream-name . "core_kernel")))
@@ -6494,7 +6752,7 @@ variants.")
 (define-public ocaml-mdx
   (package
     (name "ocaml-mdx")
-    (version "1.7.0")
+    (version "1.9.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6503,7 +6761,7 @@ variants.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "10avyv99xkfqdq3gmq8gps770jpibbfslg97sbhgmp0dpwikz49d"))))
+                "0fhwaci8j73fx9xqapa9iv9xwjx73r6p8wh9xg6brnfbqkc38d5b"))))
     (build-system dune-build-system)
     (inputs
      `(("ocaml-fmt" ,ocaml-fmt)
@@ -6688,3 +6946,106 @@ these missing pieces.")
      "This packages backports new features of the language to older
 compilers, such as let+.")
     (license license:expat)))
+
+(define-public ocaml-angstrom
+  (package
+    (name "ocaml-angstrom")
+    (version "0.15.0")
+    (home-page "https://github.com/inhabitedtype/angstrom")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1hmrkdcdlkwy7rxhngf3cv3sa61cznnd9p5lmqhx20664gx2ibrh"))))
+    (build-system dune-build-system)
+    (arguments
+     ;; Only build the base angstrom package.
+     '(#:package "angstrom"
+       #:test-target "."))
+    (propagated-inputs
+     `(("ocaml-bigstringaf" ,ocaml-bigstringaf)))
+    (native-inputs
+     `(("ocaml-alcotest" ,ocaml-alcotest)
+       ("ocaml-ppx-let" ,ocaml-ppx-let)
+       ("ocaml-syntax-shims" ,ocaml-syntax-shims)))
+    (synopsis "Parser combinators built for speed and memory-efficiency")
+    (description
+     "Angstrom is a parser-combinator library that makes it easy to write
+efficient, expressive, and reusable parsers suitable for high-performance
+applications.  It exposes monadic and applicative interfaces for composition,
+and supports incremental input through buffered and unbuffered interfaces.
+Both interfaces give the user total control over the blocking behavior of
+their application, with the unbuffered interface enabling zero-copy IO.
+Parsers are backtracking by default and support unbounded lookahead.")
+    (license license:bsd-3)))
+
+(define-public ocaml-graphics
+  (package
+    (name "ocaml-graphics")
+    (version "5.1.1")
+    (home-page "https://github.com/ocaml/graphics")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "14w07ydji2nbdk366nfp2pzs9484xp9vqv63n345id13v48z8bfi"))))
+    (build-system dune-build-system)
+    (propagated-inputs
+     `(("libx11" ,libx11)))
+    (synopsis "The OCaml graphics library")
+    (description
+     "The graphics library provides a set of portable drawing primitives.
+Drawing takes place in a separate window that is created when
+Graphics.open_graph is called.  This library used to be distributed with OCaml
+up to OCaml 4.08.")
+    (license license:lgpl2.1+)))
+
+(define-public js-of-ocaml
+  (package
+    (name "js-of-ocaml")
+    (version "3.9.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ocsigen/js_of_ocaml")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00hdjaj94j3nc6f6wbbpx59h4yc79siphs34i1hry11r56paaqyk"))))
+    (build-system dune-build-system)
+    (arguments `(#:test-target "."))
+    (propagated-inputs
+     `(("ocaml-ppxlib" ,ocaml-ppxlib)
+       ("ocaml-uchar" ,ocaml-uchar)
+       ("ocaml-menhir" ,ocaml-menhir)
+       ("ocaml-reactivedata" ,ocaml-reactivedata)
+       ("ocaml-cmdliner" ,ocaml-cmdliner)
+       ("ocaml-lwt" ,ocaml-lwt)
+       ("ocaml-tyxml" ,ocaml-tyxml)
+       ("ocaml-re" ,ocaml-re)
+       ("ocaml-uutf" ,ocaml-uutf)
+       ("ocaml-graphics" ,ocaml-graphics)
+       ("ocaml-yojson" ,ocaml-yojson)))
+    (native-inputs
+     ;; for tests
+     `(("node" ,node)
+       ("ocaml-ppx-expect" ,ocaml-ppx-expect)
+       ("ocaml-num" ,ocaml-num)))
+    (properties `((upstream-name . "js_of_ocaml")))
+    (home-page "https://ocsigen.org/js_of_ocaml/")
+    (synopsis "Compiler from OCaml bytecode to Javascript")
+    (description "Js_of_ocaml is a compiler from OCaml bytecode to JavaScript.
+It makes it possible to run pure OCaml programs in JavaScript environment like
+browsers and Node.js.")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index 15e1811d6b..a60aeaa3b5 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -180,7 +180,7 @@ monospaced or proportional.")
        ("podofo" ,podofo)
        ("poppler-qt5" ,poppler-qt5)
        ("sane-backends" ,sane-backends)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtspell" ,qtspell)
        ("quazip" ,quazip)
        ("tesseract" ,tesseract-ocr)))
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index 942e194739..bedbad7e60 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -177,7 +177,7 @@ GUI based workflow.  It is primarily used in the Orange framework.")
        ("python-serverfiles" ,python-serverfiles)
        ("python-xlrd" ,python-xlrd)
        ("python-xlsxwriter" ,python-xlsxwriter)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("xdg-utils" ,xdg-utils)))
     (home-page "https://orangedatamining.com/")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 7229723ab8..4e1543a485 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -132,8 +132,8 @@
   ;; Note: the 'update-guix-package.scm' script expects this definition to
   ;; start precisely like this.
   (let ((version "1.3.0")
-        (commit "50dfbbf8ef52111067071c788e19fc21d54c40d6")
-        (revision 3))
+        (commit "4985a4272497bf9ba87a2190353d915da9b55906")
+        (revision 4))
     (package
       (name "guix")
 
@@ -149,7 +149,7 @@
                       (commit commit)))
                 (sha256
                  (base32
-                  "128608qyza3p769h7awp183c2mi9gdx2b1xidvmjilfkphlg1lyi"))
+                  "0d1pal92pnqs9zh5rgw1s6whvzf199p1gqa12x6ssyqbc65m32xc"))
                 (file-name (string-append "guix-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -1027,8 +1027,8 @@ environments.")
     (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
 
 (define-public guix-build-coordinator
-  (let ((commit "f9af463e81d9fcc712d7c58a491101d8d17457e8")
-        (revision "30"))
+  (let ((commit "870a0c6075c7c7b70a3c60210ea44353b3f2637b")
+        (revision "32"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1039,7 +1039,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "08ysa7a33fsm069gxqnvbf1yzqcsky6gk2pifamkq0wq1dls661r"))
+                  "0z9ysgj3vmrrrmpdnc1skq5jl7m0w3f0l074s3fa8akdrifzx7w4"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/pantheon.scm b/gnu/packages/pantheon.scm
index 249c27e4db..6e78f45e14 100644
--- a/gnu/packages/pantheon.scm
+++ b/gnu/packages/pantheon.scm
@@ -30,7 +30,7 @@
   #:use-module (gnu packages)
   #:use-module (guix build-system meson)
   #:use-module (guix git-download)
-  #:use-module ((guix licenses) :prefix license:)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils))
 
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 310253c2a4..31fce7072b 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -30,6 +30,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -125,7 +126,7 @@ human.")
 (define-public keepassxc
   (package
     (name "keepassxc")
-    (version "2.6.4")
+    (version "2.6.6")
     (source
      (origin
        (method url-fetch)
@@ -133,7 +134,7 @@ human.")
                            "/releases/download/" version "/keepassxc-"
                            version "-src.tar.xz"))
        (sha256
-        (base32 "0azq20rqsx7axrigha4qh81ipvhqnnlb27w3xdjg5z4h3jky4dp5"))))
+        (base32 "1qm4a1k11vy35mrzbzcc7lwlpmjzw18a2zy7z93rqa4vqcdb20rn"))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -160,7 +161,7 @@ human.")
        ("libxi" ,libxi)
        ("libxtst" ,libxtst)
        ("qrencode" ,qrencode)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("quazip" ,quazip)               ; XC_KEESHARE
@@ -480,100 +481,95 @@ any X11 window.")
     (license license:gpl3+)))
 
 (define-public password-store
-  ;; The 1.7.3 release does not include support for wl-clipboard, which was
-  ;; added in b0b784b1a57c0b06936e6f5d6560712b4b810cd3. Instead, use the
-  ;; latest commit on master at the time of writing.
-  (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
-        (revision "1"))
-    (package
-      (name "password-store")
-      (version (git-version "1.7.3" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "git://git.zx2c4.com/password-store")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
-                (file-name (git-file-name name version)) ))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'build)
-           (add-before 'install 'patch-system-extension-dir
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (extension-dir (string-append out "/lib/password-store/extensions")))
-                 (substitute* "src/password-store.sh"
-                   (("^SYSTEM_EXTENSION_DIR=.*$")
-                    ;; lead with whitespace to prevent 'make install' from
-                    ;; overwriting it again
-                    (string-append " SYSTEM_EXTENSION_DIR=\""
-                                   "${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:-"
-                                   extension-dir
-                                   "}\"\n"))))
-               #t))
-           (add-before 'install 'patch-passmenu-path
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "contrib/dmenu/passmenu"
-                 (("dmenu") (string-append (assoc-ref inputs "dmenu")
-                                           "/bin/dmenu"))
-                 (("xdotool") (string-append (assoc-ref inputs "xdotool")
-                                             "/bin/xdotool")))
-               #t))
-           (add-after 'install 'install-passmenu
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin")))
-                 (install-file "contrib/dmenu/passmenu" bin)
-                 #t)))
-           (add-after 'install 'wrap-path
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out"))
-                     (path (map (lambda (pkg)
-                                  (string-append (assoc-ref inputs pkg) "/bin"))
-                                '("coreutils" "getopt" "git" "gnupg" "qrencode"
-                                  "sed" "tree" "which" "wl-clipboard" "xclip"))))
-                 (wrap-program (string-append out "/bin/pass")
-                   `("PATH" ":" prefix (,(string-join path ":"))))
-                 #t))))
-         #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)
-                            "WITH_ALLCOMP=yes"
-                            (string-append "BASHCOMPDIR="
-                                           %output "/etc/bash_completion.d"))
-         ;; Parallel tests may cause a race condition leading to a
-         ;; timeout in some circumstances.
-         #:parallel-tests? #f
-         #:test-target "test"))
-      (native-search-paths
-       (list (search-path-specification
-              (variable "PASSWORD_STORE_SYSTEM_EXTENSION_DIR")
-              (separator #f)                        ;single entry
-              (files '("lib/password-store/extensions")))))
-      (inputs
-       `(("dmenu" ,dmenu)
-         ("getopt" ,util-linux)
-         ("git" ,git)
-         ("gnupg" ,gnupg)
-         ("qrencode" ,qrencode)
-         ("sed" ,sed)
-         ("tree" ,tree)
-         ("which" ,which)
-         ("wl-clipboard" ,wl-clipboard)
-         ("xclip" ,xclip)
-         ("xdotool" ,xdotool)))
-      (home-page "https://www.passwordstore.org/")
-      (synopsis "Encrypted password manager")
-      (description "Password-store is a password manager which uses GnuPG to
+  (package
+    (name "password-store")
+    (version "1.7.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "git://git.zx2c4.com/password-store")
+                    (commit version)))
+              (sha256
+               (base32
+                "17zp9pnb3i9sd2zn9qanngmsywrb7y495ngcqs6313pv3gb83v53"))
+              (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (add-before 'install 'patch-system-extension-dir
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (extension-dir (string-append out "/lib/password-store/extensions")))
+               (substitute* "src/password-store.sh"
+                 (("^SYSTEM_EXTENSION_DIR=.*$")
+                  ;; lead with whitespace to prevent 'make install' from
+                  ;; overwriting it again
+                  (string-append " SYSTEM_EXTENSION_DIR=\""
+                                 "${PASSWORD_STORE_SYSTEM_EXTENSION_DIR:-"
+                                 extension-dir
+                                 "}\"\n"))))
+             #t))
+         (add-before 'install 'patch-passmenu-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "contrib/dmenu/passmenu"
+               (("dmenu") (string-append (assoc-ref inputs "dmenu")
+                                         "/bin/dmenu"))
+               (("xdotool") (string-append (assoc-ref inputs "xdotool")
+                                           "/bin/xdotool")))
+             #t))
+         (add-after 'install 'install-passmenu
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "contrib/dmenu/passmenu" bin)
+               #t)))
+         (add-after 'install 'wrap-path
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (path (map (lambda (pkg)
+                                (string-append (assoc-ref inputs pkg) "/bin"))
+                              '("coreutils" "getopt" "git" "gnupg" "qrencode"
+                                "sed" "tree" "which" "wl-clipboard" "xclip"))))
+               (wrap-program (string-append out "/bin/pass")
+                 `("PATH" ":" prefix (,(string-join path ":"))))
+               #t))))
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)
+                          "WITH_ALLCOMP=yes"
+                          (string-append "BASHCOMPDIR="
+                                         %output "/etc/bash_completion.d"))
+       ;; Parallel tests may cause a race condition leading to a
+       ;; timeout in some circumstances.
+       #:parallel-tests? #f
+       #:test-target "test"))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "PASSWORD_STORE_SYSTEM_EXTENSION_DIR")
+            (separator #f)             ;single entry
+            (files '("lib/password-store/extensions")))))
+    (inputs
+     `(("dmenu" ,dmenu)
+       ("getopt" ,util-linux)
+       ("git" ,git)
+       ("gnupg" ,gnupg)
+       ("qrencode" ,qrencode)
+       ("sed" ,sed)
+       ("tree" ,tree)
+       ("which" ,which)
+       ("wl-clipboard" ,wl-clipboard)
+       ("xclip" ,xclip)
+       ("xdotool" ,xdotool)))
+    (home-page "https://www.passwordstore.org/")
+    (synopsis "Encrypted password manager")
+    (description "Password-store is a password manager which uses GnuPG to
 store and retrieve passwords.  The tool stores each password in its own
 GnuPG-encrypted file, allowing the program to be simple yet secure.
 Synchronization is possible using the integrated git support, which commits
 changes to your password database to a git repository that can be managed
 through the pass command.")
-      (license license:gpl2+))))
+    (license license:gpl2+)))
 
 (define-public pass-otp
   (package
@@ -693,7 +689,7 @@ key URIs using the standard otpauth:// scheme.")
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (home-page "https://qtpass.org")
     (synopsis "GUI for password manager password-store")
diff --git a/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch b/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch
new file mode 100644
index 0000000000..ceada2fa24
--- /dev/null
+++ b/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch
@@ -0,0 +1,29 @@
+Fixes for compiling with -fno-common, default in GCC 10.
+
+Taken from upstream:
+https://github.com/qca/open-ath9k-htc-firmware/commit/559e3eba3b4cf103da6b8d022f3e1387278b9db8
+
+diff --git a/target_firmware/magpie_fw_dev/target/init/app_start.c b/target_firmware/magpie_fw_dev/target/init/app_start.c
+--- a/target_firmware/magpie_fw_dev/target/init/app_start.c
++++ b/target_firmware/magpie_fw_dev/target/init/app_start.c
+@@ -52,6 +52,8 @@
+ #define ALLOCRAM_START       ( ((unsigned int)&_fw_image_end) + 4)
+ #define ALLOCRAM_SIZE        ( SYS_RAM_SZIE - ( ALLOCRAM_START - SYS_D_RAM_REGION_0_BASE) - SYS_D_RAM_STACK_SIZE)
+ 
++void (* _assfail_ori)(struct register_dump_s *);
++
+ // support for more than 64 bytes on command pipe
+ extern void usb_reg_out_patch(void);
+ extern int _HIFusb_get_max_msg_len_patch(hif_handle_t handle, int pipe);
+diff --git a/target_firmware/magpie_fw_dev/target/init/init.h b/target_firmware/magpie_fw_dev/target/init/init.h
+--- a/target_firmware/magpie_fw_dev/target/init/init.h
++++ b/target_firmware/magpie_fw_dev/target/init/init.h
+@@ -46,7 +46,7 @@
+ void AR6002_fatal_exception_handler_patch(CPU_exception_frame_t *exc_frame);
+ void exception_reset(struct register_dump_s *dump);
+ 
+-void (* _assfail_ori)(struct register_dump_s *);
++extern void (* _assfail_ori)(struct register_dump_s *);
+ void HTCMsgRecvHandler_patch(adf_nbuf_t hdr_buf, adf_nbuf_t buffer, void *context);
+ void HTCControlSvcProcessMsg_patch(HTC_ENDPOINT_ID EndpointID, adf_nbuf_t hdr_buf,
+ 				   adf_nbuf_t pBuffers, void *arg);
diff --git a/gnu/packages/patches/bash-completion-directories.patch b/gnu/packages/patches/bash-completion-directories.patch
index 164096f16c..021e34653b 100644
--- a/gnu/packages/patches/bash-completion-directories.patch
+++ b/gnu/packages/patches/bash-completion-directories.patch
@@ -16,11 +16,11 @@ This is what this patch does.
  {
 -    local -a dirs=( ${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions )
 +    local -a dirs=(
++        ${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions
 +        "$HOME/.guix-profile/share/bash-completion/completions/$base"
 +        "$HOME/.guix-profile/etc/bash_completion.d/$base"
 +        "/run/current-system/profile/share/bash-completion/completions/$base"
-+        "/run/current-system/profile/etc/bash_completion.d/$base"
-+        ${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions )
++        "/run/current-system/profile/etc/bash_completion.d/$base" )
 +
      local OIFS=$IFS IFS=: dir cmd="${1##*/}" compfile
      for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}; do
diff --git a/gnu/packages/patches/brightnessctl-elogind-support.patch b/gnu/packages/patches/brightnessctl-elogind-support.patch
new file mode 100644
index 0000000000..8125f1c459
--- /dev/null
+++ b/gnu/packages/patches/brightnessctl-elogind-support.patch
@@ -0,0 +1,13 @@
+From https://github.com/Hummer12007/brightnessctl/issues/67
+
+--- a/Makefile
++++ b/Makefile
+@@ -18,6 +18,8 @@ MODE = ${MODE_${INSTALL_UDEV_RULES}}
+ ifdef ENABLE_SYSTEMD
+ 	CFLAGS += ${shell pkg-config --cflags libsystemd}
+ 	LDLIBS += ${shell pkg-config --libs libsystemd}
++	CFLAGS += ${shell pkg-config --cflags libelogind}
++	LDLIBS += ${shell pkg-config --libs libelogind}
+ 	CPPFLAGS += -DENABLE_SYSTEMD
+ 	INSTALL_UDEV_RULES=0
+ 	MODE = 0755
diff --git a/gnu/packages/patches/bsdiff-CVE-2014-9862.patch b/gnu/packages/patches/bsdiff-CVE-2014-9862.patch
deleted file mode 100644
index 7aab818090..0000000000
--- a/gnu/packages/patches/bsdiff-CVE-2014-9862.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/bspatch.c b/bspatch.c
-index 8d95633..ab77722 100644
---- a/bspatch.c
-+++ b/bspatch.c
-
-@@ -187,6 +187,10 @@
- 		};
- 
- 		/* Sanity-check */
-+		if ((ctrl[0] < 0) || (ctrl[1] < 0))
-+			errx(1,"Corrupt patch\n");
-+
-+		/* Sanity-check */
- 		if(newpos+ctrl[0]>newsize)
- 			errx(1,"Corrupt patch\n");
diff --git a/gnu/packages/patches/connman-CVE-2021-33833.patch b/gnu/packages/patches/connman-CVE-2021-33833.patch
new file mode 100644
index 0000000000..3e1a19d961
--- /dev/null
+++ b/gnu/packages/patches/connman-CVE-2021-33833.patch
@@ -0,0 +1,74 @@
+Fix CVE-2021-33833:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-33833
+
+Patch copied from upstream source repository:
+
+https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=eceb2e8d2341c041df55a5e2f047d9a8c491463c
+
+From eceb2e8d2341c041df55a5e2f047d9a8c491463c Mon Sep 17 00:00:00 2001
+From: Valery Kashcheev <v.kascheev@omp.ru>
+Date: Mon, 7 Jun 2021 18:58:24 +0200
+Subject: [PATCH] dnsproxy: Check the length of buffers before memcpy
+
+Fix using a stack-based buffer overflow attack by checking the length of
+the ptr and uptr buffers.
+
+Fix debug message output.
+
+Fixes: CVE-2021-33833
+---
+ src/dnsproxy.c | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/src/dnsproxy.c b/src/dnsproxy.c
+index de52df5a..38dbdd71 100644
+--- a/src/dnsproxy.c
++++ b/src/dnsproxy.c
+@@ -1788,17 +1788,15 @@ static char *uncompress(int16_t field_count, char *start, char *end,
+ 		 * tmp buffer.
+ 		 */
+ 
+-		debug("pos %d ulen %d left %d name %s", pos, ulen,
+-			(int)(uncomp_len - (uptr - uncompressed)), uptr);
+-
+-		ulen = strlen(name);
+-		if ((uptr + ulen + 1) > uncomp_end) {
++		ulen = strlen(name) + 1;
++		if ((uptr + ulen) > uncomp_end)
+ 			goto out;
+-		}
+-		strncpy(uptr, name, uncomp_len - (uptr - uncompressed));
++		strncpy(uptr, name, ulen);
++
++		debug("pos %d ulen %d left %d name %s", pos, ulen,
++			(int)(uncomp_end - (uptr + ulen)), uptr);
+ 
+ 		uptr += ulen;
+-		*uptr++ = '\0';
+ 
+ 		ptr += pos;
+ 
+@@ -1841,7 +1839,7 @@ static char *uncompress(int16_t field_count, char *start, char *end,
+ 		} else if (dns_type == ns_t_a || dns_type == ns_t_aaaa) {
+ 			dlen = uptr[-2] << 8 | uptr[-1];
+ 
+-			if (ptr + dlen > end) {
++			if ((ptr + dlen) > end || (uptr + dlen) > uncomp_end) {
+ 				debug("data len %d too long", dlen);
+ 				goto out;
+ 			}
+@@ -1880,6 +1878,10 @@ static char *uncompress(int16_t field_count, char *start, char *end,
+ 			 * refresh interval, retry interval, expiration
+ 			 * limit and minimum ttl). They are 20 bytes long.
+ 			 */
++			if ((uptr + 20) > uncomp_end || (ptr + 20) > end) {
++				debug("soa record too long");
++				goto out;
++			}
+ 			memcpy(uptr, ptr, 20);
+ 			uptr += 20;
+ 			ptr += 20;
+-- 
+2.32.0
+
diff --git a/gnu/packages/patches/curl-7.77-tls-priority-string.patch b/gnu/packages/patches/curl-7.77-tls-priority-string.patch
new file mode 100644
index 0000000000..bf1bfa8aaa
--- /dev/null
+++ b/gnu/packages/patches/curl-7.77-tls-priority-string.patch
@@ -0,0 +1,98 @@
+cURL 7.77.0 would use a bogus TLS priority string favoring older TLS
+protocol versions, which in turn would prevent access to bitbucket.org:
+
+  https://issues.guix.gnu.org/49035
+  https://github.com/curl/curl/pull/7278
+
+This patch fixes it.
+From <https://github.com/curl/curl/pull/7278/commits/b98f79f6ecdb708c67f9a0cec56ce48952a54556>.
+
+From b98f79f6ecdb708c67f9a0cec56ce48952a54556 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Fri, 18 Jun 2021 14:54:07 +0200
+Subject: [PATCH] gnutls: set the prefer ciphers in correct order
+
+Reported-by: civodul on github
+Assisted-by: Nikos Mavrogiannopoulos
+Fixes #7277
+---
+ lib/vtls/gtls.c | 30 +++++++++++++-----------------
+ 1 file changed, 13 insertions(+), 17 deletions(-)
+
+diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
+index d9bc5611e8f9..da2af64955c3 100644
+--- a/lib/vtls/gtls.c
++++ b/lib/vtls/gtls.c
+@@ -330,6 +330,9 @@ set_ssl_version_min_max(struct Curl_easy *data,
+       ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_2;
+     }
+   }
++  else if(ssl_version_max == CURL_SSLVERSION_MAX_DEFAULT) {
++    ssl_version_max = CURL_SSLVERSION_MAX_TLSv1_3;
++  }
+ 
+   switch(ssl_version | ssl_version_max) {
+   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_0:
+@@ -338,11 +341,11 @@ set_ssl_version_min_max(struct Curl_easy *data,
+     return CURLE_OK;
+   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_1:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.0:+VERS-TLS1.1";
++      "+VERS-TLS1.1:+VERS-TLS1.0";
+     return CURLE_OK;
+   case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_2:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2";
++      "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0";
+     return CURLE_OK;
+   case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_1:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+@@ -350,7 +353,7 @@ set_ssl_version_min_max(struct Curl_easy *data,
+     return CURLE_OK;
+   case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_2:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.1:+VERS-TLS1.2";
++      "+VERS-TLS1.2:+VERS-TLS1.1";
+     return CURLE_OK;
+   case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_2:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+@@ -360,25 +363,17 @@ set_ssl_version_min_max(struct Curl_easy *data,
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+       "+VERS-TLS1.3";
+     return CURLE_OK;
+-  case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_DEFAULT:
+-    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2"
+-      ":+VERS-TLS1.3";
++  case CURL_SSLVERSION_TLSv1_0 | CURL_SSLVERSION_MAX_TLSv1_3:
++    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0";
+     return CURLE_OK;
+-  case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_DEFAULT:
++  case CURL_SSLVERSION_TLSv1_1 | CURL_SSLVERSION_MAX_TLSv1_3:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.1:+VERS-TLS1.2"
+-      ":+VERS-TLS1.3";
++      "+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1";
+     return CURLE_OK;
+-  case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_DEFAULT:
++  case CURL_SSLVERSION_TLSv1_2 | CURL_SSLVERSION_MAX_TLSv1_3:
+     *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.2"
+-      ":+VERS-TLS1.3";
++      "+VERS-TLS1.3:+VERS-TLS1.2";
+     return CURLE_OK;
+-  case CURL_SSLVERSION_TLSv1_3 | CURL_SSLVERSION_MAX_DEFAULT:
+-    *prioritylist = GNUTLS_CIPHERS ":-VERS-SSL3.0:-VERS-TLS-ALL:"
+-      "+VERS-TLS1.2"
+-      ":+VERS-TLS1.3";
+     return CURLE_OK;
+   }
+ 
+@@ -608,6 +603,7 @@ gtls_connect_step1(struct Curl_easy *data,
+   }
+   else {
+ #endif
++    infof(data, "GnuTLS ciphers: %s\n", prioritylist);
+     rc = gnutls_priority_set_direct(session, prioritylist, &err);
+ #ifdef HAVE_GNUTLS_SRP
+   }
diff --git a/gnu/packages/patches/efivar-gcc-compat.patch b/gnu/packages/patches/efivar-gcc-compat.patch
new file mode 100644
index 0000000000..fd1a3dc90a
--- /dev/null
+++ b/gnu/packages/patches/efivar-gcc-compat.patch
@@ -0,0 +1,177 @@
+Fix build with -Werror=address-of-packed-member, which is default since
+GCC 9.
+
+This is a combination of three upstream commits:
+
+  https://github.com/rhboot/efivar/commit/b98ba8921010d03f46704a476c69861515deb1ca
+  https://github.com/rhboot/efivar/commit/c3c553db85ff10890209d0fe48fb4856ad68e4e0
+  https://github.com/rhboot/efivar/commit/0dad6d78a7fb5f6c5fb4a1d646040539db6cf865
+
+diff --git a/src/dp-media.c b/src/dp-media.c
+index 96a576f..be691c4 100644
+--- a/src/dp-media.c
++++ b/src/dp-media.c
+@@ -46,8 +46,7 @@ _format_media_dn(char *buf, size_t size, const_efidp dp)
+ 			break;
+ 		case EFIDP_HD_SIGNATURE_GUID:
+ 			format(buf, size, off, "HD", "GPT,");
+-			format_guid(buf, size, off, "HD",
+-				    (efi_guid_t *)dp->hd.signature);
++			format_guid(buf, size, off, "HD", dp->hd.signature);
+ 			format(buf, size, off, "HD",
+ 			       ",0x%"PRIx64",0x%"PRIx64")",
+ 			       dp->hd.start, dp->hd.size);
+diff --git a/src/dp-message.c b/src/dp-message.c
+index 3724e5f..6b8e907 100644
+--- a/src/dp-message.c
++++ b/src/dp-message.c
+@@ -364,7 +364,7 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
+ 			       dp->infiniband.port_gid[1],
+ 			       dp->infiniband.port_gid[0]);
+ 			format_guid(buf, size, off, "Infiniband",
+-				    (efi_guid_t *)&dp->infiniband.ioc_guid);
++				    &dp->infiniband.ioc_guid);
+ 			format(buf, size, off, "Infiniband",
+ 			       ",%"PRIu64",%"PRIu64")",
+ 			       dp->infiniband.target_port_id,
+@@ -620,11 +620,13 @@ _format_message_dn(char *buf, size_t size, const_efidp dp)
+ 			  ) / sizeof(efi_ip_addr_t);
+ 		format(buf, size, off, "Dns", "Dns(");
+ 		for (int i=0; i < end; i++) {
+-			const efi_ip_addr_t *addr = &dp->dns.addrs[i];
++			efi_ip_addr_t addr;
++
++			memcpy(&addr, &dp->dns.addrs[i], sizeof(addr));
+ 			if (i != 0)
+ 				format(buf, size, off, "Dns", ",");
+ 			format_ip_addr(buf, size, off, "Dns",
+-				       dp->dns.is_ipv6, addr);
++				       dp->dns.is_ipv6, &addr);
+ 		}
+ 		format(buf, size, off, "Dns", ")");
+ 		break;
+diff --git a/src/dp.h b/src/dp.h
+index aa4e390..1f921d5 100644
+--- a/src/dp.h
++++ b/src/dp.h
+@@ -70,8 +70,11 @@
+ #define format_guid(buf, size, off, dp_type, guid) ({			\
+ 		int _rc;						\
+ 		char *_guidstr = NULL;					\
++		efi_guid_t _guid;					\
++		const efi_guid_t * const _guid_p = &_guid;		\
+ 									\
+-		_rc = efi_guid_to_str(guid, &_guidstr);			\
++		memmove(&_guid, guid, sizeof(_guid));			\
++		_rc = efi_guid_to_str(_guid_p, &_guidstr);		\
+ 		if (_rc < 0) {						\
+ 			efi_error("could not build %s GUID DP string",	\
+ 				  dp_type);				\
+@@ -79,7 +82,7 @@
+ 			_guidstr = onstack(_guidstr,			\
+ 					   strlen(_guidstr)+1);		\
+ 			_rc = format(buf, size, off, dp_type, "%s",	\
+-				     _guidstr);	\
++				     _guidstr);				\
+ 		}							\
+ 		_rc;							\
+ 	})
+diff --git a/src/guid.c b/src/guid.c
+index 306c9ff..3156b3b 100644
+--- a/src/guid.c
++++ b/src/guid.c
+@@ -31,7 +31,7 @@
+ extern const efi_guid_t efi_guid_zero;
+ 
+ int NONNULL(1, 2) PUBLIC
+-efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b)
++efi_guid_cmp(const void * const a, const void * const b)
+ {
+ 	return memcmp(a, b, sizeof (efi_guid_t));
+ }
+diff --git a/src/include/efivar/efivar.h b/src/include/efivar/efivar.h
+index 316891c..ad6449d 100644
+--- a/src/include/efivar/efivar.h
++++ b/src/include/efivar/efivar.h
+@@ -128,7 +128,7 @@ extern int efi_symbol_to_guid(const char *symbol, efi_guid_t *guid)
+ 
+ extern int efi_guid_is_zero(const efi_guid_t *guid);
+ extern int efi_guid_is_empty(const efi_guid_t *guid);
+-extern int efi_guid_cmp(const efi_guid_t *a, const efi_guid_t *b);
++extern int efi_guid_cmp(const void * const a, const void * const b);
+ 
+ /* import / export functions */
+ typedef struct efi_variable efi_variable_t;
+diff --git a/src/ucs2.h b/src/ucs2.h
+index dbb5900..edd8367 100644
+--- a/src/ucs2.h
++++ b/src/ucs2.h
+@@ -23,16 +23,21 @@
+ 	(((val) & ((mask) << (shift))) >> (shift))
+ 
+ static inline size_t UNUSED
+-ucs2len(const uint16_t * const s, ssize_t limit)
++ucs2len(const void *vs, ssize_t limit)
+ {
+ 	ssize_t i;
+-	for (i = 0; i < (limit >= 0 ? limit : i+1) && s[i] != (uint16_t)0; i++)
++	const uint16_t *s = vs;
++	const uint8_t *s8 = vs;
++
++	for (i = 0;
++	     i < (limit >= 0 ? limit : i+1) && s8[0] != 0 && s8[1] != 0;
++	     i++, s8 += 2, s++)
+ 		;
+ 	return i;
+ }
+ 
+ static inline size_t UNUSED
+-ucs2size(const uint16_t * const s, ssize_t limit)
++ucs2size(const void *s, ssize_t limit)
+ {
+ 	size_t rc = ucs2len(s, limit);
+ 	rc *= sizeof (uint16_t);
+@@ -69,10 +74,11 @@ utf8size(uint8_t *s, ssize_t limit)
+ }
+ 
+ static inline unsigned char * UNUSED
+-ucs2_to_utf8(const uint16_t * const chars, ssize_t limit)
++ucs2_to_utf8(const void * const voidchars, ssize_t limit)
+ {
+ 	ssize_t i, j;
+ 	unsigned char *ret;
++	const uint16_t * const chars = voidchars;
+ 
+ 	if (limit < 0)
+ 		limit = ucs2len(chars, -1);
+@@ -124,10 +130,12 @@ ucs2_to_utf8(const uint16_t * const chars, ssize_t limit)
+ }
+ 
+ static inline ssize_t UNUSED NONNULL(4)
+-utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8)
++utf8_to_ucs2(void *ucs2void, ssize_t size, int terminate, uint8_t *utf8)
+ {
+ 	ssize_t req;
+ 	ssize_t i, j;
++	uint16_t *ucs2 = ucs2void;
++	uint16_t val16;
+ 
+ 	if (!ucs2 && size > 0) {
+ 		errno = EINVAL;
+@@ -162,10 +170,13 @@ utf8_to_ucs2(uint16_t *ucs2, ssize_t size, int terminate, uint8_t *utf8)
+ 			val = utf8[i] & 0x7f;
+ 			i += 1;
+ 		}
+-		ucs2[j] = val;
++		val16 = val;
++		ucs2[j] = val16;
++	}
++	if (terminate) {
++		val16 = 0;
++		ucs2[j++] = val16;
+ 	}
+-	if (terminate)
+-		ucs2[j++] = (uint16_t)0;
+ 	return j;
+ };
+ 
diff --git a/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch
new file mode 100644
index 0000000000..5bdb15a1c4
--- /dev/null
+++ b/gnu/packages/patches/gcc-8-sort-libtool-find-output.patch
@@ -0,0 +1,399 @@
+Sort find output in autotool files to ensure reproducibility.
+
+Without sorting find output, static archives (such as libstdc++.a) are
+unreproducible as wildcard find output has no ordering guarantees.
+
+Documented here: https://reproducible-builds.org/docs/archives/#gnu-libtool
+
+diff --git a/gcc/configure b/gcc/configure
+index 97ba7d7d69c..e37a96f0c0c 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -19720,20 +19720,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libcc1/configure b/libcc1/configure
+index f53a121611c..5740ca90cab 100755
+--- a/libcc1/configure
++++ b/libcc1/configure
+@@ -12221,20 +12221,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libffi/configure b/libffi/configure
+index 790a291011f..54b1ac18306 100755
+--- a/libffi/configure
++++ b/libffi/configure
+@@ -12661,20 +12661,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libgo/config/libtool.m4 b/libgo/config/libtool.m4
+index f7005947454..8a84417b828 100644
+--- a/libgo/config/libtool.m4
++++ b/libgo/config/libtool.m4
+@@ -6010,20 +6010,20 @@ if test "$_lt_caught_CXX_error" != yes; then
+ 	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libgo/config/ltmain.sh b/libgo/config/ltmain.sh
+index ce66b44906a..0f81c401407 100644
+--- a/libgo/config/ltmain.sh
++++ b/libgo/config/ltmain.sh
+@@ -2917,7 +2917,7 @@ func_extract_archives ()
+ 	    darwin_file=
+ 	    darwin_files=
+ 	    for darwin_file in $darwin_filelist; do
+-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
++	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ 	      $LIPO -create -output "$darwin_file" $darwin_files
+ 	    done # $darwin_filelist
+ 	    $RM -rf unfat-$$
+@@ -2932,7 +2932,7 @@ func_extract_archives ()
+         func_extract_an_archive "$my_xdir" "$my_xabs"
+ 	;;
+       esac
+-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
++      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+     done
+ 
+     func_extract_archives_result="$my_oldobjs"
+diff --git a/libhsail-rt/configure b/libhsail-rt/configure
+index a4fcc10c1f9..8e671229fcd 100755
+--- a/libhsail-rt/configure
++++ b/libhsail-rt/configure
+@@ -12244,20 +12244,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libitm/configure b/libitm/configure
+index dbf386db434..29d4f10611f 100644
+--- a/libitm/configure
++++ b/libitm/configure
+@@ -13067,20 +13067,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/liboffloadmic/configure b/liboffloadmic/configure
+index f873716991b..7aa9186b10e 100644
+--- a/liboffloadmic/configure
++++ b/liboffloadmic/configure
+@@ -12379,20 +12379,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/liboffloadmic/plugin/configure b/liboffloadmic/plugin/configure
+index c031eb3e7fa..67fc7368f21 100644
+--- a/liboffloadmic/plugin/configure
++++ b/liboffloadmic/plugin/configure
+@@ -12086,20 +12086,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libsanitizer/configure b/libsanitizer/configure
+index 4695bc7d4f7..cb7d25c07e6 100755
+--- a/libsanitizer/configure
++++ b/libsanitizer/configure
+@@ -13308,20 +13308,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index 61457e940ec..21ef1f61e41 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -13087,20 +13087,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libtool.m4 b/libtool.m4
+index 24d13f34409..940faaa161d 100644
+--- a/libtool.m4
++++ b/libtool.m4
+@@ -6005,20 +6005,20 @@ if test "$_lt_caught_CXX_error" != yes; then
+ 	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/libvtv/configure b/libvtv/configure
+index a197f750453..31ab3a0637b 100755
+--- a/libvtv/configure
++++ b/libvtv/configure
+@@ -13339,20 +13339,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+ 	      prelink_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
++		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ 	      old_archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
++		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ 		$RANLIB $oldlib'
+ 	      archive_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
+ 		rm -rf $tpldir~
+ 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
++		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ 	      ;;
+ 	    *) # Version 6 and above use weak symbols
+ 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+diff --git a/ltmain.sh b/ltmain.sh
+index 9503ec85d70..79f9ba89af5 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -2917,7 +2917,7 @@ func_extract_archives ()
+ 	    darwin_file=
+ 	    darwin_files=
+ 	    for darwin_file in $darwin_filelist; do
+-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
++	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ 	      $LIPO -create -output "$darwin_file" $darwin_files
+ 	    done # $darwin_filelist
+ 	    $RM -rf unfat-$$
+@@ -2932,7 +2932,7 @@ func_extract_archives ()
+         func_extract_an_archive "$my_xdir" "$my_xabs"
+ 	;;
+       esac
+-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
++      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+     done
+ 
+     func_extract_archives_result="$my_oldobjs"
diff --git a/gnu/packages/patches/grub-cross-system-i686.patch b/gnu/packages/patches/grub-cross-system-i686.patch
deleted file mode 100644
index 2715345d63..0000000000
--- a/gnu/packages/patches/grub-cross-system-i686.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-Not upstreamed.
-Fixes cross-build for the Hurd, from i686-linux,
-see <https://bugs.gnu.org/41982>.
-
-From 17b242e7b80108f1467037e15b605595e4823b2e Mon Sep 17 00:00:00 2001
-From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
-Date: Sun, 21 Jun 2020 15:10:40 +0200
-Subject: [PATCH v2] grub-core: Build fixes for i386
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset=UTF-8
-
-* grub-core/lib/i386/relocator64.S: Avoid x86_64 instructions on i386.
----
- grub-core/lib/i386/relocator64.S | 33 +++++++++++++++++++++++++++++++-
- 1 file changed, 32 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/lib/i386/relocator64.S b/grub-core/lib/i386/relocator64.S
-index 148f38adb..ea39908c1 100644
---- a/grub-core/lib/i386/relocator64.S
-+++ b/grub-core/lib/i386/relocator64.S
-@@ -63,7 +63,9 @@ VARIABLE(grub_relocator64_cr3)
- 	movq	%rax, %cr3
- #endif
- 
-+#ifdef __x86_64__
- 	.code64
-+#endif
- 
- 	/* mov imm64, %rax */
- 	.byte 	0x48
-@@ -71,7 +73,14 @@ VARIABLE(grub_relocator64_cr3)
- VARIABLE(grub_relocator64_rsp)
- 	.quad	0
- 
-+#ifndef __x86_64__
-+	/* movq	%rax, %rsp */
-+	.byte 	0x48
-+	.byte	0x89
-+	.byte	0xc4
-+#else
- 	movq	%rax, %rsp
-+#endif
- 
- #ifdef GRUB_MACHINE_EFI
- 	jmp	LOCAL(skip_efi_stack_align)
-@@ -85,7 +94,14 @@ VARIABLE(grub_relocator64_rsp)
- 	 */
- VARIABLE(grub_relocator64_efi_start)
- 	/* Align the stack as UEFI spec requires. */
-+#ifndef __x86_64__
-+	.byte 0x48
-+        .byte 0x83
-+        .byte 0xe4
-+        .byte 0xf0
-+#else
- 	andq	$~15, %rsp
-+#endif
- 
- LOCAL(skip_efi_stack_align):
- #endif
-@@ -95,8 +111,15 @@ LOCAL(skip_efi_stack_align):
- VARIABLE(grub_relocator64_rsi)
- 	.quad	0
- 
-+#ifndef	__x86_64__
-+	/* movq	%rax, %rsi */
-+	.byte 	0x48
-+	.byte	0x89
-+	.byte 	0xc6
-+#else
- 	movq	%rax, %rsi
--	
-+#endif
-+
- 	/* mov imm64, %rax */
- 	.byte 	0x48
- 	.byte	0xb8
-@@ -128,6 +151,14 @@ VARIABLE(grub_relocator64_rdx)
- #ifdef __APPLE__
- 	.byte 0xff, 0x25
- 	.quad 0
-+#elif !defined (__x86_64__)
-+	/* jmp *LOCAL(jump_addr) (%rip) */
-+	.byte 0xff
-+        .byte 0x25
-+	.byte 0
-+	.byte 0
-+	.byte 0
-+	.byte 0
- #else
- 	jmp *LOCAL(jump_addr) (%rip)
- #endif
--- 
-Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
-Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
-
diff --git a/gnu/packages/patches/grub-setup-root.patch b/gnu/packages/patches/grub-setup-root.patch
index 1abe9c383a..e64a7dd6be 100644
--- a/gnu/packages/patches/grub-setup-root.patch
+++ b/gnu/packages/patches/grub-setup-root.patch
@@ -1,9 +1,53 @@
 This patch is taken from OpenWrt, see:
 
-https://github.com/openwrt/openwrt/blob/master/package/boot/grub2/patches/100-grub_setup_root.patch.
+https://github.com/openwrt/openwrt/blob/master/package/boot/grub2/patches/100-grub_setup_root.patch
+
+nckx changed `char *root' to lazily pacify -Werror=discarded-qualifiers.
 
 It allows to use grub-bios-setup on a raw disk-images, without root permissions.
 
+--- a/include/grub/util/install.h
++++ b/include/grub/util/install.h
+@@ -198,13 +198,13 @@ grub_install_get_image_target (const char *arg);
+ void
+ grub_util_bios_setup (const char *dir,
+ 		      const char *boot_file, const char *core_file,
+-		      const char *dest, int force,
++		      char *root, const char *dest, int force,
+ 		      int fs_probe, int allow_floppy,
+ 		      int add_rs_codes, int warn_short_mbr_gap);
+ void
+ grub_util_sparc_setup (const char *dir,
+ 		       const char *boot_file, const char *core_file,
+-		       const char *dest, int force,
++		       char *root, const char *dest, int force,
+ 		       int fs_probe, int allow_floppy,
+ 		       int add_rs_codes, int warn_short_mbr_gap);
+ 
+diff --git a/util/grub-install.c b/util/grub-install.c
+index 0fbe7f78c..7f06aa1e3 100644
+--- a/util/grub-install.c
++++ b/util/grub-install.c
+@@ -1721,7 +1721,7 @@ main (int argc, char *argv[])
+ 	if (install_bootsector)
+ 	  {
+ 	    grub_util_bios_setup (platdir, "boot.img", "core.img",
+-				  install_drive, force,
++				  NULL, install_drive, force,
+ 				  fs_probe, allow_floppy, add_rs_codes,
+ 				  !grub_install_is_short_mbrgap_supported ());
+ 
+@@ -1752,7 +1752,7 @@ main (int argc, char *argv[])
+ 	if (install_bootsector)
+ 	  {
+ 	    grub_util_sparc_setup (platdir, "boot.img", "core.img",
+-				   install_drive, force,
++				   NULL, install_drive, force,
+ 				   fs_probe, allow_floppy,
+ 				   0 /* unused */, 0 /* unused */ );
+ 
+diff --git a/util/grub-setup.c b/util/grub-setup.c
+index 1783224dd..48cde4950 100644
 --- a/util/grub-setup.c
 +++ b/util/grub-setup.c
 @@ -87,6 +87,8 @@ static struct argp_option options[] = {
@@ -23,7 +67,7 @@ It allows to use grub-bios-setup on a raw disk-images, without root permissions.
    int  force;
    int  fs_probe;
    int allow_floppy;
-@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct
+@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct argp_state *state)
          arguments->dev_map = xstrdup (arg);
          break;
  
@@ -44,18 +88,21 @@ It allows to use grub-bios-setup on a raw disk-images, without root permissions.
 -		   dest_dev, arguments.force,
 +		   arguments.root_dev, dest_dev, arguments.force,
  		   arguments.fs_probe, arguments.allow_floppy,
- 		   arguments.add_rs_codes);
+ 		   arguments.add_rs_codes, 0);
  
+diff --git a/util/setup.c b/util/setup.c
+index da5f2c07f..193745a9c 100644
 --- a/util/setup.c
 +++ b/util/setup.c
-@@ -252,13 +252,12 @@ identify_partmap (grub_disk_t disk __att
+@@ -252,14 +252,13 @@ identify_partmap (grub_disk_t disk __attribute__ ((unused)),
  void
  SETUP (const char *dir,
         const char *boot_file, const char *core_file,
 -       const char *dest, int force,
 +       char *root, const char *dest, int force,
         int fs_probe, int allow_floppy,
-        int add_rs_codes __attribute__ ((unused))) /* unused on sparc64 */
+        int add_rs_codes __attribute__ ((unused)), /* unused on sparc64 */
+        int warn_small)
  {
    char *core_path;
    char *boot_img, *core_img, *boot_path;
@@ -63,7 +110,7 @@ It allows to use grub-bios-setup on a raw disk-images, without root permissions.
    size_t boot_size, core_size;
    grub_uint16_t core_sectors;
    grub_device_t root_dev = 0, dest_dev, core_dev;
-@@ -307,7 +306,10 @@ SETUP (const char *dir,
+@@ -311,7 +310,10 @@ SETUP (const char *dir,
  
    core_dev = dest_dev;
  
@@ -75,7 +122,7 @@ It allows to use grub-bios-setup on a raw disk-images, without root permissions.
      char **root_devices = grub_guess_root_devices (dir);
      char **cur;
      int found = 0;
-@@ -320,6 +322,8 @@ SETUP (const char *dir,
+@@ -324,6 +326,8 @@ SETUP (const char *dir,
  	char *drive;
  	grub_device_t try_dev;
  
@@ -84,41 +131,3 @@ It allows to use grub-bios-setup on a raw disk-images, without root permissions.
  	drive = grub_util_get_grub_dev (*cur);
  	if (!drive)
  	  continue;
---- a/include/grub/util/install.h
-+++ b/include/grub/util/install.h
-@@ -191,13 +191,13 @@ grub_install_get_image_target (const cha
- void
- grub_util_bios_setup (const char *dir,
- 		      const char *boot_file, const char *core_file,
--		      const char *dest, int force,
-+		      char *root, const char *dest, int force,
- 		      int fs_probe, int allow_floppy,
- 		      int add_rs_codes);
- void
- grub_util_sparc_setup (const char *dir,
- 		       const char *boot_file, const char *core_file,
--		       const char *dest, int force,
-+		       char *root, const char *dest, int force,
- 		       int fs_probe, int allow_floppy,
- 		       int add_rs_codes);
- 
---- a/util/grub-install.c
-+++ b/util/grub-install.c
-@@ -1712,7 +1712,7 @@ main (int argc, char *argv[])
- 	/*  Now perform the installation.  */
- 	if (install_bootsector)
- 	  grub_util_bios_setup (platdir, "boot.img", "core.img",
--				install_drive, force,
-+				NULL, install_drive, force,
- 				fs_probe, allow_floppy, add_rs_codes);
- 	break;
-       }
-@@ -1738,7 +1738,7 @@ main (int argc, char *argv[])
- 	/*  Now perform the installation.  */
- 	if (install_bootsector)
- 	  grub_util_sparc_setup (platdir, "boot.img", "core.img",
--				 install_drive, force,
-+				 NULL, install_drive, force,
- 				 fs_probe, allow_floppy,
- 				 0 /* unused */ );
- 	break;
diff --git a/gnu/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch b/gnu/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch
deleted file mode 100644
index 2bea74ea95..0000000000
--- a/gnu/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-This patch is needed to build Grub on the Hurd.
-
-Taken from upstream: https://git.savannah.gnu.org/cgit/grub.git/commit//?id=dabdfa1c6a80639197d05f683a445fa8615517fe
-
-From 7606547586b2d6ca1b384e15e0358d3a3ddc48a6 Mon Sep 17 00:00:00 2001
-From: David Michael <fedora.dm0@gmail.com>
-Date: Fri, 5 Jul 2019 07:45:59 -0400
-Subject: verifiers: Blocklist fallout cleanup
-
-Blocklist fallout cleanup after commit 5c6f9bc15 (generic/blocklist: Fix
-implicit declaration of function grub_file_filter_disable_compression()).
-
-Signed-off-by: David Michael <fedora.dm0@gmail.com>
-Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
-
----
- grub-core/osdep/generic/blocklist.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/grub-core/osdep/generic/blocklist.c b/grub-core/osdep/generic/blocklist.c
-index ea2a511b6..2d9040302 100644
---- a/grub-core/osdep/generic/blocklist.c
-+++ b/grub-core/osdep/generic/blocklist.c
-@@ -59,7 +59,7 @@ grub_install_get_blocklist (grub_device_t root_dev,
- 
-       grub_disk_cache_invalidate_all ();
- 
--      file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS);
-+      file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS);
-       if (file)
- 	{
- 	  if (grub_file_size (file) != core_size)
-@@ -116,7 +116,7 @@ grub_install_get_blocklist (grub_device_t root_dev,
- 
-   grub_file_t file;
-   /* Now read the core image to determine where the sectors are.  */
--  file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS);
-+  file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS);
-   if (! file)
-     grub_util_error ("%s", grub_errmsg);
- 
diff --git a/gnu/packages/patches/hexchat-add-libera-chat.patch b/gnu/packages/patches/hexchat-add-libera-chat.patch
new file mode 100644
index 0000000000..2bbb3137ba
--- /dev/null
+++ b/gnu/packages/patches/hexchat-add-libera-chat.patch
@@ -0,0 +1,76 @@
+Add libera.chat to the list of available networks and make it the
+default.
+
+Patches copied from upstream source repository:
+
+https://github.com/hexchat/hexchat/commit/a25f2381689d2c2279a0e43b33f6c0ec8305a096
+https://github.com/hexchat/hexchat/commit/d3545f37cd5f551ed8bc0ab7b20e5c8140adc0a6
+
+From a25f2381689d2c2279a0e43b33f6c0ec8305a096 Mon Sep 17 00:00:00 2001
+From: Panagiotis Vasilopoulos <hello@alwayslivid.com>
+Date: Wed, 19 May 2021 16:25:16 +0300
+Subject: [PATCH] Add Libera Chat to network list
+
+---
+ src/common/servlist.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/common/servlist.c b/src/common/servlist.c
+index e44a3f2df..33bd80f2d 100644
+--- a/src/common/servlist.c
++++ b/src/common/servlist.c
+@@ -239,6 +239,9 @@ static const struct defaultserver def[] =
+ 	/* Self signed */
+ 	{0,			"irc.librairc.net"},
+ 
++	{"Libera Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
++	{0,			"irc.libera.chat"},
++
+ #ifdef USE_OPENSSL
+ 	{"LinkNet",	0},
+ 	{0,			"irc.link-net.org/+7000"},
+From d3545f37cd5f551ed8bc0ab7b20e5c8140adc0a6 Mon Sep 17 00:00:00 2001
+From: Patrick Griffis <pgriffis@igalia.com>
+Date: Sun, 23 May 2021 21:15:43 -0500
+Subject: [PATCH] Change default network to Libera.Chat
+
+---
+ src/common/servlist.c | 4 ++--
+ src/fe-gtk/joind.c    | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/common/servlist.c b/src/common/servlist.c
+index de75c8b9a..93557f975 100644
+--- a/src/common/servlist.c
++++ b/src/common/servlist.c
+@@ -240,7 +240,7 @@ static const struct defaultserver def[] =
+ 	/* Self signed */
+ 	{0,			"irc.librairc.net"},
+ 
+-	{"Libera Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
++	{"Libera.Chat", 0, 0, 0, LOGIN_SASL, 0, TRUE},
+ 	{0,			"irc.libera.chat"},
+ 
+ #ifdef USE_OPENSSL
+@@ -942,7 +942,7 @@ servlist_load_defaults (void)
+ {
+ 	int i = 0, j = 0;
+ 	ircnet *net = NULL;
+-	guint def_hash = g_str_hash ("freenode");
++	guint def_hash = g_str_hash ("Libera.Chat");
+ 
+ 	while (1)
+ 	{
+diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c
+index f1d3da504..ce3cbcaec 100644
+--- a/src/fe-gtk/joind.c
++++ b/src/fe-gtk/joind.c
+@@ -247,7 +247,7 @@ joind_show_dialog (server *serv)
+ 							G_CALLBACK (joind_ok_cb), serv);
+ 							
+ 	if (serv->network)
+-		if (g_ascii_strcasecmp(((ircnet*)serv->network)->name, "freenode") == 0)
++		if (g_ascii_strcasecmp(((ircnet*)serv->network)->name, "Libera.Chat") == 0)
+ 		{
+ 			gtk_entry_set_text (GTK_ENTRY (entry1), "#hexchat");
+ 		}
diff --git a/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch b/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch
new file mode 100644
index 0000000000..bd7b01f856
--- /dev/null
+++ b/gnu/packages/patches/inkscape-1.1-fix-build-witch-gcc7.5.patch
@@ -0,0 +1,24 @@
+From 0ae15d7e89b984f72780ff7afa8e57dd6ae7765a Mon Sep 17 00:00:00 2001
+From: "Boris A. Dekshteyn" <boris.dekshteyn@gmail.com>
+Date: Mon, 14 Jun 2021 23:52:16 +1200
+Subject: [PATCH] Fix build witch GCC@7.5.
+
+---
+ src/object/sp-use-reference.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/object/sp-use-reference.h b/src/object/sp-use-reference.h
+index 5958632059..f07c2a3721 100644
+--- a/src/object/sp-use-reference.h
++++ b/src/object/sp-use-reference.h
+@@ -14,6 +14,7 @@
+ 
+ #include "sp-item.h"
+ #include "uri-references.h"
++#include "display/curve.h"
+ 
+ #include <memory>
+ 
+-- 
+2.32.0
+
diff --git a/gnu/packages/patches/isc-dhcp-gcc-compat.patch b/gnu/packages/patches/isc-dhcp-gcc-compat.patch
new file mode 100644
index 0000000000..82cb572d17
--- /dev/null
+++ b/gnu/packages/patches/isc-dhcp-gcc-compat.patch
@@ -0,0 +1,72 @@
+Add minor fixes for compiling with GCC 10.
+
+Taken from upstream:
+https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a
+
+diff --git a/client/dhclient.c b/client/dhclient.c
+--- a/client/dhclient.c
++++ b/client/dhclient.c
+@@ -83,8 +83,9 @@ static const char message [] = "Internet Systems Consortium DHCP Client";
+ static const char url [] = "For info, please visit https://www.isc.org/software/dhcp/";
+ #endif /* UNIT_TEST */
+ 
+-u_int16_t local_port = 0;
+-u_int16_t remote_port = 0;
++extern u_int16_t local_port;
++extern u_int16_t remote_port;
++
+ #if defined(DHCPv6) && defined(DHCP4o6)
+ int dhcp4o6_state = -1; /* -1 = stopped, 0 = polling, 1 = started */
+ #endif
+diff --git a/common/discover.c b/common/discover.c
+--- a/common/discover.c
++++ b/common/discover.c
+@@ -45,8 +45,8 @@ struct interface_info *fallback_interface = 0;
+ 
+ int interfaces_invalidated;
+ int quiet_interface_discovery;
+-u_int16_t local_port;
+-u_int16_t remote_port;
++u_int16_t local_port = 0;
++u_int16_t remote_port = 0;
+ u_int16_t relay_port = 0;
+ int dhcpv4_over_dhcpv6 = 0;
+ int (*dhcp_interface_setup_hook) (struct interface_info *, struct iaddr *);
+diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c
+--- a/relay/dhcrelay.c
++++ b/relay/dhcrelay.c
+@@ -95,8 +95,8 @@ enum { forward_and_append,	/* Forward and append our own relay option. */
+        forward_untouched,	/* Forward without changes. */
+        discard } agent_relay_mode = forward_and_replace;
+ 
+-u_int16_t local_port;
+-u_int16_t remote_port;
++extern u_int16_t local_port;
++extern u_int16_t remote_port;
+ 
+ /* Relay agent server list. */
+ struct server_list {
+diff --git a/server/mdb.c b/server/mdb.c
+--- a/server/mdb.c
++++ b/server/mdb.c
+@@ -67,7 +67,7 @@ static host_id_info_t *host_id_info = NULL;
+ 
+ int numclasseswritten;
+ 
+-omapi_object_type_t *dhcp_type_host;
++extern omapi_object_type_t *dhcp_type_host;
+ 
+ isc_result_t enter_class(cd, dynamicp, commit)
+ 	struct class *cd;
+diff --git a/server/mdb6.c b/server/mdb6.c
+--- a/server/mdb6.c
++++ b/server/mdb6.c
+@@ -1945,7 +1945,7 @@ create_prefix6(struct ipv6_pool *pool, struct iasubopt **pref,
+ 		}
+ 		new_ds.data = new_ds.buffer->data;
+ 		memcpy(new_ds.buffer->data, ds.data, ds.len);
+-		memcpy(new_ds.buffer->data + ds.len, &tmp, sizeof(tmp));
++		memcpy(&new_ds.buffer->data[0] + ds.len, &tmp, sizeof(tmp));
+ 		data_string_forget(&ds, MDL);
+ 		data_string_copy(&ds, &new_ds, MDL);
+ 		data_string_forget(&new_ds, MDL);
diff --git a/gnu/packages/patches/jfsutils-gcc-compat.patch b/gnu/packages/patches/jfsutils-gcc-compat.patch
new file mode 100644
index 0000000000..45b6ec25a1
--- /dev/null
+++ b/gnu/packages/patches/jfsutils-gcc-compat.patch
@@ -0,0 +1,72 @@
+Various fixes for building with GCC 10.
+
+Taken from Debian:
+https://sources.debian.org/patches/jfsutils/1.1.15-5/gcc10_fix-1.patch/
+
+--- jfsutils-1.1.15.old/fscklog/display.c	2005-11-22 21:43:54.000000000 +0100
++++ jfsutils-1.1.15.new/fscklog/display.c	2020-05-21 18:15:13.410617620 +0200
+@@ -54,7 +54,7 @@
+  * output: fsck extracted service log I/O buffer
+  *
+  */
+-char xchklog_buffer[XCHKLOG_BUFSIZE];
++static char xchklog_buffer[XCHKLOG_BUFSIZE];
+ 
+ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+  *
+diff -ur --exclude '*.o' --exclude '*.a' jfsutils-1.1.15.old/libfs/logredo.c jfsutils-1.1.15.new/libfs/logredo.c
+--- jfsutils-1.1.15.old/libfs/logredo.c	2005-11-22 21:43:55.000000000 +0100
++++ jfsutils-1.1.15.new/libfs/logredo.c	2020-05-21 18:19:44.927703271 +0200
+@@ -87,9 +87,9 @@
+  *    S T U F F    F O R    T H E    L O G
+  *
+  */
+-struct logsuper logsup;		/* log super block */
+-int32_t numdoblk;		/* number of do blocks used     */
+-int32_t numnodofile;		/* number of nodo file blocks used  */
++static struct logsuper logsup;		/* log super block */
++static int32_t numdoblk;		/* number of do blocks used     */
++static int32_t numnodofile;		/* number of nodo file blocks used  */
+ int32_t numExtDtPg = 0;		/* number of extended dtpage blocks used  */
+ 
+ /*
+@@ -129,7 +129,7 @@
+  */
+ 
+ /* buffer header table */
+-struct bufhdr {
++static struct bufhdr {
+ 	int16_t next;		/* 2: next on free/lru list */
+ 	int16_t prev;		/* 2: previous on free/lru list */
+ 	int16_t hnext;		/* 2: next on hash chain */
+@@ -142,7 +142,7 @@
+ } bufhdr[NBUFPOOL];		/* (24) */
+ 
+ /* buffer table */
+-struct bufpool {
++static struct bufpool {
+ 	char bytes[PSIZE];
+ } buffer[NBUFPOOL - 1];
+ 
+@@ -151,15 +151,16 @@
+  *
+  * log has its own 4 page buffer pool.
+  */
+-uint8_t afterdata[LOGPSIZE * 2];	/* buffer to read in redopage data */
++static uint8_t afterdata[LOGPSIZE * 2];	/* buffer to read in redopage data */
+ 
+ /*
+  * Miscellaneous
+  */
+-caddr_t prog;			/* Program name */
+-int32_t mntcnt, bufsize;
+-char *mntinfo;
+-int32_t retcode;		/* return code from logredo    */
++static caddr_t prog;			/* Program name */
++extern int32_t mntcnt;
++static int32_t bufsize;
++static char *mntinfo;
++static int32_t retcode;		/* return code from logredo    */
+ int end_of_transaction = 0;
+ 
+ /*
diff --git a/gnu/packages/patches/libcacard-unknown-variable.patch b/gnu/packages/patches/libcacard-unknown-variable.patch
new file mode 100644
index 0000000000..830a3ee8c0
--- /dev/null
+++ b/gnu/packages/patches/libcacard-unknown-variable.patch
@@ -0,0 +1,50 @@
+Fix Meson error when test dependencies are missing.
+
+Based on this upstream commit, with some adjustments to apply on 2.8.0:
+https://gitlab.freedesktop.org/spice/libcacard/-/commit/cf6121deb47e437aa566cfeb29a03da93c432394
+
+diff --git a/tests/meson.build b/tests/meson.build
+index 87945a2..baefaf5 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -9,15 +9,6 @@ modutil_dep = find_program('modutil', required: false)
+ openssl_dep = find_program('openssl', required: false)
+ softhsm_util_dep = find_program('softhsm2-util', required: false)
+ 
+-if pkcs11_tool_dep.found() and p11tool_dep.found() and modutil_dep.found() and openssl_dep.found() and softhsm_util_dep.found()
+-  softhsm = custom_target(
+-    'softhsm2.conf',
+-    command: find_program('setup-softhsm2.sh'),
+-    capture: true,
+-    output: 'setup-softhsm2.log',
+-  )
+-endif
+-
+ libcacard_test = executable(
+   'libcacard',
+   ['libcacard.c', 'common.c'],
+@@ -64,9 +55,18 @@ hwtests_test = executable(
+   dependencies: [libcacard_dep],
+ )
+ 
+-test(
+-  'hwtests',
+-  hwtests_test,
+-  depends: [softhsm],
+-  env: env,
+-)
++if pkcs11_tool_dep.found() and p11tool_dep.found() and modutil_dep.found() and openssl_dep.found() and softhsm_util_dep.found()
++  softhsm = custom_target(
++    'softhsm2.conf',
++    command: find_program('setup-softhsm2.sh'),
++    capture: true,
++    output: 'setup-softhsm2.log',
++  )
++
++  test(
++    'hwtests',
++    hwtests_test,
++    depends: [softhsm],
++    env: env,
++  )
++endif
diff --git a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch
new file mode 100644
index 0000000000..4343c87795
--- /dev/null
+++ b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch
@@ -0,0 +1,276 @@
+Copied from upstream nettle git repository.
+Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
+
+From 485b5e2820a057e873b1ba812fdb39cae4adf98c Mon Sep 17 00:00:00 2001
+From: Niels Möller <nisse@lysator.liu.se>
+Date: Mon, 17 May 2021 20:55:26 +0200
+Subject: [PATCH 1/2] Change _rsa_sec_compute_root_tr to take a fix input size.
+
+Improves consistency with _rsa_sec_compute_root, and fixes zero-input bug.
+---
+ ChangeLog                    | 15 +++++++++
+ rsa-decrypt-tr.c             |  7 ++---
+ rsa-internal.h               |  4 +--
+ rsa-sec-decrypt.c            |  9 ++++--
+ rsa-sign-tr.c                | 61 +++++++++++++++++-------------------
+ testsuite/rsa-encrypt-test.c | 14 ++++++++-
+ 6 files changed, 68 insertions(+), 42 deletions(-)
+
+diff --git a/rsa-decrypt-tr.c b/rsa-decrypt-tr.c
+index 0224c0b7..927a8915 100644
+--- a/rsa-decrypt-tr.c
++++ b/rsa-decrypt-tr.c
+@@ -52,14 +52,13 @@ rsa_decrypt_tr(const struct rsa_public_key *pub,
+   mp_size_t key_limb_size;
+   int res;
+ 
+-  key_limb_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
++  key_limb_size = mpz_size(pub->n);
+ 
+   TMP_GMP_ALLOC (m, key_limb_size);
+   TMP_GMP_ALLOC (em, key->size);
++  mpz_limbs_copy(m, gibberish, key_limb_size);
+ 
+-  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m,
+-				  mpz_limbs_read(gibberish),
+-				  mpz_size(gibberish));
++  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m, m);
+ 
+   mpn_get_base256 (em, key->size, m, key_limb_size);
+ 
+diff --git a/rsa-internal.h b/rsa-internal.h
+index b828e451..f66a7df0 100644
+--- a/rsa-internal.h
++++ b/rsa-internal.h
+@@ -78,11 +78,11 @@ _rsa_sec_compute_root(const struct rsa_private_key *key,
+                       mp_limb_t *scratch);
+ 
+ /* Safe side-channel silent variant, using RSA blinding, and checking the
+- * result after CRT. */
++ * result after CRT. In-place calls, with x == m, is allowed. */
+ int
+ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
+ 			 const struct rsa_private_key *key,
+ 			 void *random_ctx, nettle_random_func *random,
+-			 mp_limb_t *x, const mp_limb_t *m, size_t mn);
++			 mp_limb_t *x, const mp_limb_t *m);
+ 
+ #endif /* NETTLE_RSA_INTERNAL_H_INCLUDED */
+diff --git a/rsa-sec-decrypt.c b/rsa-sec-decrypt.c
+index 6866e7c8..fc4757a0 100644
+--- a/rsa-sec-decrypt.c
++++ b/rsa-sec-decrypt.c
+@@ -58,9 +58,12 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
+   TMP_GMP_ALLOC (m, mpz_size(pub->n));
+   TMP_GMP_ALLOC (em, key->size);
+ 
+-  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m,
+-				  mpz_limbs_read(gibberish),
+-				  mpz_size(gibberish));
++  /* We need a copy because m can be shorter than key_size,
++   * but _rsa_sec_compute_root_tr expect all inputs to be
++   * normalized to a key_size long buffer length */
++  mpz_limbs_copy(m, gibberish, mpz_size(pub->n));
++
++  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, m, m);
+ 
+   mpn_get_base256 (em, key->size, m, mpz_size(pub->n));
+ 
+diff --git a/rsa-sign-tr.c b/rsa-sign-tr.c
+index f824c4ca..9e137c7a 100644
+--- a/rsa-sign-tr.c
++++ b/rsa-sign-tr.c
+@@ -131,35 +131,34 @@ int
+ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
+ 			 const struct rsa_private_key *key,
+ 			 void *random_ctx, nettle_random_func *random,
+-			 mp_limb_t *x, const mp_limb_t *m, size_t mn)
++			 mp_limb_t *x, const mp_limb_t *m)
+ {
++  mp_size_t nn;
+   mpz_t mz;
+   mpz_t xz;
+   int res;
+ 
+-  mpz_init(mz);
+   mpz_init(xz);
+ 
+-  mpn_copyi(mpz_limbs_write(mz, mn), m, mn);
+-  mpz_limbs_finish(mz, mn);
++  nn = mpz_size (pub->n);
+ 
+-  res = rsa_compute_root_tr(pub, key, random_ctx, random, xz, mz);
++  res = rsa_compute_root_tr(pub, key, random_ctx, random, xz,
++			    mpz_roinit_n(mz, m, nn));
+ 
+   if (res)
+-    mpz_limbs_copy(x, xz, mpz_size(pub->n));
++    mpz_limbs_copy(x, xz, nn);
+ 
+-  mpz_clear(mz);
+   mpz_clear(xz);
+   return res;
+ }
+ #else
+ /* Blinds m, by computing c = m r^e (mod n), for a random r. Also
+-   returns the inverse (ri), for use by rsa_unblind. */
++   returns the inverse (ri), for use by rsa_unblind. Must have c != m,
++   no in-place operation.*/
+ static void
+ rsa_sec_blind (const struct rsa_public_key *pub,
+                void *random_ctx, nettle_random_func *random,
+-               mp_limb_t *c, mp_limb_t *ri, const mp_limb_t *m,
+-               mp_size_t mn)
++               mp_limb_t *c, mp_limb_t *ri, const mp_limb_t *m)
+ {
+   const mp_limb_t *ep = mpz_limbs_read (pub->e);
+   const mp_limb_t *np = mpz_limbs_read (pub->n);
+@@ -177,15 +176,15 @@ rsa_sec_blind (const struct rsa_public_key *pub,
+ 
+   /* c = m*(r^e) mod n */
+   itch = mpn_sec_powm_itch(nn, ebn, nn);
+-  i2 = mpn_sec_mul_itch(nn, mn);
++  i2 = mpn_sec_mul_itch(nn, nn);
+   itch = MAX(itch, i2);
+-  i2 = mpn_sec_div_r_itch(nn + mn, nn);
++  i2 = mpn_sec_div_r_itch(2*nn, nn);
+   itch = MAX(itch, i2);
+   i2 = mpn_sec_invert_itch(nn);
+   itch = MAX(itch, i2);
+ 
+-  TMP_GMP_ALLOC (tp, nn + mn + itch);
+-  scratch = tp + nn + mn;
++  TMP_GMP_ALLOC (tp, 2*nn  + itch);
++  scratch = tp + 2*nn;
+ 
+   /* ri = r^(-1) */
+   do
+@@ -198,9 +197,8 @@ rsa_sec_blind (const struct rsa_public_key *pub,
+   while (!mpn_sec_invert (ri, tp, np, nn, 2 * nn * GMP_NUMB_BITS, scratch));
+ 
+   mpn_sec_powm (c, rp, nn, ep, ebn, np, nn, scratch);
+-  /* normally mn == nn, but m can be smaller in some cases */
+-  mpn_sec_mul (tp, c, nn, m, mn, scratch);
+-  mpn_sec_div_r (tp, nn + mn, np, nn, scratch);
++  mpn_sec_mul (tp, c, nn, m, nn, scratch);
++  mpn_sec_div_r (tp, 2*nn, np, nn, scratch);
+   mpn_copyi(c, tp, nn);
+ 
+   TMP_GMP_FREE (r);
+@@ -208,7 +206,7 @@ rsa_sec_blind (const struct rsa_public_key *pub,
+   TMP_GMP_FREE (tp);
+ }
+ 
+-/* m = c ri mod n */
++/* m = c ri mod n. Allows x == c. */
+ static void
+ rsa_sec_unblind (const struct rsa_public_key *pub,
+                  mp_limb_t *x, mp_limb_t *ri, const mp_limb_t *c)
+@@ -299,7 +297,7 @@ int
+ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
+ 			 const struct rsa_private_key *key,
+ 			 void *random_ctx, nettle_random_func *random,
+-			 mp_limb_t *x, const mp_limb_t *m, size_t mn)
++			 mp_limb_t *x, const mp_limb_t *m)
+ {
+   TMP_GMP_DECL (c, mp_limb_t);
+   TMP_GMP_DECL (ri, mp_limb_t);
+@@ -307,7 +305,7 @@ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
+   size_t key_limb_size;
+   int ret;
+ 
+-  key_limb_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
++  key_limb_size = mpz_size(pub->n);
+ 
+   /* mpz_powm_sec handles only odd moduli. If p, q or n is even, the
+      key is invalid and rejected by rsa_private_key_prepare. However,
+@@ -321,19 +319,18 @@ _rsa_sec_compute_root_tr(const struct rsa_public_key *pub,
+     }
+ 
+   assert(mpz_size(pub->n) == key_limb_size);
+-  assert(mn <= key_limb_size);
+ 
+   TMP_GMP_ALLOC (c, key_limb_size);
+   TMP_GMP_ALLOC (ri, key_limb_size);
+   TMP_GMP_ALLOC (scratch, _rsa_sec_compute_root_itch(key));
+ 
+-  rsa_sec_blind (pub, random_ctx, random, x, ri, m, mn);
++  rsa_sec_blind (pub, random_ctx, random, c, ri, m);
+ 
+-  _rsa_sec_compute_root(key, c, x, scratch);
++  _rsa_sec_compute_root(key, x, c, scratch);
+ 
+-  ret = rsa_sec_check_root(pub, c, x);
++  ret = rsa_sec_check_root(pub, x, c);
+ 
+-  rsa_sec_unblind(pub, x, ri, c);
++  rsa_sec_unblind(pub, x, ri, x);
+ 
+   cnd_mpn_zero(1 - ret, x, key_limb_size);
+ 
+@@ -357,17 +354,17 @@ rsa_compute_root_tr(const struct rsa_public_key *pub,
+ 		    mpz_t x, const mpz_t m)
+ {
+   TMP_GMP_DECL (l, mp_limb_t);
++  mp_size_t nn = mpz_size(pub->n);
+   int res;
+ 
+-  mp_size_t l_size = NETTLE_OCTET_SIZE_TO_LIMB_SIZE(key->size);
+-  TMP_GMP_ALLOC (l, l_size);
++  TMP_GMP_ALLOC (l, nn);
++  mpz_limbs_copy(l, m, nn);
+ 
+-  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, l,
+-				  mpz_limbs_read(m), mpz_size(m));
++  res = _rsa_sec_compute_root_tr (pub, key, random_ctx, random, l, l);
+   if (res) {
+-    mp_limb_t *xp = mpz_limbs_write (x, l_size);
+-    mpn_copyi (xp, l, l_size);
+-    mpz_limbs_finish (x, l_size);
++    mp_limb_t *xp = mpz_limbs_write (x, nn);
++    mpn_copyi (xp, l, nn);
++    mpz_limbs_finish (x, nn);
+   }
+ 
+   TMP_GMP_FREE (l);
+diff --git a/testsuite/rsa-encrypt-test.c b/testsuite/rsa-encrypt-test.c
+index 87525f78..d3bc374b 100644
+--- a/testsuite/rsa-encrypt-test.c
++++ b/testsuite/rsa-encrypt-test.c
+@@ -19,6 +19,7 @@ test_main(void)
+   uint8_t after;
+ 
+   mpz_t gibberish;
++  mpz_t zero;
+ 
+   rsa_private_key_init(&key);
+   rsa_public_key_init(&pub);
+@@ -101,6 +102,17 @@ test_main(void)
+   ASSERT(decrypted[decrypted_length] == after);
+   ASSERT(decrypted[0] == 'A');
+ 
++  /* Test zero input. */
++  mpz_init_set_ui (zero, 0);
++  decrypted_length = msg_length;
++  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, zero));
++  ASSERT(!rsa_decrypt_tr(&pub, &key,
++			 &lfib, (nettle_random_func *) knuth_lfib_random,
++			 &decrypted_length, decrypted, zero));
++  ASSERT(!rsa_sec_decrypt(&pub, &key,
++			  &lfib, (nettle_random_func *) knuth_lfib_random,
++			  decrypted_length, decrypted, zero));
++  ASSERT(decrypted_length == msg_length);
+ 
+   /* Test invalid key. */
+   mpz_add_ui (key.q, key.q, 2);
+@@ -112,6 +124,6 @@ test_main(void)
+   rsa_private_key_clear(&key);
+   rsa_public_key_clear(&pub);
+   mpz_clear(gibberish);
++  mpz_clear(zero);
+   free(decrypted);
+ }
+-  
+-- 
+2.31.1
+
diff --git a/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch
new file mode 100644
index 0000000000..5f19bd80d3
--- /dev/null
+++ b/gnu/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch
@@ -0,0 +1,163 @@
+Copied from upstream nettle git repository.
+Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
+
+From 0ad0b5df315665250dfdaa4a1e087f4799edaefe Mon Sep 17 00:00:00 2001
+From: Niels Möller <nisse@lysator.liu.se>
+Date: Mon, 17 May 2021 22:02:47 +0200
+Subject: [PATCH 2/2] Add input check to rsa_decrypt family of functions.
+
+---
+ ChangeLog                    |  8 ++++++++
+ rsa-decrypt-tr.c             |  4 ++++
+ rsa-decrypt.c                | 10 ++++++++++
+ rsa-sec-decrypt.c            |  4 ++++
+ rsa.h                        |  5 +++--
+ testsuite/rsa-encrypt-test.c | 38 ++++++++++++++++++++++++++++++------
+ 6 files changed, 61 insertions(+), 8 deletions(-)
+
+diff --git a/rsa-decrypt-tr.c b/rsa-decrypt-tr.c
+index 927a8915..4a9e9d74 100644
+--- a/rsa-decrypt-tr.c
++++ b/rsa-decrypt-tr.c
+@@ -52,6 +52,10 @@ rsa_decrypt_tr(const struct rsa_public_key *pub,
+   mp_size_t key_limb_size;
+   int res;
+ 
++  /* First check that input is in range. */
++  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, pub->n) >= 0)
++    return 0;
++
+   key_limb_size = mpz_size(pub->n);
+ 
+   TMP_GMP_ALLOC (m, key_limb_size);
+diff --git a/rsa-decrypt.c b/rsa-decrypt.c
+index 7681439d..540d8baa 100644
+--- a/rsa-decrypt.c
++++ b/rsa-decrypt.c
+@@ -48,6 +48,16 @@ rsa_decrypt(const struct rsa_private_key *key,
+   int res;
+ 
+   mpz_init(m);
++
++  /* First check that input is in range. Since we don't have the
++     public key available here, we need to reconstruct n. */
++  mpz_mul (m, key->p, key->q);
++  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, m) >= 0)
++    {
++      mpz_clear (m);
++      return 0;
++    }
++
+   rsa_compute_root(key, m, gibberish);
+ 
+   res = pkcs1_decrypt (key->size, m, length, message);
+diff --git a/rsa-sec-decrypt.c b/rsa-sec-decrypt.c
+index fc4757a0..4c98958d 100644
+--- a/rsa-sec-decrypt.c
++++ b/rsa-sec-decrypt.c
+@@ -55,6 +55,10 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
+   TMP_GMP_DECL (em, uint8_t);
+   int res;
+ 
++  /* First check that input is in range. */
++  if (mpz_sgn (gibberish) < 0 || mpz_cmp (gibberish, pub->n) >= 0)
++    return 0;
++
+   TMP_GMP_ALLOC (m, mpz_size(pub->n));
+   TMP_GMP_ALLOC (em, key->size);
+ 
+diff --git a/rsa.h b/rsa.h
+index 3b10155f..2dd35a2d 100644
+--- a/rsa.h
++++ b/rsa.h
+@@ -428,13 +428,14 @@ rsa_sec_decrypt(const struct rsa_public_key *pub,
+ 	        size_t length, uint8_t *message,
+ 	        const mpz_t gibberish);
+ 
+-/* Compute x, the e:th root of m. Calling it with x == m is allowed. */
++/* Compute x, the e:th root of m. Calling it with x == m is allowed.
++   It is required that 0 <= m < n. */
+ void
+ rsa_compute_root(const struct rsa_private_key *key,
+ 		 mpz_t x, const mpz_t m);
+ 
+ /* Safer variant, using RSA blinding, and checking the result after
+-   CRT. */
++   CRT. It is required that 0 <= m < n. */
+ int
+ rsa_compute_root_tr(const struct rsa_public_key *pub,
+ 		    const struct rsa_private_key *key,
+diff --git a/testsuite/rsa-encrypt-test.c b/testsuite/rsa-encrypt-test.c
+index d3bc374b..d1a440f6 100644
+--- a/testsuite/rsa-encrypt-test.c
++++ b/testsuite/rsa-encrypt-test.c
+@@ -19,11 +19,12 @@ test_main(void)
+   uint8_t after;
+ 
+   mpz_t gibberish;
+-  mpz_t zero;
++  mpz_t bad_input;
+ 
+   rsa_private_key_init(&key);
+   rsa_public_key_init(&pub);
+   mpz_init(gibberish);
++  mpz_init(bad_input);
+ 
+   knuth_lfib_init(&lfib, 17);
+   
+@@ -103,15 +104,40 @@ test_main(void)
+   ASSERT(decrypted[0] == 'A');
+ 
+   /* Test zero input. */
+-  mpz_init_set_ui (zero, 0);
++  mpz_set_ui (bad_input, 0);
+   decrypted_length = msg_length;
+-  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, zero));
++  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
+   ASSERT(!rsa_decrypt_tr(&pub, &key,
+ 			 &lfib, (nettle_random_func *) knuth_lfib_random,
+-			 &decrypted_length, decrypted, zero));
++			 &decrypted_length, decrypted, bad_input));
+   ASSERT(!rsa_sec_decrypt(&pub, &key,
+ 			  &lfib, (nettle_random_func *) knuth_lfib_random,
+-			  decrypted_length, decrypted, zero));
++			  decrypted_length, decrypted, bad_input));
++  ASSERT(decrypted_length == msg_length);
++
++  /* Test input that is slightly larger than n */
++  mpz_add(bad_input, gibberish, pub.n);
++  decrypted_length = msg_length;
++  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
++  ASSERT(!rsa_decrypt_tr(&pub, &key,
++			 &lfib, (nettle_random_func *) knuth_lfib_random,
++			 &decrypted_length, decrypted, bad_input));
++  ASSERT(!rsa_sec_decrypt(&pub, &key,
++			  &lfib, (nettle_random_func *) knuth_lfib_random,
++			  decrypted_length, decrypted, bad_input));
++  ASSERT(decrypted_length == msg_length);
++
++  /* Test input that is considerably larger than n */
++  mpz_mul_2exp (bad_input, pub.n, 100);
++  mpz_add (bad_input, bad_input, gibberish);
++  decrypted_length = msg_length;
++  ASSERT(!rsa_decrypt(&key, &decrypted_length, decrypted, bad_input));
++  ASSERT(!rsa_decrypt_tr(&pub, &key,
++			 &lfib, (nettle_random_func *) knuth_lfib_random,
++			 &decrypted_length, decrypted, bad_input));
++  ASSERT(!rsa_sec_decrypt(&pub, &key,
++			  &lfib, (nettle_random_func *) knuth_lfib_random,
++			  decrypted_length, decrypted, bad_input));
+   ASSERT(decrypted_length == msg_length);
+ 
+   /* Test invalid key. */
+@@ -124,6 +150,6 @@ test_main(void)
+   rsa_private_key_clear(&key);
+   rsa_public_key_clear(&pub);
+   mpz_clear(gibberish);
+-  mpz_clear(zero);
++  mpz_clear(bad_input);
+   free(decrypted);
+ }
+-- 
+2.31.1
+
diff --git a/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch b/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch
new file mode 100644
index 0000000000..297816e698
--- /dev/null
+++ b/gnu/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch
@@ -0,0 +1,78 @@
+Copied from upstream nettle git repository.
+Removed changes to ChangeLog, to allow this patch to apply to nettle-3.5.
+
+From 7616541e6eff73353bf682c62e3a68e4fe696707 Mon Sep 17 00:00:00 2001
+From: Niels Möller <nisse@lysator.liu.se>
+Date: Thu, 6 May 2021 21:29:56 +0200
+Subject: [PATCH] Add check that message length to _pkcs1_sec_decrypt is valid.
+
+* pkcs1-sec-decrypt.c (_pkcs1_sec_decrypt): Check that message
+length is valid, for given key size.
+* testsuite/rsa-sec-decrypt-test.c (test_main): Add test cases for
+calls to rsa_sec_decrypt specifying a too large message length.
+---
+ ChangeLog                        |  7 +++++++
+ pkcs1-sec-decrypt.c              |  4 +++-
+ testsuite/rsa-sec-decrypt-test.c | 17 ++++++++++++++++-
+ 3 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/pkcs1-sec-decrypt.c b/pkcs1-sec-decrypt.c
+index 4f13080e..16833691 100644
+--- a/pkcs1-sec-decrypt.c
++++ b/pkcs1-sec-decrypt.c
+@@ -63,7 +63,9 @@ _pkcs1_sec_decrypt (size_t length, uint8_t *message,
+   volatile int ok;
+   size_t i, t;
+ 
+-  assert (padded_message_length >= length);
++  /* Message independent branch */
++  if (length + 11 > padded_message_length)
++    return 0;
+ 
+   t = padded_message_length - length - 1;
+ 
+diff --git a/testsuite/rsa-sec-decrypt-test.c b/testsuite/rsa-sec-decrypt-test.c
+index fb0ed3a1..3419322e 100644
+--- a/testsuite/rsa-sec-decrypt-test.c
++++ b/testsuite/rsa-sec-decrypt-test.c
+@@ -55,6 +55,7 @@ rsa_decrypt_for_test(const struct rsa_public_key *pub,
+ #endif
+ 
+ #define PAYLOAD_SIZE 50
++#define DECRYPTED_SIZE 256
+ void
+ test_main(void)
+ {
+@@ -63,7 +64,7 @@ test_main(void)
+   struct knuth_lfib_ctx random_ctx;
+ 
+   uint8_t plaintext[PAYLOAD_SIZE];
+-  uint8_t decrypted[PAYLOAD_SIZE];
++  uint8_t decrypted[DECRYPTED_SIZE];
+   uint8_t verifybad[PAYLOAD_SIZE];
+   unsigned n_size = 1024;
+   mpz_t gibberish;
+@@ -99,6 +100,20 @@ test_main(void)
+                                     PAYLOAD_SIZE, decrypted, gibberish) == 1);
+       ASSERT (MEMEQ (PAYLOAD_SIZE, plaintext, decrypted));
+ 
++      ASSERT (pub.size > 10);
++      ASSERT (pub.size <= DECRYPTED_SIZE);
++
++      /* Check that too large message length is rejected, largest
++	 valid size is pub.size - 11. */
++      ASSERT (!rsa_decrypt_for_test (&pub, &key, &random_ctx,
++				     (nettle_random_func *) knuth_lfib_random,
++				     pub.size - 10, decrypted, gibberish));
++
++      /* This case used to result in arithmetic underflow and a crash. */
++      ASSERT (!rsa_decrypt_for_test (&pub, &key, &random_ctx,
++				     (nettle_random_func *) knuth_lfib_random,
++				     pub.size, decrypted, gibberish));
++
+       /* bad one */
+       memcpy(decrypted, verifybad, PAYLOAD_SIZE);
+       nettle_mpz_random_size(garbage, &random_ctx,
+-- 
+2.31.1
+
diff --git a/gnu/packages/patches/polkit-CVE-2021-3560.patch b/gnu/packages/patches/polkit-CVE-2021-3560.patch
new file mode 100644
index 0000000000..9aa0373fda
--- /dev/null
+++ b/gnu/packages/patches/polkit-CVE-2021-3560.patch
@@ -0,0 +1,21 @@
+This patch fixes CVE-2021-3560, "local privilege escalation using
+polkit_system_bus_name_get_creds_sync()":
+
+  https://www.openwall.com/lists/oss-security/2021/06/03/1
+
+Patch from <https://gitlab.freedesktop.org/polkit/polkit/-/commit/a04d13a>.
+
+diff --git a/src/polkit/polkitsystembusname.c b/src/polkit/polkitsystembusname.c
+index 8daa12cb9093c1d765c7b83654a2b8d0d382378e..8ed13631508dd96624898df90ee2ece4dcf3e1e5 100644
+--- a/src/polkit/polkitsystembusname.c
++++ b/src/polkit/polkitsystembusname.c
+@@ -435,6 +435,9 @@ polkit_system_bus_name_get_creds_sync (PolkitSystemBusName           *system_bus
+   while (!((data.retrieved_uid && data.retrieved_pid) || data.caught_error))
+     g_main_context_iteration (tmp_context, TRUE);
+ 
++  if (data.caught_error)
++    goto out;
++
+   if (out_uid)
+     *out_uid = data.uid;
+   if (out_pid)
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
index f2bee30ab0..945c48a0e2 100644
--- a/gnu/packages/patches/qemu-build-info-manual.patch
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -13,17 +13,11 @@ configuring the directory under which the info manuals are installed.
 * docs/meson.build (texi, info): New targets.
 
 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
----
- configure        |  7 ++++++-
- docs/meson.build | 21 +++++++++++++++++++++
- meson.build      |  2 ++
- 3 files changed, 29 insertions(+), 1 deletion(-)
 
 diff --git a/configure b/configure
-index 18c26e0389..d1ab2c19d1 100755
 --- a/configure
 +++ b/configure
-@@ -948,6 +948,8 @@ for opt do
+@@ -951,6 +951,8 @@ for opt do
      static="yes"
      QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
    ;;
@@ -32,7 +26,7 @@ index 18c26e0389..d1ab2c19d1 100755
    --mandir=*) mandir="$optarg"
    ;;
    --bindir=*) bindir="$optarg"
-@@ -975,7 +977,7 @@ for opt do
+@@ -978,7 +980,7 @@ for opt do
    --host=*|--build=*|\
    --disable-dependency-tracking|\
    --sbindir=*|--sharedstatedir=*|\
@@ -41,35 +35,26 @@ index 18c26e0389..d1ab2c19d1 100755
    --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
      # These switches are silently ignored, for compatibility with
      # autoconf-generated configure scripts. This allows QEMU's
-@@ -1540,6 +1542,7 @@ includedir="${includedir:-$prefix/include}"
- if test "$mingw32" = "yes" ; then
-     mandir="$prefix"
-     datadir="$prefix"
-+    infodir="$prefix"
-     docdir="$prefix"
-     bindir="$prefix"
-     sysconfdir="$prefix"
-@@ -1547,6 +1550,7 @@ if test "$mingw32" = "yes" ; then
- else
-     mandir="${mandir:-$prefix/share/man}"
-     datadir="${datadir:-$prefix/share}"
-+    infodir="${infodir:-$datadir/info}"
-     docdir="${docdir:-$prefix/share/doc}"
-     bindir="${bindir:-$prefix/bin}"
-     sysconfdir="${sysconfdir:-$prefix/etc}"
-@@ -1683,6 +1687,7 @@ Advanced options (experts only):
-   --smbd=SMBD              use specified smbd [$smbd]
-   --with-git=GIT           use specified git [$git]
+@@ -1599,6 +1601,7 @@ else
+ fi
+ mandir="${mandir:-$prefix/share/man}"
+ datadir="${datadir:-$prefix/share}"
++infodir="${infodir:-$datadir/info}"
+ docdir="${docdir:-$prefix/share/doc}"
+ sysconfdir="${sysconfdir:-$prefix/etc}"
+ local_statedir="${local_statedir:-$prefix/var}"
+@@ -1736,6 +1739,7 @@ Advanced options (experts only):
+   --with-git-submodules=validate fail if git submodules are not up to date
+   --with-git-submodules=ignore   do not update or check git submodules (default if no .git dir)
    --static                 enable static build [$static]
 +  --infodir=PATH           install info manual in PATH
    --mandir=PATH            install man pages in PATH
    --datadir=PATH           install firmware in PATH/$qemu_suffix
    --localedir=PATH         install translation in PATH/$qemu_suffix
 diff --git a/docs/meson.build b/docs/meson.build
-index ebd85d59f9..1243839461 100644
 --- a/docs/meson.build
 +++ b/docs/meson.build
-@@ -114,4 +114,25 @@ if build_docs
+@@ -104,4 +104,25 @@ if build_docs
    alias_target('sphinxdocs', sphinxdocs)
    alias_target('html', sphinxdocs)
    alias_target('man', sphinxmans)
@@ -96,10 +81,9 @@ index ebd85d59f9..1243839461 100644
 +  endif
  endif
 diff --git a/meson.build b/meson.build
-index e3386196ba..d64a125ad9 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -32,6 +32,7 @@ endif
+@@ -35,6 +35,7 @@ endif
  qemu_confdir = get_option('sysconfdir') / get_option('qemu_suffix')
  qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
  qemu_docdir = get_option('docdir') / get_option('qemu_suffix')
@@ -107,14 +91,11 @@ index e3386196ba..d64a125ad9 100644
  qemu_moddir = get_option('libdir') / get_option('qemu_suffix')
  
  qemu_desktopdir = get_option('datadir') / 'applications'
-@@ -1995,6 +1996,7 @@ else
+@@ -2433,6 +2434,7 @@ else
    summary_info += {'local state directory': 'queried at runtime'}
  endif
  summary_info += {'Doc directory':     get_option('docdir')}
 +summary_info += {'Info directory':    get_option('infodir')}
  summary_info += {'Build directory':   meson.current_build_dir()}
  summary_info += {'Source path':       meson.current_source_dir()}
- summary_info += {'GIT binary':        config_host['GIT']}
--- 
-2.30.1
-
+ summary_info += {'GIT submodules':    config_host['GIT_SUBMODULES']}
diff --git a/gnu/packages/patches/qemu-meson-compat.patch b/gnu/packages/patches/qemu-meson-compat.patch
new file mode 100644
index 0000000000..e6968c57dc
--- /dev/null
+++ b/gnu/packages/patches/qemu-meson-compat.patch
@@ -0,0 +1,27 @@
+Fix a build failure that occurs with newer versions of Meson when
+gdbus-codegen is unavailable.
+
+Taken from upstream:
+https://gitlab.com/qemu-project/qemu/-/commit/5ecfb76ccc056eb6127e44268e475827ae73b9e0
+
+diff --git a/configure b/configure
+--- a/configure
++++ b/configure
+@@ -3341,7 +3341,7 @@ if ! test "$gio" = "no"; then
+         gio_cflags=$($pkg_config --cflags gio-2.0)
+         gio_libs=$($pkg_config --libs gio-2.0)
+         gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
+-        if [ ! -x "$gdbus_codegen" ]; then
++        if ! has "$gdbus_codegen"; then
+             gdbus_codegen=
+         fi
+         # Check that the libraries actually work -- Ubuntu 18.04 ships
+@@ -5704,6 +5704,8 @@ if test "$gio" = "yes" ; then
+     echo "CONFIG_GIO=y" >> $config_host_mak
+     echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
+     echo "GIO_LIBS=$gio_libs" >> $config_host_mak
++fi
++if test "$gdbus_codegen" != "" ; then
+     echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
+ fi
+ echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
diff --git a/gnu/packages/patches/qemu-sphinx-compat.patch b/gnu/packages/patches/qemu-sphinx-compat.patch
new file mode 100644
index 0000000000..7342ebee4e
--- /dev/null
+++ b/gnu/packages/patches/qemu-sphinx-compat.patch
@@ -0,0 +1,18 @@
+Prevent Sphinx 4 and later from creating subdirectories, which
+the build scripts are not equipped to deal with.
+
+Taken from upstream:
+https://gitlab.com/qemu-project/qemu/-/issues/256
+https://gitlab.com/qemu-project/qemu/-/commit/269a7e97865cb863c9ca19e5f2e6a40ac9eddf82
+
+diff --git a/docs/conf.py b/docs/conf.py
+--- a/docs/conf.py
++++ b/docs/conf.py
+@@ -279,6 +279,7 @@
+      ['Stefan Hajnoczi <stefanha@redhat.com>',
+       'Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>'], 1),
+ ]
++man_make_section_directory = False
+ 
+ # -- Options for Texinfo output -------------------------------------------
+ 
diff --git a/gnu/packages/patches/rust-ndarray-0.13-remove-blas-src.patch b/gnu/packages/patches/rust-ndarray-0.13-remove-blas-src.patch
new file mode 100644
index 0000000000..936c099ce4
--- /dev/null
+++ b/gnu/packages/patches/rust-ndarray-0.13-remove-blas-src.patch
@@ -0,0 +1,28 @@
+ Cargo.toml | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/Cargo.toml b/Cargo.toml
+index 1f3e1b6..36bc816 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -43,11 +43,6 @@
+ version = "0.3.2"
+ optional = true
+ 
+-[dependencies.blas-src]
+-version = "0.2.0"
+-optional = true
+-default-features = false
+-
+ [dependencies.cblas-sys]
+ version = "0.1.4"
+ optional = true
+@@ -91,7 +86,7 @@
+ default-features = false
+ 
+ [features]
+-blas = ["cblas-sys", "blas-src"]
++blas = ["cblas-sys"]
+ docs = ["approx", "serde", "rayon"]
+ serde-1 = ["serde"]
+ test = ["test-blas-openblas-sys"]
diff --git a/gnu/packages/patches/tor-fix-build-with-gcc-7.patch b/gnu/packages/patches/tor-fix-build-with-gcc-7.patch
new file mode 100644
index 0000000000..5481695a63
--- /dev/null
+++ b/gnu/packages/patches/tor-fix-build-with-gcc-7.patch
@@ -0,0 +1,30 @@
+From 810c0616d59809b89f5144d4afdbf70391df7a7f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alexander=20F=C3=A6r=C3=B8y?= <ahf@torproject.org>
+Date: Thu, 10 Jun 2021 20:04:13 +0000
+Subject: [PATCH] Fix compilation on OpenSUSE.
+
+This patch fixes a build error with GCC 7.x which doesn't seem to accept
+const int's as constants in macro initialization.
+
+See: tpo/core/tor#40410
+---
+ src/feature/dirclient/dirclient.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/feature/dirclient/dirclient.c b/src/feature/dirclient/dirclient.c
+index 74c6452061..a2b20621a0 100644
+--- a/src/feature/dirclient/dirclient.c
++++ b/src/feature/dirclient/dirclient.c
+@@ -1907,8 +1907,7 @@ dir_client_decompress_response_body(char **bodyp, size_t *bodylenp,
+   /* If we're pretty sure that we have a compressed directory, and
+    * we didn't manage to uncompress it, then warn and bail. */
+   if (!plausible && !new_body) {
+-    const int LOG_INTERVAL = 3600;
+-    static ratelim_t warning_limit = RATELIM_INIT(LOG_INTERVAL);
++    static ratelim_t warning_limit = RATELIM_INIT(60 * 60);
+     log_fn_ratelim(&warning_limit, LOG_WARN, LD_HTTP,
+            "Unable to decompress HTTP body (tried %s%s%s, on %s).",
+            description1,
+-- 
+GitLab
+
diff --git a/gnu/packages/patches/xpra-4.0.1-systemd-run.patch b/gnu/packages/patches/xpra-4.0.1-systemd-run.patch
deleted file mode 100644
index 1ea11830a5..0000000000
--- a/gnu/packages/patches/xpra-4.0.1-systemd-run.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Disable systemd-run if the command is not found.
-
-diff -Naur xpra-4.0.1/xpra/scripts/main.py xpra-4.0.1.patched/xpra/scripts/main.py
---- xpra-4.0.1/xpra/scripts/main.py	2020-05-17 18:12:15.000000000 +0200
-+++ xpra-4.0.1.patched/xpra/scripts/main.py	2020-06-01 12:12:18.500257507 +0200
-@@ -312,16 +312,18 @@
-     if not is_systemd_pid1():
-         return False
-     #test it:
--    cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
--    proc = Popen(cmd, stdin=None, stdout=None, stderr=None, shell=False)
--    r = pollwait(proc, timeout=1)
--    if r is None:
--        try:
--            proc.terminate()
--        except Exception:
--            pass
--    return r==0
--
-+    try:
-+        cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
-+        proc = Popen(cmd, stdin=None, stdout=None, stderr=None, shell=False)
-+        r = pollwait(proc, timeout=1)
-+        if r is None:
-+            try:
-+                proc.terminate()
-+            except Exception:
-+                pass
-+        return r==0
-+    except FileNotFoundError:
-+        return False
- 
- def run_mode(script_file, error_cb, options, args, mode, defaults):
-     #configure default logging handler:
diff --git a/gnu/packages/patches/xpra-4.2-systemd-run.patch b/gnu/packages/patches/xpra-4.2-systemd-run.patch
new file mode 100644
index 0000000000..8dfd9c82f0
--- /dev/null
+++ b/gnu/packages/patches/xpra-4.2-systemd-run.patch
@@ -0,0 +1,45 @@
+Disable systemd-run if the command is not found.
+
+diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py
+--- xpra-4.2~/xpra/scripts/main.py	2021-06-06 08:51:13.756815842 -0700
++++ xpra-4.2/xpra/scripts/main.py	2021-06-06 16:07:13.371024486 -0700
+@@ -331,23 +331,26 @@
+     if not is_systemd_pid1():
+         return False    # pragma: no cover
+     #test it:
+-    cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
+-    proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False)
+     try:
+-        proc.communicate(timeout=2)
+-        r = proc.returncode
+-    except TimeoutExpired:  # pragma: no cover
+-        r = None
+-    if r is None:
++        cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
++        proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False)
+         try:
+-            proc.terminate()
+-        except Exception:
+-            pass
+-        try:
+-            proc.communicate(timeout=1)
++            proc.communicate(timeout=2)
++            r = proc.returncode
+         except TimeoutExpired:  # pragma: no cover
+             r = None
+-    return r==0
++        if r is None:
++            try:
++                proc.terminate()
++            except Exception:
++                pass
++            try:
++                proc.communicate(timeout=1)
++            except TimeoutExpired:  # pragma: no cover
++                r = None
++        return r==0
++    except FileNotFoundError:
++        return False
+ 
+ 
+ def run_mode(script_file, error_cb, options, args, mode, defaults):
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 724f2a7d07..c8d5d78a1d 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -177,7 +177,7 @@ information.")
      `(("python-pypdf2" ,python-pypdf2)
        ("python-pyqt" ,python-pyqt)
        ("python-poppler-qt5" ,python-poppler-qt5)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "http://crazy-compilers.com/flyer-composer")
     (synopsis "Rearrange PDF pages to print as flyers on one sheet")
     (description "@command{flyer-composer} can be used to prepare one- or
@@ -303,7 +303,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
 (define-public poppler-qt5
   (package/inherit poppler
    (name "poppler-qt5")
-   (inputs `(("qtbase" ,qtbase)
+   (inputs `(("qtbase" ,qtbase-5)
              ,@(package-inputs poppler)))
    (synopsis "Qt5 frontend for the Poppler PDF rendering library")))
 
@@ -343,7 +343,7 @@ When present, Poppler is able to correctly render CJK and Cyrillic text.")
      `(("python-sip" ,python-sip-4)
        ("python-pyqt" ,python-pyqt)
        ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://pypi.org/project/python-poppler-qt5/")
     (synopsis "Python bindings for Poppler-Qt5")
     (description
@@ -401,7 +401,7 @@ reading and editing of existing PDF files.")
    (inputs `(("cups" ,cups)
              ("freetype" ,freetype)
              ("libpng" ,libpng)
-             ("qtbase" ,qtbase)
+             ("qtbase" ,qtbase-5)
              ("zlib" ,zlib)))
    (arguments
     `(#:tests? #f))                   ; there is no check target
@@ -848,7 +848,7 @@ program capable of converting PDF into other formats.")
        ("djvulibre" ,djvulibre)
        ("libspectre" ,libspectre)
        ("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (arguments
      `(#:imported-modules ((guix build qt-build-system)
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index fa90647a2d..ae2806d243 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -617,7 +617,7 @@ and enhance them.")
     (inputs
      `(("graphicsmagick" ,graphicsmagick)
        ("libomp" ,libomp)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://photoflare.io")
     (synopsis "Quick, simple but powerful image editor")
     (description "Photoflare is a cross-platform image editor with an aim
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index d868aceec2..f495d51c83 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -44,6 +44,7 @@
   (package
     (name "polkit")
     (version "0.116")
+    (replacement polkit/fixed)
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -135,6 +136,13 @@ making process with respect to granting access to privileged operations
 for unprivileged applications.")
     (license lgpl2.0+)))
 
+(define polkit/fixed
+  (package
+    (inherit polkit)
+    (source (origin
+              (inherit (package-source polkit))
+              (patches (search-patches "polkit-CVE-2021-3560.patch"))))))
+
 (define-public polkit-qt
   (package
     (name "polkit-qt")
@@ -151,7 +159,7 @@ for unprivileged applications.")
     (inputs
      `(("polkit" ,polkit)))
     (propagated-inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (arguments
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 4662a1e717..1fc1441052 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -41,6 +41,7 @@
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages gv)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -189,6 +190,52 @@ to @code{IOStreams}.")
     ;; The library is bsd-2, but documentation and tests include other licenses.
     (license (list bsd-2 bsd-3 psfl))))
 
+(define-public fmt-for-irods
+  (package
+    (inherit fmt)
+    (name "fmt-for-irods")
+    (version "6.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/fmtlib/fmt/releases/download/"
+                           version "/fmt-" version ".zip"))
+       (sha256
+        (base32 "1s1hxaby5byb07rgmrk4a0q11fxhz7b42khch7sp2qx974y0yrb3"))))
+    (build-system cmake-build-system)
+    (arguments
+     '(#:tests? #f ; TODO: posix-mock-test segfaults
+       #:configure-flags
+       '("-DBUILD_SHARED_LIBS=ON"
+         "-DCMAKE_CXX_COMPILER=clang++"
+         "-DCMAKE_CXX_FLAGS=-stdlib=libc++"
+         "-DCMAKE_EXE_LINKER_FLAGS=-lc++abi")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons (string-append (assoc-ref inputs "libcxx")
+                                             "/include/c++/v1")
+                              ;; Hide GCC's C++ headers so that they do not interfere with
+                              ;; the Clang headers.
+                              (delete (string-append gcc "/include/c++")
+                                      (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                    #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (properties `((hidden? . #true)))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (inputs
+     `(("libcxx" ,libcxx+libcxxabi-6)
+       ("libcxxabi" ,libcxxabi-6)
+       ("clang" ,clang-6)))))
+
 (define-public source-highlight
   (package
     (name "source-highlight")
diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm
index 9ab9da37fb..f78923966c 100644
--- a/gnu/packages/printers.scm
+++ b/gnu/packages/printers.scm
@@ -57,11 +57,11 @@
                         #t))))))
     (inputs
      `(("libusb" ,libusb)
-       ("qt" ,qtbase)
+       ("qt" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qmake" ,qtbase)))
+       ("qmake" ,qtbase-5)))
     (synopsis "Graphical program to drive plotting cutters")
     (description
      "Robocut is a simple graphical program that allows you to cut graphics
diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm
index 4d3c3faca0..b4d52d8d85 100644
--- a/gnu/packages/profiling.scm
+++ b/gnu/packages/profiling.scm
@@ -207,7 +207,7 @@ with calls to the POMP2 measurement interface.")
     (inputs `(("dbus" ,dbus)
               ("zlib" ,zlib)))
     (native-inputs `(("perl" ,perl)
-                     ("qtbase" ,qtbase)           ; native because of qmake
+                     ("qtbase" ,qtbase-5)           ; native because of qmake
                      ("which" ,which)))
 
     ;; FIXME: The doc is 14MB, but adding a doc output results in a cycle.
diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm
index b8741520f0..f8a60af760 100644
--- a/gnu/packages/pumpio.scm
+++ b/gnu/packages/pumpio.scm
@@ -62,7 +62,7 @@
              #t)))))
     (inputs
      `(("aspell" ,aspell)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("tidy" ,tidy)))
     (synopsis "Qt-based pump.io client")
     (description "Pumpa is a simple pump.io client written in C++ and Qt.")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 39f52f1d64..10fb2403e6 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -583,6 +583,37 @@ by numpy using the highly efficient @code{msgpack} format.  Serialization of
 Python's native complex data types is also supported.")
     (license license:bsd-3)))
 
+(define-public python-ruffus
+  (package
+    (name "python-ruffus")
+    (version "2.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "ruffus" version))
+       (sha256
+        (base32
+         "1ai673k1s94s8b6pyxai8mk17p6zvvyi87rl236fs6ls8mpdklvc"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (with-directory-excursion "ruffus/test"
+                 (invoke "bash" "run_all_unit_tests3.cmd"))))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
+    (home-page "http://www.ruffus.org.uk")
+    (synopsis "Light-weight computational pipeline management")
+    (description
+     "Ruffus is designed to allow scientific and other analyses to be
+automated with the minimum of fuss and the least effort.")
+    (license license:expat)))
+
 (define-public python-statannot
   (package
     (name "python-statannot")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index b7fc487bb5..23978547d0 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -809,9 +809,6 @@ websites.  It automatically stores and sends cookies, follows redirects, and can
 follow links and submit forms.  It doesn’t do JavaScript.")
     (license license:expat)))
 
-(define-public python2-mechanicalsoup
-  (package-with-python2 python-mechanicalsoup))
-
 (define-public python-hyperframe
   (package
     (name "python-hyperframe")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 56c2732018..bbc51590b6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -29,7 +29,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2016, 2017, 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2016, 2017, 2019 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017, 2018, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -1103,9 +1103,6 @@ NetCDF files can also be read and modified.  Python-HDF4 is a fork of
 @url{http://hdfeos.org/software/pyhdf.php,pyhdf}.")
    (license license:expat)))
 
-(define-public python2-hdf4
-  (package-with-python2 python-hdf4))
-
 (define-public python-h5py
   (package
     (name "python-h5py")
@@ -2284,28 +2281,6 @@ information created by most SVG editors.  Optimization options are typically
 lossless but can be tweaked for more aggressive cleaning.")
     (license license:asl2.0)))
 
-(define-public python-mappy
-  (package
-   (name "python-mappy")
-   (version "2.18")
-   (source (origin
-            (method url-fetch)
-            (uri (pypi-uri "mappy" version))
-            (sha256
-             (base32
-              "1a05p7rkmxa6qhm108na8flzj2v45jab06drk59kzk1ip2sgvzqq"))))
-   (build-system python-build-system)
-   (native-inputs
-    `(("python-cython" ,python-cython)))
-   (inputs
-    `(("zlib" ,zlib)))
-   (home-page "https://github.com/lh3/minimap2")
-   (synopsis "Python binding for minimap2")
-   (description "This package provides a convenient interface to minimap2,
-a fast and accurate C program to align genomic and transcribe nucleotide
-sequences.")
-   (license license:expat)))
-
 (define-public python-mechanize
   (package
     (name "python-mechanize")
@@ -2825,14 +2800,14 @@ matching them against a list of media-ranges.")
 (define-public python-miniboa
   (package
     (name "python-miniboa")
-    (version "1.0.7")
+    (version "1.0.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "miniboa" version))
        (sha256
         (base32
-         "09jh3pn4rh7kh7jayanf8jzy6gp03791b5a193w6148cf3i6k9m3"))))
+         "002c1aki9hsrwj5plrwdrf3sk8rn95fqylqyjx2arrjfpsih4dgs"))))
     (build-system python-build-system)
     (home-page "https://github.com/shmup/miniboa")
     (synopsis "Simple, single-threaded Telnet server")
@@ -5310,23 +5285,16 @@ color scales, and color space conversion easy.  It has support for:
     (description (package-description python-numpy))
     (license (package-license python-numpy))))
 
-(define-public python2-numpy-documentation
-  (let ((numpy-documentation (package-with-python2 python-numpy-documentation)))
-    (package
-      (inherit numpy-documentation)
-      (native-inputs `(("python2-functools32" ,python2-functools32)
-                       ,@(package-native-inputs numpy-documentation))))))
-
 (define-public python-pygit2
   (package
     (name "python-pygit2")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pygit2" version))
        (sha256
-        (base32 "1j71iskvirkm8jzfmwdm79v69878m9iix8a8cn4xidgr3nmkisyb"))))
+        (base32 "0qjd5aqpmla64da4pb47vdnrmnqdbn7248a4fzs7f5q1ax7fmb3s"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f))            ; tests don't run correctly in our environment
@@ -6236,13 +6204,13 @@ the OleFileIO module from PIL, the Python Image Library.")
 (define-public python-pikepdf
   (package
     (name "python-pikepdf")
-    (version "2.12.1")
+    (version "2.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pikepdf" version))
        (sha256
-        (base32 "1si1x4dc4i4ghyirjfws1zkgiwk8kypnpp4gf68haascrdy7znqw"))))
+        (base32 "1r68zh8whp8wg4brjf5vha8h1ly8pjqyb37pfw91hyxfn6cm9wsz"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #false))                ;require python-xmp-toolkit
@@ -7054,9 +7022,6 @@ cluster directly from Python.  You can directly map Python functions onto the
 cluster without needing to write any wrapper code yourself.")
     (license license:gpl3+)))
 
-(define-public python2-gridmap
-  (package-with-python2 python-gridmap))
-
 (define-public python-honcho
   (package
     (name "python-honcho")
@@ -8844,9 +8809,6 @@ more advanced mathematics.")
 multiprecision arithmetic.")
     (license license:lgpl3+)))
 
-(define-public python2-bigfloat
-  (package-with-python2 python-bigfloat))
-
 (define-public python-sympy
   (package
     (name "python-sympy")
@@ -9100,25 +9062,29 @@ applications.")
 (define-public python-pyzmq
   (package
     (name "python-pyzmq")
-    (version "22.0.3")
+    (version "22.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyzmq" version))
        (sha256
-        (base32 "0bgrn65cxfz1c1sjrgyq5dy1mkhppxxbizd5wvrl03cq4zhkrxpp"))))
+        (base32 "0pa1y97z75xqyca9xfp9zrzksydbgzsxf8yh0hwp0rgahpfxch3h"))))
     (build-system python-build-system)
     (arguments
      `(#:configure-flags
        (list (string-append "--zmq=" (assoc-ref %build-inputs "zeromq")))
-       ;; FIXME: You must build pyzmq with 'python setup.py build_ext
-       ;; --inplace' for 'python setup.py test' to work.
-       #:tests? #f))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'build-extensions
+           (lambda _
+             ;; Cython extensions have to be built before running the tests.
+             (invoke "python" "setup.py" "build_ext" "--inplace"))))))
     (inputs
      `(("zeromq" ,zeromq)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("python-nose" ,python-nose)))
+       ("python-cython" ,python-cython)
+       ("python-pytest" ,python-pytest)))
     (home-page "https://github.com/zeromq/pyzmq")
     (synopsis "Python bindings for 0MQ")
     (description
@@ -13292,7 +13258,7 @@ ISO 8859, etc.).")
        ("python-pytest-cov" ,python-pytest-cov)
        ("python-pytest-xdist" ,python-pytest-xdist)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (propagated-inputs
      `(("python-h5py" ,python-h5py)
        ("python-numpy" ,python-numpy)
@@ -13687,6 +13653,56 @@ is made as zipfile like as possible.")
 (define-public python2-rarfile
   (package-with-python2 python-rarfile))
 
+(define-public python-rich
+  (package
+    (name "python-rich")
+    (version "10.2.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "rich" version))
+              (sha256
+               (base32
+                "1z5m5brcdf3vndpavcqj5nl35xby4x5rfj48klhwqycfqf3g9cqp"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs tests? #:allow-other-keys)
+             (when tests?
+               (copy-recursively (string-append
+                                  (assoc-ref inputs "tests") "/tests")
+                                 "tests")
+               (invoke "python" "-m" "pytest" "-vv")))))))
+    (propagated-inputs
+     `(("python-attrs" ,python-attrs)
+       ("python-colorama" ,python-colorama)
+       ("python-commonmark" ,python-commonmark)
+       ("python-ipywidgets" ,python-ipywidgets)
+       ("python-pygments" ,python-pygments)
+       ("python-typing-extensions" ,python-typing-extensions)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)
+       ("tests"
+        ;; The release on pypi comes without tests.  We can't build from this
+        ;; checkout, though, because installation requires an invocation of
+        ;; poetry.
+        ,(origin
+           (method git-fetch)
+           (uri (git-reference
+                 (url "https://github.com/willmcgugan/rich")
+                 (commit (string-append "v" version))))
+           (file-name (git-file-name name version))
+           (sha256
+            (base32
+             "19f4svb363sn5708qkpa6lakmiwzyb25h8kmh7bqrsbbrvi9hr70"))))))
+    (home-page "https://github.com/willmcgugan/rich")
+    (synopsis "Render rich text and more to the terminal")
+    (description
+     "This is a Python package for rendering rich text, tables, progress bars,
+syntax highlighting, markdown and more to the terminal.")
+    (license license:expat)))
+
 (define-public python-magic
   (package
     (name "python-magic")
@@ -14266,9 +14282,6 @@ graphviz.")
 format.")
     (license license:gpl2+)))
 
-(define-public python2-fastimport
-  (package-with-python2 python-fastimport))
-
 (define-public python-twisted
   (package
     (name "python-twisted")
@@ -15147,13 +15160,13 @@ collections of data.")
 (define-public python-prompt-toolkit
   (package
     (name "python-prompt-toolkit")
-    (version "3.0.9")
+    (version "3.0.18")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "prompt_toolkit" version))
        (sha256
-        (base32 "0bvjp62cs6aj9lrh7njzxdjgg8pjfw3qgmr551243d9ivmcapvn5"))))
+        (base32 "1g1kq1aimhm23k2dmlmnznfzc83l6ly65g0h32hqz8injcdz3d71"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -15257,18 +15270,19 @@ well.")
 (define-public ptpython
   (package
     (name "ptpython")
-    (version "3.0.5")
+    (version "3.0.17")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "ptpython" version))
               (sha256
                (base32
-                "0c2ry5gwi2v99slna62j8r2bwq0hpzmvgdryqg9m6x57vbjfg52h"))))
+                "1phk1grcvn456igjg8gwjjg8bf4kszddq5nd5sdlz3hslg62a7ci"))))
     (build-system python-build-system)
     (arguments
-     '(#:tests? #f)) ; FIXME: No tests in pypi tarball.
+     `(#:tests? #f)) ;there are no tests
     (propagated-inputs
      `(("python-appdirs" ,python-appdirs)
+       ("python-black" ,python-black)
        ("python-jedi" ,python-jedi)
        ("python-prompt-toolkit" ,python-prompt-toolkit)
        ("python-pygments" ,python-pygments)))
@@ -16867,8 +16881,9 @@ and bit flag values.")
     (arguments
      `(#:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _
-                      (invoke "pytest"))))))
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest")))))))
     (native-inputs
      `(("python-coverage" ,python-coverage)
        ("python-hypothesis" ,python-hypothesis)
@@ -21160,18 +21175,26 @@ library's @code{threading} module.")
 (define-public python-toolz
   (package
     (name "python-toolz")
-    (version "0.9.0")
+    (version "0.11.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "toolz" version))
        (sha256
         (base32
-         "1j9i7fdjnx9dz35fdj5gvgxx6585ja9sxgaiv65if77nlxz0m7wj"))))
+         "1grz3zvw5ixwqqlbv0n7j11mlcxb66cirh5i9x9zw8kqy0hpk967"))))
     (build-system python-build-system)
-    ;; FIXME: tests cannot be computed: "Can't perform this operation for
-    ;; unregistered loader type"
-    (arguments '(#:tests? #f))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
+             (when tests?
+               (add-installed-pythonpath inputs outputs)
+               (invoke "python" "-m" "pytest" "--doctest-modules"
+                       "--pyargs" "toolz")))))))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/pytoolz/toolz/")
     (synopsis "List processing tools and functional utilities")
     (description
@@ -21386,9 +21409,6 @@ This Python package wraps the Blosc library.")
 append on old values.  Partd excels at shuffling operations.")
     (license license:bsd-3)))
 
-(define-public python2-partd
-  (package-with-python2 python-partd))
-
 (define-public python-fsspec
   (package
     (name "python-fsspec")
@@ -25204,14 +25224,14 @@ disk files in asyncio applications.")
 (define-public python-dataclasses
   (package
     (name "python-dataclasses")
-    (version "0.7")
+    (version "0.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "dataclasses" version))
         (sha256
           (base32
-            "1rh8111fbws2vxyf2qy2zw3x6p6cq1jfz8pf904gig5qwg56sjj9"))))
+            "15sc12nrc7gxwb30vfa6frzdnpmbap9ibi1fr1yrbkra6izhcyc4"))))
     (build-system python-build-system)
     (home-page
       "https://github.com/ericvsmith/dataclasses")
@@ -25499,7 +25519,7 @@ implementations.")
         ("swig" ,swig)))
     (inputs
       `(("python-wrapper" ,python-wrapper)
-        ("qtbase" ,qtbase)
+        ("qtbase" ,qtbase-5)
         ("libxi" ,libxi)
         ("libice" ,libice)
         ("soqt" ,soqt)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 55855fb68a..19fcc2f37e 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -19,7 +19,7 @@
 ;;; Copyright © 2020 TomZ <tomz@freedommail.ch>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
@@ -134,7 +134,7 @@
                (chdir "libqite")
                #t)))))
       (inputs
-       `(("qtbase" ,qtbase)
+       `(("qtbase" ,qtbase-5)
          ("qtmultimedia" ,qtmultimedia)))
       (home-page "https://github.com/Ri0n/qite/")
       (synopsis "Qt Interactive Text Elements")
@@ -187,7 +187,7 @@
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (synopsis "Qt5 Configuration Tool")
     (description "Qt5CT is a program that allows users to configure Qt5
@@ -228,13 +228,13 @@ window managers, that don't provide Qt integration by themselves.")
           (string-append "-DCMAKE_CXX_FLAGS=-I"
                          (assoc-ref %build-inputs "qtbase")
                          "/include/qt5/QtXkbCommonSupport/"
-                         ,(package-version qtbase)))))
+                         ,(package-version qtbase-5)))))
       (native-inputs
        `(("cmake-shared" ,cmake-shared)
          ("extra-cmake-modules" ,extra-cmake-modules)
          ("pkg-config" ,pkg-config)))
       (inputs
-       `(("qtbase" ,qtbase)
+       `(("qtbase" ,qtbase-5)
          ("qtwayland" ,qtwayland)
          ("wayland" ,wayland)
          ("xkbcommon" ,libxkbcommon)))
@@ -261,7 +261,7 @@ applications on Wayland.")
      ;; Optional: lcov and cccc, both are for code coverage
      `(("doxygen" ,doxygen)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtscript" ,qtscript)))
     (build-system cmake-build-system)
@@ -298,7 +298,7 @@ system, and the core design of Django is reused in Grantlee.")
         (string-append "https://distfiles.macports.org/qt5/"
                        component "-everywhere-src-" version ".tar.xz")))
 
-(define-public qtbase
+(define-public qtbase-5
   (package
     (name "qtbase")
     (version "5.15.2")
@@ -553,11 +553,157 @@ system, and the core design of Django is reused in Grantlee.")
 developers using C++ or QML, a CSS & JavaScript like language.")
     (license (list license:lgpl2.1 license:lgpl3))))
 
-;; qt used to refer to the monolithic Qt 5.x package
-(define-deprecated qt qtbase)
+(define-public qtbase
+  (package/inherit qtbase-5
+    (name "qtbase")
+    (version "6.1.1")
+    (source (origin
+              (inherit (package-source qtbase-5))
+              (uri (qt5-urls name version))
+              (sha256
+               (base32
+                "1wizrfiw6h8bk99brbdpdli40vsk6yqchs66f1r083hp0ygsma11"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; corelib uses bundled harfbuzz, md4, md5, sha3
+               '(with-directory-excursion "src/3rdparty"
+                  (for-each delete-file-recursively
+                            ;; The bundled pcre2 copy is kept, as its headers
+                            ;; are required by some internal bootstrap target
+                            ;; used for the tools.
+                            (list "double-conversion" "freetype" "harfbuzz-ng"
+                                  "libpng" "libjpeg" "sqlite" "xcb" "zlib"))))))
+    (build-system cmake-build-system)
+    (arguments
+     (substitute-keyword-arguments (package-arguments qtbase-5)
+       ;; XXX: There are many test failures, because the test suite
+       ;; requires a real X server (a virtual one such as Xvfb is not
+       ;; enough) or a functional network.  It's also quite expensive to
+       ;; build and run.
+       ((#:tests? _ #f) #f)
+       ;; ((#:cmake _)
+       ;;  cmake)                          ;requires a CMake >= 3.18.4
+       ((#:configure-flags _ ''())
+        `(let ((out (assoc-ref %outputs "out")))
+           (list "-GNinja"              ;the build fails otherwise
+                 (string-append "-DINSTALL_ARCHDATADIR=" out "/lib/qt6")
+                 (string-append "-DINSTALL_DATADIR=" out "/share/qt6")
+                 (string-append "-DINSTALL_DOCDIR=" out "/share/doc/qt6")
+                 (string-append "-DINSTALL_MKSPECSDIR=" out "/lib/qt6/mkspecs")
+                 (string-append "-DINSTALL_EXAMPLESDIR=" out
+                                "/share/doc/qt6/examples")
+                 (string-append "-DINSTALL_INCLUDEDIR=" out "/include/qt6")
+                 ;; Link with DBus and OpenSSL so they don't get dlopen'ed.
+                 "-DINPUT_dbus=linked"
+                 "-DINPUT_openssl=linked"
+                 ;; These features require higher versions of Linux than the
+                 ;; minimum version of the glibc.  See
+                 ;; src/corelib/global/minimum-linux_p.h.  By disabling these
+                 ;; features Qt applications can be used on the oldest kernels
+                 ;; that the glibc supports, including the RHEL6 (2.6.32) and
+                 ;; RHEL7 (3.10) kernels.
+                 "-DFEATURE_getentropy=OFF" ; requires Linux 3.17
+                 "-DFEATURE_renameat2=OFF"  ; requires Linux 3.16
+                 ;; Most system libraries are used by default, except in some
+                 ;; cases such as for those below.
+                 "-DFEATURE_system_pcre2=ON"
+                 "-DFEATURE_system_sqlite=ON"
+                 ;; Don't use the precompiled headers.
+                 "-DBUILD_WITH_PCH=OFF"
+                 ;; Drop special machine instructions that do not have runtime
+                 ;; detection.
+                 ,@(if (string-prefix? "x86_64"
+                                       (or (%current-target-system)
+                                           (%current-system)))
+                       '()              ;implicitly enabled
+                       '("-DFEATURE_sse2=OFF"
+                         "-DFEATURE_sse3=OFF"
+                         "-DFEATURE_ssse3=OFF"
+                         "-DFEATURE_sse4_1=OFF"
+                         "-DFEATURE_sse4_2=OFF"))
+                 "-DFEATURE_mips_dsp=OFF"
+                 "-DFEATURE_mips_dspr2=OFF")))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'patch-bin-sh)
+           (delete 'patch-xdg-open)
+           (add-after 'patch-paths 'patch-more-paths
+             (lambda _
+               (substitute* "src/gui/platform/unix/qgenericunixservices.cpp"
+                 (("\"xdg-open\"")
+                  (format #f "~s" (which "xdg-open"))))
+               (substitute* '("mkspecs/features/qt_functions.prf"
+                              "qmake/library/qmakebuiltins.cpp")
+                 (("/bin/sh")
+                  (which "sh")))))
+           (replace 'configure
+             (assoc-ref %standard-phases 'configure))
+           (replace 'build
+             (lambda* (#:key parallel-build? #:allow-other-keys)
+               (apply invoke "cmake" "--build" "."
+                      (if parallel-build?
+                          `("--parallel" ,(number->string (parallel-job-count)))
+                          '()))))
+           (replace 'install
+             (lambda _
+               (invoke "cmake" "--install" ".")))
+           (replace 'patch-mkspecs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (archdata (string-append out "/lib/qt6"))
+                      (mkspecs (string-append archdata "/mkspecs"))
+                      (qt_config.prf (string-append
+                                      mkspecs "/features/qt_config.prf")))
+                 ;; For each Qt module, let `qmake' uses search paths in the
+                 ;; module directory instead of all in QT_INSTALL_PREFIX.
+                 (substitute* qt_config.prf
+                   (("\\$\\$\\[QT_INSTALL_HEADERS\\]")
+                    "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt6))")
+                   (("\\$\\$\\[QT_INSTALL_LIBS\\]")
+                    "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
+                   (("\\$\\$\\[QT_HOST_LIBS\\]")
+                    "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
+                   (("\\$\\$\\[QT_INSTALL_BINS\\]")
+                    "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))"))
+
+                 ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS.
+                 (substitute* (string-append mkspecs "/features/qt_functions.prf")
+                   (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2")
+                    "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})"))
+
+                 ;; Resolve qmake spec files within qtbase by absolute paths.
+                 (substitute*
+                     (map (lambda (file)
+                            (string-append mkspecs "/features/" file))
+                          '("device_config.prf" "moc.prf" "qt_build_config.prf"
+                            "qt_config.prf"))
+                   (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata)
+                   (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata)))))))))
+    (native-inputs
+     `(("gtk+" ,gtk+)                   ;for GTK theme support
+       ("ninja" ,ninja)
+       ("wayland-protocols" ,wayland-protocols)
+       ("xorg-server" ,xorg-server-for-tests)
+       ,@(package-native-inputs qtbase-5)))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "QMAKEPATH")
+            (files '("lib/qt6")))
+           (search-path-specification
+            (variable "QML2_IMPORT_PATH")
+            (files '("lib/qt6/qml")))
+           (search-path-specification
+            (variable "QT_PLUGIN_PATH")
+            (files '("lib/qt6/plugins")))
+           (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc/xdg")))))))
 
 (define-public qtsvg
-  (package (inherit qtbase)
+  (package (inherit qtbase-5)
     (name "qtsvg")
     (version "5.15.2")
     (source (origin
@@ -570,7 +716,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
     (native-inputs `(("perl" ,perl)))
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (arguments
      `(#:phases
@@ -660,7 +806,7 @@ HostData=lib/qt5
        ("libtiff" ,libtiff)
        ("libwebp" ,libwebp)
        ("mesa" ,mesa)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (synopsis "Additional Image Format plugins for Qt")
     (description "The QtImageFormats module contains plugins for adding
@@ -682,7 +828,7 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
     (native-inputs `(("perl" ,perl)))
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (synopsis "Qt Extras for X11")
     (description "The QtX11Extras module includes the library to access X11
 from within Qt 5.")))
@@ -709,7 +855,7 @@ from within Qt 5.")))
                #t))))))
     (native-inputs `(("perl" ,perl)
                      ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase)))
+    (inputs `(("qtbase" ,qtbase-5)))
     (synopsis "Qt XML patterns module")
     (description "The QtXmlPatterns module is a XQuery and XPath engine for
 XML and custom data models.  It contains programs such as xmlpatterns and
@@ -748,7 +894,7 @@ xmlpatternsvalidator.")))
        ("vulkan-headers" ,vulkan-headers)))
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (synopsis "Qt QML module (Quick 2)")
     (description "The Qt QML module provides a framework for developing
 applications and libraries with the QML language.  It defines and implements the
@@ -772,7 +918,7 @@ with JavaScript and C++.")))
        ("qtdeclarative" ,qtdeclarative)))
     (inputs
      `(("bluez" ,bluez)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (synopsis "Qt Connectivity module")
     (description "The Qt Connectivity modules provides modules for interacting
 with Bluetooth and NFC.")))
@@ -793,7 +939,7 @@ with Bluetooth and NFC.")))
     (native-inputs
      `(("perl" ,perl)
        ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase)))
+    (inputs `(("qtbase" ,qtbase-5)))
     (synopsis "Qt Web Sockets module")
     (description "WebSocket is a web-based protocol designed to enable two-way
 communication between a client application and a remote host.  The Qt
@@ -825,7 +971,7 @@ consume data received from the server, or both.")))
     (native-inputs
      `(("perl" ,perl)
        ("qtdeclarative" ,qtdeclarative)))
-    (inputs `(("qtbase" ,qtbase)))
+    (inputs `(("qtbase" ,qtbase-5)))
     (synopsis "Qt Sensors module")
     (description "The Qt Sensors API provides access to sensor hardware via QML
 and C++ interfaces.  The Qt Sensors API also provides a motion gesture
@@ -870,7 +1016,7 @@ recognition API for devices.")))
      `(("alsa-lib" ,alsa-lib)
        ("mesa" ,mesa)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ;; Gstreamer is needed for the mediaplayer plugin
        ("gstreamer" ,gstreamer)
        ("gst-plugins-base" ,gst-plugins-base)))
@@ -924,7 +1070,7 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
        ("libxrender" ,libxrender)
        ("mesa" ,mesa)
        ("mtdev" ,mtdev)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("vulkan-headers" ,vulkan-headers)
        ("wayland" ,wayland)))
     (synopsis "Qt Wayland module")
@@ -943,7 +1089,7 @@ compositor libraries.")))
                "17gp5qzg4wdg8qlxk2p3mh8x1vk33rf33wic3fy0cws193bmkiar"))))
     (native-inputs `(("perl" ,perl)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("eudev" ,eudev)))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
@@ -987,7 +1133,7 @@ interacting with serial ports from within Qt.")))
                  #t)))))))
     (inputs
      `(("libsocketcan" ,libsocketcan)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtserialport" ,qtserialport)))
     (synopsis "Qt Serial Bus module")
     (description "The Qt Serial Bus API provides classes and functions to
@@ -1008,7 +1154,7 @@ and others.")))
      `(("perl" ,perl)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebsockets" ,qtwebsockets)))
-    (inputs `(("qtbase" ,qtbase)))
+    (inputs `(("qtbase" ,qtbase-5)))
     (synopsis "Web communication library for Qt")
     (description "The Qt WebChannel module enables peer-to-peer communication
 between the host (QML/C++ application) and the client (HTML/JavaScript
@@ -1036,7 +1182,7 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
     (native-inputs '())
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebsockets" ,qtwebsockets)
        ("zlib" ,zlib)))
@@ -1061,7 +1207,7 @@ OpenGL ES 2.0 and can be used in HTML5 canvas elements")))
     (native-inputs
      `(("perl" ,perl)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Display web content in a QML application")
     (description "Qt WebView provides a way to display web content in a QML
@@ -1092,7 +1238,7 @@ native APIs where it makes sense.")))
     (inputs
      `(("icu4c" ,icu4c)
        ("openssl" ,openssl)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("zlib" ,zlib)))
     (synopsis "Qt Location and Positioning modules")
     (description "The Qt Location module provides an interface for location,
@@ -1117,7 +1263,7 @@ positioning and geolocation plugins.")))
        ("vulkan-headers" ,vulkan-headers)))
     (inputs
      `(("mesa" ,mesa)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (synopsis "Qt Tools and Designer modules")
     (description "The Qt Tools module provides a set of applications to browse
 the documentation, translate applications, generate help files and other stuff
@@ -1138,7 +1284,7 @@ that helps in Qt development.")))
      `(("perl" ,perl)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (synopsis "Qt Script module")
     (description "Qt provides support for application scripting with ECMAScript.
 The following guides and references cover aspects of programming with
@@ -1158,7 +1304,7 @@ ECMAScript and Qt.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Quick Controls and other Quick modules")
     (description "The QtScript module provides classes for making Qt
@@ -1179,7 +1325,7 @@ can be used to build complete interfaces in Qt Quick.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Quick Controls 2 and other Quick 2 modules")
     (description "The Qt Quick Controls 2 module contains the Qt Labs Platform
@@ -1201,7 +1347,7 @@ not available.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Graphical Effects module")
     (description "The Qt Graphical Effects module provides a set of QML types
@@ -1229,7 +1375,7 @@ coloring, and many more.")))
        ("freetype" ,freetype)
        ("libxrender" ,libxrender)
        ("sdl2" ,sdl2)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Gamepad module")
     (description "The Qt Gamepad module is an add-on library that enables Qt
@@ -1257,7 +1403,7 @@ and mobile applications targeting TV-like form factors.")))
                    (("scion") "#"))
                  #t))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt SCXML module")
     (description "The Qt SCXML module provides functionality to create state
@@ -1277,7 +1423,7 @@ also contains functionality to support data models and executable content.")))
               (base32
                "09rjx53519dfk4qj2gbn3vlxyriasyb747wpg1p11y7jkwqhs4l7"))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Purchasing module")
     (description "The Qt Purchasing module provides and in-app API for
@@ -1297,7 +1443,7 @@ purchasing goods and services.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Charts module")
     (description "The Qt Charts module provides a set of easy to use chart
@@ -1321,7 +1467,7 @@ selecting one of the charts themes.")
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Data Visualization module")
     (description "The Qt Data Visualization module provides a way to visualize
@@ -1352,7 +1498,7 @@ customized by using themes or by adding custom items and labels to them.")
                  (("oauth1 ") "# oauth1 "))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (synopsis "Qt Network Authorization module")
     (description "The Qt Network Authorization module provides an
 implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
@@ -1383,7 +1529,7 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
                    "integration_multiprocess"))
                #t))))))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (synopsis "Qt Remote Objects module")
     (description "The Qt Remote Objects module is an @dfn{inter-process
@@ -1406,7 +1552,7 @@ processes or computers.")))
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:tests? _ #f) #f))) ; TODO: Enable the tests
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (native-inputs
      `(("perl" ,perl)
        ("qtdeclarative" ,qtdeclarative)
@@ -1442,7 +1588,7 @@ message.")))
        ("qttools" ,qttools)))
     (inputs
      `(("enchant" ,enchant)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://github.com/manisandro/qtspell")
     (synopsis "Spell checking for Qt text widgets")
     (description
@@ -1455,7 +1601,7 @@ using the Enchant spell-checking library.")
   (package
     (inherit qtsvg)
     (name "qtwebengine")
-    (version (package-version qtbase))
+    (version (package-version qtbase-5))
     (source
      (origin
        (method url-fetch)
@@ -1547,6 +1693,7 @@ using the Enchant spell-checking library.")
                     "third_party/modp_b64"
                     "third_party/nasm"
                     "third_party/one_euro_filter"
+                    "third_party/openh264/src/codec/api/svc"
                     "third_party/opus"
                     "third_party/ots"
                     "third_party/pdfium"
@@ -1724,6 +1871,7 @@ using the Enchant spell-checking library.")
        ;; libxml2 configure summary still states "Checking for compatible
        ;; system libxml2... no"
        ("libxml2" ,libxml2)
+       ("openh264" ,openh264)
        ("libxrandr" ,libxrandr)
        ("libxrender" ,libxrender)
        ("libxslt" ,libxslt)
@@ -1735,7 +1883,7 @@ using the Enchant spell-checking library.")
        ("pciutils" ,pciutils)
        ("protobuf" ,protobuf)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
        ("qtwebchannel" ,qtwebchannel)
@@ -1747,6 +1895,10 @@ using the Enchant spell-checking library.")
        ("xcb-util" ,xcb-util)))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
+       ((#:modules modules '())
+        `((guix build gnu-build-system)
+          (guix build utils)
+          (ice-9 textual-ports)))
        ((#:phases phases)
         `(modify-phases ,phases
            (add-before 'configure 'substitute-source
@@ -1754,6 +1906,10 @@ using the Enchant spell-checking library.")
                (let ((out (assoc-ref outputs "out"))
                      (nss (assoc-ref inputs "nss"))
                      (udev (assoc-ref inputs "udev")))
+                 (with-atomic-file-replacement "src/buildtools/config/linux.pri"
+                   (lambda (in out)
+                     (display (get-string-all in) out)
+                     (display "\ngn_args += use_system_openh264=true\n" out)))
                  ;; Qtwebengine is not installed into the same prefix as
                  ;; qtbase.  Some qtbase QTLibraryInfo constants will not
                  ;; work.  Replace with the full path to the qtwebengine
@@ -1789,7 +1945,8 @@ using the Enchant spell-checking library.")
                        "--webengine-printing-and-pdf=no"
                        "--webengine-ffmpeg=system"
                        "--webengine-icu=system"
-                       "--webengine-pepper-plugins=no")))))
+                       "--webengine-pepper-plugins=no"
+                       "-webengine-proprietary-codecs")))))
        ;; Tests are disabled due to "Could not find QtWebEngineProcess error"
        ;; It's possible this can be fixed by setting QTWEBENGINEPROCESS_PATH
        ;; before running tests.
@@ -1905,13 +2062,13 @@ module provides support functions to the automatically generated code.")
         (patches (search-patches "pyqt-configure.patch"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("qtbase" ,qtbase))) ; for qmake
+     `(("qtbase" ,qtbase-5))) ; for qmake
     (propagated-inputs
      `(("python-sip" ,python-sip)
        ("python-pyqt5-sip" ,python-pyqt5-sip)))
     (inputs
      `(("python" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtconnectivity" ,qtconnectivity)
        ("qtdeclarative" ,qtdeclarative)
        ("qtlocation" ,qtlocation)
@@ -2017,12 +2174,12 @@ contain over 620 classes.")
      `(("python" ,python)
        ("python-sip" ,python-sip)
        ;; qtbase is required for qmake
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (inputs
      `(("python" ,python-wrapper)
        ("python-sip" ,python-sip)
        ("python-pyqt" ,python-pyqt)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
@@ -2057,7 +2214,7 @@ contain over 620 classes.")
                        "--sipdir" sipdir
                        "--pyqt-sipdir" pyqt-sipdir))))
          ;; Because this has a different prefix than python-pyqt then we need
-         ;; to make this a namespace of it's own
+         ;; to make this a namespace of its own.
          (add-after 'install 'make-namespace
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((__init__.py (string-append
@@ -2169,7 +2326,7 @@ top of the PyQt bindings for Qt.  PyQt-builder is used to build PyQt itself.")
                  (("\\$\\$\\[QT_HOST_DATA\\]")
                  (string-append out "/lib/qt$${QT_MAJOR_VERSION}")))
                (invoke "qmake")))))))
-    (native-inputs `(("qtbase" ,qtbase)))
+    (native-inputs `(("qtbase" ,qtbase-5)))
     (home-page "https://www.riverbankcomputing.co.uk/software/qscintilla/intro")
     (synopsis "Qt port of the Scintilla C++ editor control")
     (description "QScintilla is a port to Qt of Neil Hodgson's Scintilla C++
@@ -2267,7 +2424,7 @@ This package provides the Python bindings.")))
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (arguments
      `(#:tests? #f ; No tests included
        #:phases
@@ -2377,7 +2534,7 @@ securely.  It will not store any data unencrypted unless explicitly requested.")
                          '("qtlockedfile" "qtpropertybrowser" "qtservice"
                            "qtsingleapplication" "qtsoap")))))))
       (inputs
-       `(("qtbase" ,qtbase)))
+       `(("qtbase" ,qtbase-5)))
       (synopsis "Collection of Qt extensions")
       (description "QtSolutions is a set of components extending Qt.
 @itemize
@@ -2410,7 +2567,7 @@ that can be only started once per user.
          (base32 "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0"))))
   (build-system gnu-build-system)
   (inputs
-   `(("qtbase" ,qtbase)
+   `(("qtbase" ,qtbase-5)
      ("qtsvg" ,qtsvg)
      ("qttools" ,qttools)))
   (arguments
@@ -2493,7 +2650,7 @@ different kinds of sliders, and much more.")
        ("sqlite" ,sqlite)
        ("fontconfig" ,fontconfig)
        ("libxrender" ,libxrender)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtlocation" ,qtlocation)
        ("qtmultimedia" ,qtmultimedia)
@@ -2558,7 +2715,7 @@ time Web content can be enhanced with native controls.")
     (native-inputs
      `(("qttools" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)))
     (home-page "https://filcuc.github.io/DOtherSide/index.html")
     (synopsis "C language library for creating bindings for the Qt QML language")
@@ -2596,7 +2753,7 @@ a binding language:
       (native-inputs
        `(("qttools" ,qttools)))
       (inputs
-       `(("qtbase" ,qtbase)))
+       `(("qtbase" ,qtbase-5)))
       (home-page "https://gitlab.com/mattia.basaglia/Qt-Color-Widgets")
       (synopsis "Color management widgets")
       (description "QtColorWidgets provides a Qt color dialog that is more
@@ -2625,7 +2782,7 @@ color-related widgets.")
            (sha256
             (base32 "0vp8lpxvd1nlp4liqrlvslpqrgfn0wpiwizzdsjbj22zzb8vxikc"))))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -2674,7 +2831,7 @@ color-related widgets.")
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("python-wrapper" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtxmlpatterns" ,qtxmlpatterns)))
     (arguments
      `(#:tests? #f
@@ -2724,7 +2881,7 @@ color-related widgets.")
      `(("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("clang-toolchain" ,clang-toolchain)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdatavis3d" ,qtdatavis3d)
        ("qtlocation" ,qtlocation)
        ("qtmultimedia" ,qtmultimedia)
@@ -2792,7 +2949,7 @@ generate Python bindings for your C or C++ code.")
     (inputs
      `(("python-pyside-2" ,python-pyside-2)
        ("python-shiboken-2" ,python-shiboken-2)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (native-inputs
      `(("python" ,python-wrapper)))
     (arguments
@@ -2836,7 +2993,7 @@ generate Python bindings for your C or C++ code.")
            (lambda* (#:key make-flags #:allow-other-keys)
              (apply invoke (cons "qmake" make-flags)))))))
     (native-inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qttools" ,qttools)))
     (inputs
      `(("glu" ,glu)))
@@ -2879,7 +3036,7 @@ being fully customizable and easy to extend.")
       `(("pkg-config" ,pkg-config)
         ("cmake" ,cmake)))
     (inputs
-      `(("qtbase" ,qtbase)
+      `(("qtbase" ,qtbase-5)
         ("coin3D" ,coin3D-4)))
     (home-page "https://github.com/coin3d/soqt")
     (synopsis "Qt GUI component toolkit library for Coin")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 3776e87ee3..fbbca3cbc8 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -136,12 +136,15 @@ useful in modems implemented with @dfn{digital signal processing} (DSP).")
               (base32 "1n6dbg13q8ga5qhg1yiszwly4jj0rxqr6f1xwm9waaly5z493xsd"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("autoconf" ,autoconf)))
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
     (inputs
      `(("fftwf" ,fftwf)
        ("libfec" ,libfec)))
     (arguments
-     `(#:phases
+     `(;; For reproducibility, disable use of SSE3, SSE4.1, etc.
+       #:configure-flags '("--enable-simdoverride")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'install 'delete-static-library
            (lambda* (#:key outputs #:allow-other-keys)
@@ -313,29 +316,33 @@ SoapySDR library.")
     (license license:expat)))
 
 (define-public soapyhackrf
-  (package
-    (name "soapyhackrf")
-    (version "0.3.3")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pothosware/SoapyHackRF")
-             (commit (string-append "soapy-hackrf-" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1awn89z462500gb3fjb7x61b1znkjri9n1d39bqfip1qk4s11pxc"))))
-    (build-system cmake-build-system)
-    (inputs
-     `(("hackrf" ,hackrf)
-       ("soapysdr" ,soapysdr)))
-    (arguments
-     `(#:tests? #f))  ; No test suite
-    (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
-    (synopsis "SoapySDR HackRF module")
-    (description
-     "This package provides HackRF devices support to the SoapySDR library.")
-    (license license:expat)))
+  ;; Use commit because some fixes are not in a release yet
+  ;; (last release was in 2018).
+  (let ((commit "8d2e7beebb4c451609cb0cee236fa4d20a0e28b1")
+        (revision "2"))
+    (package
+      (name "soapyhackrf")
+      (version (git-version "0.3.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pothosware/SoapyHackRF")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0l5890a240i1fan88jjdxaqswk3as410nlrv12a698fy9npqh4w4"))))
+      (build-system cmake-build-system)
+      (inputs
+       `(("hackrf" ,hackrf)
+         ("soapysdr" ,soapysdr)))
+      (arguments
+       `(#:tests? #f))  ; No test suite
+      (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
+      (synopsis "SoapySDR HackRF module")
+      (description
+       "This package provides HackRF devices support to the SoapySDR library.")
+      (license license:expat))))
 
 (define-public soapyrtlsdr
   (package
@@ -520,7 +527,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
        ("python-pygobject" ,python-pygobject)
        ("python-pyqt" ,python-pyqt)
        ("python-pyyaml" ,python-pyyaml)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qwt" ,qwt)
        ("sdl" ,sdl)
        ("volk" ,volk)
@@ -790,7 +797,7 @@ to the fix block above.
        ("log4cpp" ,log4cpp)
        ("portaudio" ,portaudio)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("volk" ,volk)))
     (arguments
@@ -1084,7 +1091,7 @@ users.")
        ("fftwf" ,fftwf)
        ("hamlib" ,wsjtx-hamlib)
        ("libusb" ,libusb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtserialport" ,qtserialport)))
     (arguments
@@ -1143,7 +1150,7 @@ weak-signal conditions.")
        ("fftwf" ,fftwf)
        ("hamlib" ,wsjtx-hamlib)
        ("libusb" ,libusb)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtserialport" ,qtserialport)))
     (arguments
@@ -1396,12 +1403,17 @@ NanoVNA vector network analyzers.")
        ("hamlib" ,hamlib)
        ("openjpeg" ,openjpeg)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("v4l-utils" ,v4l-utils)))
     (arguments
      `(#:tests? #f  ; No test suite.
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'fix-newer-hamlib-support
+           (lambda _
+             (substitute* "qsstv/rig/rigcontrol.cpp"
+               (("FILPATHLEN")
+                "HAMLIB_FILPATHLEN"))))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "qmake"
@@ -1500,7 +1512,7 @@ methods:
      `(("alsa-lib" ,alsa-lib)
        ("ncurses" ,ncurses)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      `(#:configure-flags '("--disable-static")
        #:phases
@@ -1629,7 +1641,7 @@ Compatible hardware/software:
        ("libpcap" ,libpcap)
        ("opus" ,opus)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtwebkit" ,qtwebkit)
        ("qwt" ,qwt)
@@ -1701,7 +1713,7 @@ receiver.")
        ("libusb" ,libusb)
        ("mpg123" ,mpg123)
        ("rtl-sdr" ,rtl-sdr)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtcharts" ,qtcharts)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
@@ -1937,7 +1949,7 @@ voice formats.")
        ("opencv" ,opencv)
        ("opus" ,opus)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtcharts" ,qtcharts)
        ("qtdeclarative" ,qtdeclarative)
        ("qtlocation" ,qtlocation)
@@ -1993,7 +2005,7 @@ various hardware.")
     (inputs
      `(("fftwf" ,fftwf)
        ("liquid-dsp" ,liquid-dsp)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://github.com/miek/inspectrum")
     (synopsis "Radio signal analyser")
     (description
@@ -2017,7 +2029,7 @@ software-defined radio receivers.")
     (build-system qt-build-system)
     (inputs
      `(("qcustomplot" ,qcustomplot)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("qtserialport" ,qtserialport)))
     (arguments
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index e9c390a1a0..76ed4df6e4 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -142,8 +142,8 @@ API.")
        (modify-phases %standard-phases
          (add-after 'extract-gemspec 'remove-unnecessary-dependencies
            (lambda _
-             ;; Remove the testing of compass, as it's use is deprecated, and
-             ;; it's unpackaged for Guix
+             ;; Remove the testing of compass, as its use is deprecated, and
+             ;; it's unpackaged for Guix.
              (substitute* "autoprefixer-rails.gemspec"
                ((".*%q<compass>.*") "\n")
                (("\"spec/compass_spec\\.rb\"\\.freeze, ") ""))
diff --git a/gnu/packages/rednotebook.scm b/gnu/packages/rednotebook.scm
index c7ece525e9..0c7e5994cd 100644
--- a/gnu/packages/rednotebook.scm
+++ b/gnu/packages/rednotebook.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,7 @@
 (define-public rednotebook
   (package
     (name "rednotebook")
-    (version "2.11.1")
+    (version "2.22")
     (source
      (origin
        (method git-fetch)
@@ -39,7 +40,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04c7a0wgmdl88v9386y1052c38ajbkryiwhqps5lx34d4g7r6hm1"))))
+        (base32 "11n970ad0j57vlll5j30ngkrfyil23v1b29ickbnblcldvjbgwa5"))))
     (build-system python-build-system)
     (arguments
      ;; Tests fail to find the "_" function.
diff --git a/gnu/packages/robotics.scm b/gnu/packages/robotics.scm
index fbf10be366..87dcc6f890 100644
--- a/gnu/packages/robotics.scm
+++ b/gnu/packages/robotics.scm
@@ -57,7 +57,7 @@
        `(("sdl2" ,sdl2)))
       (propagated-inputs
        ;; 'Viewer.h' includes 'QGLWidget'.
-       `(("qtbase" ,qtbase)                ;the viewer module needs Qt5 + MESA
+       `(("qtbase" ,qtbase-5)                ;the viewer module needs Qt5 + MESA
          ("mesa" ,mesa)))
       (synopsis "Robot simulator")
       (description
@@ -107,7 +107,7 @@ hundred times faster than real-time.")
        `(("dashel" ,dashel)
          ("enki" ,enki)
          ("protobuf" ,protobuf-3.5)               ;for logging
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtsvg" ,qtsvg)
          ("qttools" ,qttools)              ;for libQt5Help, needed by "studio"
          ("qtwebkit" ,qtwebkit)
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index a530c750d9..82afb01998 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -32,6 +32,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system cargo)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
@@ -379,7 +380,7 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
 (define-public ripgrep
   (package
     (name "ripgrep")
-    (version "12.1.1")
+    (version "13.0.0")
     (source
      (origin
        (method url-fetch)
@@ -388,14 +389,10 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1grfi0j9zczzipipc21lkdbqmd2lvy2wlqy65fy4sckqvix5amdr"))))
+         "1gv4imhjgxmyxaa996yshcjlakmrjw9pf4rycp90pq675cn9sz7k"))))
     (build-system cargo-build-system)
     (arguments
-     ;; XXX: Upgrading rust-bstr-0.2 from 0.2.12 to 0.2.15 introduced 11 test
-     ;; failures. Skip tests for now. Check again at next bstr or ripgrep
-     ;; upgrade.
-     `(#:tests? #false
-       #:cargo-inputs
+     `(#:cargo-inputs
        (("rust-bstr" ,rust-bstr-0.2)
         ("rust-clap" ,rust-clap-2)
         ("rust-grep" ,rust-grep-0.2)
@@ -409,7 +406,8 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
         ("rust-termcolor" ,rust-termcolor-1))
        #:cargo-development-inputs
        (("rust-serde" ,rust-serde-1)
-        ("rust-serde-derive" ,rust-serde-derive-1))
+        ("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-walkdir" ,rust-walkdir-2))
        #:modules ((ice-9 match)
                   (guix build cargo-build-system)
                   (guix build utils))
@@ -422,8 +420,8 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
              (match (find-files "target" "^rg\\.1$")
                ((manpage)
                 (install-file manpage (string-append
-                                        (assoc-ref outputs "out")
-                                        "/share/man/man1"))))
+                                       (assoc-ref outputs "out")
+                                       "/share/man/man1"))))
              #t)))
        #:features '("pcre2")))
     (native-inputs
@@ -589,42 +587,49 @@ gitignore rules.")
 (define-public tectonic
   (package
     (name "tectonic")
-    (version "0.4.1")
+    (version "0.6.4")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "tectonic" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "16fm2bfvfizrydmirzf0bhr1fidb5slcbvr6150and8yqr8jc4lf"))))
+        (base32 "1h6m0mxqd8580c82dknja7qqhkg1pbvwmw4rlzfr1ndfjrcbk3al"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
-       (("rust-app-dirs2" ,rust-app-dirs2-2)
-        ("rust-atty" ,rust-atty-0.2)
+     `(#:rust ,rust-1.52
+       #:cargo-build-flags '("--release" "--features" "external-harfbuzz")
+       #:cargo-inputs
+       (("rust-atty" ,rust-atty-0.2)
         ("rust-byte-unit" ,rust-byte-unit-4)
-        ("rust-cbindgen" ,rust-cbindgen-0.16)
-        ("rust-cc" ,rust-cc-1)
         ("rust-cfg-if" ,rust-cfg-if-1)
         ("rust-error-chain" ,rust-error-chain-0.12)
         ("rust-flate2" ,rust-flate2-1)
         ("rust-fs2" ,rust-fs2-0.4)
-        ("rust-headers" ,rust-headers-0.2)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-md-5" ,rust-md-5-0.9)
-        ("rust-pkg-config" ,rust-pkg-config-0.3)
-        ("rust-regex" ,rust-regex-1)
-        ("rust-reqwest" ,rust-reqwest-0.9)
+        ("rust-open" ,rust-open-1)
         ("rust-serde" ,rust-serde-1)
         ("rust-sha2" ,rust-sha2-0.9)
         ("rust-structopt" ,rust-structopt-0.3)
-        ("rust-tectonic-cfg-support" ,rust-tectonic-cfg-support-0.1)
+        ("rust-tectonic-bridge-core" ,rust-tectonic-bridge-core-0.2)
+        ("rust-tectonic-bundles" ,rust-tectonic-bundles-0.1)
+        ("rust-tectonic-docmodel" ,rust-tectonic-docmodel-0.1)
+        ("rust-tectonic-engine-bibtex" ,rust-tectonic-engine-bibtex-0.1)
+        ("rust-tectonic-engine-xdvipdfmx" ,rust-tectonic-engine-xdvipdfmx-0.1)
+        ("rust-tectonic-engine-xetex" ,rust-tectonic-engine-xetex-0.1)
+        ("rust-tectonic-errors" ,rust-tectonic-errors-0.2)
+        ("rust-tectonic-geturl" ,rust-tectonic-geturl-0.2)
+        ("rust-tectonic-io-base" ,rust-tectonic-io-base-0.3)
+        ("rust-tectonic-status-base" ,rust-tectonic-status-base-0.2)
         ("rust-tectonic-xdv" ,rust-tectonic-xdv-0.1)
+        ("rust-tectonic-xetex-layout" ,rust-tectonic-xetex-layout-0.1)
         ("rust-tempfile" ,rust-tempfile-3)
         ("rust-termcolor" ,rust-termcolor-1)
         ("rust-toml" ,rust-toml-0.5)
-        ("rust-vcpkg" ,rust-vcpkg-0.2)
+        ("rust-url" ,rust-url-2)
+        ("rust-watchexec" ,rust-watchexec-1)
         ("rust-zip" ,rust-zip-0.5))
        #:cargo-development-inputs
        (("rust-filetime" ,rust-filetime-0.2)
@@ -639,8 +644,7 @@ gitignore rules.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (doc (string-append out "/share/doc/" ,name "-" ,version)))
-               (copy-recursively "docs/src" doc)
-               #t))))))
+               (copy-recursively "docs/src" doc)))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -715,15 +719,14 @@ blanks grouped by language.")
 (define-public watchexec
   (package
     (name "watchexec")
-    (version "1.14.1")
+    (version "1.16.1")
     (source
      (origin
        (method url-fetch)
-       (uri (crate-uri "watchexec" version))
-       (file-name
-        (string-append name "-" version ".tar.gz"))
+       (uri (crate-uri "watchexec-cli" version))
+       (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1vqaa462sjpzi0crh12ixqc2wa5bblirc129pnj8jr8iz3xw3gvd"))))
+        (base32 "1wp424gzw1zmax5yy5gya15knl24rjx8gi9c7palvq807q3cnj65"))))
     (build-system cargo-build-system)
     (arguments
      `(#:phases
@@ -734,46 +737,157 @@ blanks grouped by language.")
                     (zsh (string-append out "/share/zsh/site-functions/_watchexec"))
                     (doc (string-append out "/share/doc/watchexec-" ,version)))
                (mkdir-p (dirname zsh))
-               (copy-file "completions/zsh" zsh)
-               (install-file "README.md" doc)
-               #t))))
+               ;; FIXME: The crates.io source does not provide zsh
+               ;; completions.  But the GitHub source does not compile.
+               ;;
+               ;; (copy-file "completions/zsh" zsh)
+               (install-file "README.md" doc)))))
        #:cargo-inputs
-       (("rust-embed-resource" ,rust-embed-resource-1)
-        ("rust-derive-builder" ,rust-derive-builder-0.9)
-        ("rust-env-logger" ,rust-env-logger-0.7)
-        ("rust-glob" ,rust-glob-0.3)
-        ("rust-globset" ,rust-globset-0.4)
-        ("rust-lazy-static" ,rust-lazy-static-1)
+       (("rust-clap" ,rust-clap-2)
+        ("rust-embed-resource" ,rust-embed-resource-1)
+        ("rust-env-logger" ,rust-env-logger-0.8)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nix" ,rust-nix-0.17)
-        ("rust-notify" ,rust-notify-4)
-        ("rust-walkdir" ,rust-walkdir-2))))
+        ("rust-watchexec" ,rust-watchexec-1))
+       #:cargo-development-inputs
+       (("rust-assert-cmd" ,rust-assert-cmd-1)
+        ("rust-insta" ,rust-insta-1))))
     (home-page "https://github.com/watchexec/watchexec")
     (synopsis "Executes commands in response to file modifications")
     (description
-     "@command{watchexec} is a simple, standalone tool that watches a path and runs
-a command whenever it detects modifications.
-
-Example use cases:
-@itemize @bullet
-@item Automatically run unit tests
-@item Run linters/syntax checkers
-@end itemize
-
-Features:
-@itemize @bullet
-@item Coalesces multiple file system events into one, for editors that
-use swap/backup files during saving
-@item By default, uses @code{.gitignore} and @code{.ignore} to determine which
-files to ignore notifications for
-@item Supports watching files with a specific extension
-@item Supports filtering/ignoring events based on glob patterns
-@item Launches child processes in a new process group
-@item Sets environment variables that allow the executed program to learn
-the details of how it was triggered.
-@end itemize")
+     "@command{watchexec} is a simple, standalone tool that watches a path and
+runs a command whenever it detects modifications.")
     (license license:asl2.0)))
 
+(define-public rust-analyzer
+  (package
+    (name "rust-analyzer")
+    (version "2021-06-07")
+    (source
+     (origin
+       ;; The crate at "crates.io" is empty.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rust-analyzer/rust-analyzer")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "06bc3s5kjwpyr2cq79p0306a9bqp3xp928d750ybby9npq2dvj3z"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:rust ,rust-1.52
+       #:install-source? #f             ; virtual manifest
+       #:cargo-test-flags
+       '("--release" "--"
+         "--skip=tests::test_version_check"         ;; It need rustc's version
+         ;; FIXME: Guix's rust not install source in %out/lib/rustlib/src/rust
+         ;; so "can't load standard library from sysroot"
+         "--skip=tests::test_loading_rust_analyzer"
+         "--skip=tidy::cargo_files_are_tidy"        ;; Not need
+         "--skip=tidy::check_licenses"              ;; It run cargo metadata.
+         "--skip=tidy::check_merge_commits"         ;; It run git rev-list.
+         "--skip=tidy::check_code_formatting"       ;; Need rustfmt as cargo fmt
+         "--skip=tidy::generate_grammar"            ;; Same
+         "--skip=tidy::generate_assists_tests")     ;; Same
+       #:cargo-inputs
+       (("rust-always-assert" ,rust-always-assert-0.1)
+        ("rust-anyhow" ,rust-anyhow-1)
+        ("rust-anymap" ,rust-anymap-0.12)
+        ("rust-arrayvec" ,rust-arrayvec-0.7)
+        ("rust-backtrace" ,rust-backtrace-0.3)
+        ("rust-cargo-metadata" ,rust-cargo-metadata-0.13)
+        ("rust-cfg-if" ,rust-cfg-if-1)
+        ("rust-chalk-ir" ,rust-chalk-ir-0.68)
+        ("rust-chalk-recursive" ,rust-chalk-recursive-0.68)
+        ("rust-chalk-solve" ,rust-chalk-solve-0.68)
+        ("rust-countme" ,rust-countme-2)
+        ("rust-cov-mark" ,rust-cov-mark-1)
+        ("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
+        ("rust-dashmap" ,rust-dashmap-4)
+        ("rust-dissimilar" ,rust-dissimilar-1)
+        ("rust-dot" ,rust-dot-0.1)
+        ("rust-drop-bomb" ,rust-drop-bomb-0.1)
+        ("rust-either" ,rust-either-1)
+        ("rust-ena" ,rust-ena-0.14)
+        ("rust-env-logger" ,rust-env-logger-0.8)
+        ("rust-expect-test" ,rust-expect-test-1)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-fst" ,rust-fst-0.4)
+        ("rust-home" ,rust-home-0.5)
+        ("rust-indexmap" ,rust-indexmap-1)
+        ("rust-itertools" ,rust-itertools-0.10)
+        ("rust-jod-thread" ,rust-jod-thread-0.1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-libloading" ,rust-libloading-0.7)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-lsp-server" ,rust-lsp-server-0.5)
+        ("rust-lsp-types" ,rust-lsp-types-0.89)
+        ("rust-memmap2" ,rust-memmap2-0.2)
+        ("rust-mimalloc" ,rust-mimalloc-0.1)
+        ("rust-miow" ,rust-miow-0.3)
+        ("rust-notify" ,rust-notify-5)
+        ("rust-object" ,rust-object-0.24)
+        ("rust-once-cell" ,rust-once-cell-1)
+        ("rust-oorandom" ,rust-oorandom-11.1)
+        ("rust-parking-lot" ,rust-parking-lot-0.11)
+        ("rust-perf-event" ,rust-perf-event-0.4)
+        ("rust-proc-macro2" ,rust-proc-macro2-1)
+        ("rust-pulldown-cmark" ,rust-pulldown-cmark-0.8)
+        ("rust-pulldown-cmark-to-cmark" ,rust-pulldown-cmark-to-cmark-6)
+        ("rust-quote" ,rust-quote-1)
+        ("rust-rayon" ,rust-rayon-1)
+        ("rust-rowan" ,rust-rowan-0.13)
+        ("rust-rustc-ap-rustc-lexer" ,rust-rustc-ap-rustc-lexer-721)
+        ("rust-rustc-hash" ,rust-rustc-hash-1)
+        ("rust-salsa" ,rust-salsa-0.17)
+        ("rust-scoped-tls" ,rust-scoped-tls-1)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-serde-path-to-error" ,rust-serde-path-to-error-0.1)
+        ("rust-smallvec" ,rust-smallvec-1)
+        ("rust-smol-str" ,rust-smol-str-0.1)
+        ("rust-snap" ,rust-snap-1)
+        ("rust-text-size" ,rust-text-size-1)
+        ("rust-threadpool" ,rust-threadpool-1)
+        ("rust-tikv-jemalloc-ctl" ,rust-tikv-jemalloc-ctl-0.4)
+        ("rust-tikv-jemallocator" ,rust-tikv-jemallocator-0.4)
+        ("rust-tracing" ,rust-tracing-0.1)
+        ("rust-tracing-subscriber" ,rust-tracing-subscriber-0.2)
+        ("rust-tracing-tree" ,rust-tracing-tree-0.1)
+        ("rust-ungrammar" ,rust-ungrammar-1)
+        ("rust-url" ,rust-url-2)
+        ("rust-walkdir" ,rust-walkdir-2)
+        ("rust-winapi" ,rust-winapi-0.3)
+        ("rust-write-json" ,rust-write-json-0.1)
+        ("rust-xflags" ,rust-xflags-0.2)
+        ("rust-xshell" ,rust-xshell-0.1))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-build-failures
+           (lambda _
+             (chmod ".cargo/config" 420)
+             #t))
+         (add-before 'check 'fix-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((bash (string-append "#!" (which "bash"))))
+               (with-directory-excursion "crates/syntax/test_data/lexer/ok"
+                 (substitute* "0010_single_line_comments.txt"
+                   (("SHEBANG 19")
+                    (string-append "SHEBANG "
+                                   (number->string (string-length bash))))
+                   (("#!/usr/bin/env bash") bash))))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "target/release/rust-analyzer"
+                           (string-append (assoc-ref outputs "out")
+                                          "/bin")))))))
+    (home-page "https://rust-analyzer.github.io/")
+    (synopsis "Experimental Rust compiler front-end for IDEs")
+    (description "Rust-analyzer is a modular compiler frontend for the Rust
+language.  It is a part of a larger rls-2.0 effort to create excellent IDE
+support for Rust.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-cargo-c
   (package
     (name "rust-cargo-c")
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index 1a267be13c..a9372735bf 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -87,7 +87,7 @@
        ("podofo" ,podofo)
        ("poppler" ,poppler)
        ("python" ,python)               ; need Python library
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("zlib" ,zlib)))
     (native-inputs
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 8e4190e533..2f99407b94 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
@@ -46,6 +46,7 @@
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
@@ -88,10 +89,47 @@ Code generation is not required to read or write data files nor to use or
 implement RPC protocols.")
     (license license:asl2.0)))
 
+(define-public avro-cpp-1.9-for-irods
+  (package
+    (inherit avro-cpp-1.9)
+    (properties `((hidden? . #true)))
+    (arguments
+     `(#:configure-flags
+       '("-DCMAKE_CXX_COMPILER=clang++"
+         "-DCMAKE_CXX_FLAGS=-stdlib=libc++"
+         "-DCMAKE_EXE_LINKER_FLAGS=-lc++abi -lz")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'chdir
+           (lambda _ (chdir "lang/c++")))
+         (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs  "gcc")))
+               (setenv "CPLUS_INCLUDE_PATH"
+                       (string-join
+                        (cons* (string-append (assoc-ref inputs "libcxx+libcxxabi")
+                                              "/include/c++/v1")
+                               ;; Hide GCC's C++ headers so that they do not interfere with
+                               ;; the Clang headers.
+                               (delete (string-append gcc "/include/c++")
+                                       (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                     #\:)))
+                        ":"))
+               (format #true
+                       "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
+                       (getenv "CPLUS_INCLUDE_PATH"))))))))
+    (inputs
+     `(("boost" ,boost-for-irods)
+       ("clang" ,clang-toolchain-6)
+       ("libcxx+libcxxabi" ,libcxx+libcxxabi-6)
+       ("libcxxabi" ,libcxxabi-6)
+       ("snappy" ,snappy-with-clang6)
+       ("zlib" ,zlib)))))
+
 (define-public cereal
   (package
     (name "cereal")
-    (version "1.2.1")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
@@ -100,7 +138,8 @@ implement RPC protocols.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1vxkrsnxkiblzi1z61vfix167c184fy868sgwj2dxxgbgjcq2nrh"))))
+        (base32
+         "0hc8wh9dwpc1w1zf5lfss4vg5hmgpblqxbrpp1rggicpx9ar831p"))))
     (build-system cmake-build-system)
     (arguments
      `(;; The only included tests are portability tests requiring
@@ -114,9 +153,10 @@ implement RPC protocols.")
          (replace 'build
           (lambda _
             (substitute* "doc/doxygen.in"
+              (("@CMAKE_CURRENT_BINARY_DIR@") ".")
               (("@CMAKE_CURRENT_SOURCE_DIR@") "."))
-            (invoke "doxygen" "doc/doxygen.in")
-            #t))
+            (with-directory-excursion "doc"
+              (invoke "doxygen" "doxygen.in"))))
          ;; There is no "install" target, so we have to provide our own
          ;; "install" phase.
          (replace 'install
@@ -127,8 +167,7 @@ implement RPC protocols.")
               (mkdir-p doc)
               (mkdir-p include)
               (copy-recursively "include/cereal" include)
-              (copy-recursively "doc/html" doc))
-            #t)))))
+              (copy-recursively "doc/html" doc)))))))
     (native-inputs
      `(("doxygen" ,doxygen)))
     (home-page "https://uscilab.github.io/cereal/")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 5c90d8b010..44a77e1de5 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -78,14 +78,14 @@
 (define-public dash
   (package
     (name "dash")
-    (version "0.5.11.3")
+    (version "0.5.11.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "http://gondor.apana.org.au/~herbert/dash/files/"
                            "dash-" version ".tar.gz"))
        (sha256
-        (base32 "0amwphfal2rnfa63f7qd4i9m4ckv0gm3j6jlxkmfi9x6ddkz3fb2"))
+        (base32 "13g06zqfy4n7jkrbb5l1vw0xcnjvq76i16al8fjc5g33afxbf5af"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -956,16 +956,16 @@ files and text.")
 (define-public nushell
   (package
     (name "nushell")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/nushell/nushell.git")
+             (url "https://github.com/nushell/nushell")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1dpbc6m0pxizkh4r02nw1i1fx9v43llylqnd28naqkklwc15pb2w"))))
+        (base32 "1wj054rzv88ys4ask4zp7crrw0dxrck8svlj3i16qqd8x5dnyhqs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #false                  ;missing files
@@ -976,40 +976,40 @@ files and text.")
         ("rust-futures" ,rust-futures-0.3)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nu-cli" ,rust-nu-cli-0.31)
-        ("rust-nu-command" ,rust-nu-command-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-engine" ,rust-nu-engine-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-parser" ,rust-nu-parser-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
-        ("rust-nu-plugin-binaryview" ,rust-nu-plugin-binaryview-0.31)
-        ("rust-nu-plugin-chart" ,rust-nu-plugin-chart-0.31)
-        ("rust-nu-plugin-fetch" ,rust-nu-plugin-fetch-0.31)
-        ("rust-nu-plugin-from-bson" ,rust-nu-plugin-from-bson-0.31)
-        ("rust-nu-plugin-from-sqlite" ,rust-nu-plugin-from-sqlite-0.31)
-        ("rust-nu-plugin-inc" ,rust-nu-plugin-inc-0.31)
-        ("rust-nu-plugin-match" ,rust-nu-plugin-match-0.31)
-        ("rust-nu-plugin-post" ,rust-nu-plugin-post-0.31)
-        ("rust-nu-plugin-ps" ,rust-nu-plugin-ps-0.31)
-        ("rust-nu-plugin-query-json" ,rust-nu-plugin-query-json-0.31)
-        ("rust-nu-plugin-s3" ,rust-nu-plugin-s3-0.31)
-        ("rust-nu-plugin-selector" ,rust-nu-plugin-selector-0.31)
-        ("rust-nu-plugin-start" ,rust-nu-plugin-start-0.31)
-        ("rust-nu-plugin-sys" ,rust-nu-plugin-sys-0.31)
-        ("rust-nu-plugin-textview" ,rust-nu-plugin-textview-0.31)
-        ("rust-nu-plugin-to-bson" ,rust-nu-plugin-to-bson-0.31)
-        ("rust-nu-plugin-to-sqlite" ,rust-nu-plugin-to-sqlite-0.31)
-        ("rust-nu-plugin-tree" ,rust-nu-plugin-tree-0.31)
-        ("rust-nu-plugin-xpath" ,rust-nu-plugin-xpath-0.31)
+        ("rust-nu-cli" ,rust-nu-cli-0.32)
+        ("rust-nu-command" ,rust-nu-command-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-engine" ,rust-nu-engine-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-parser" ,rust-nu-parser-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
+        ("rust-nu-plugin-binaryview" ,rust-nu-plugin-binaryview-0.32)
+        ("rust-nu-plugin-chart" ,rust-nu-plugin-chart-0.32)
+        ("rust-nu-plugin-fetch" ,rust-nu-plugin-fetch-0.32)
+        ("rust-nu-plugin-from-bson" ,rust-nu-plugin-from-bson-0.32)
+        ("rust-nu-plugin-from-sqlite" ,rust-nu-plugin-from-sqlite-0.32)
+        ("rust-nu-plugin-inc" ,rust-nu-plugin-inc-0.32)
+        ("rust-nu-plugin-match" ,rust-nu-plugin-match-0.32)
+        ("rust-nu-plugin-post" ,rust-nu-plugin-post-0.32)
+        ("rust-nu-plugin-ps" ,rust-nu-plugin-ps-0.32)
+        ("rust-nu-plugin-query-json" ,rust-nu-plugin-query-json-0.32)
+        ("rust-nu-plugin-s3" ,rust-nu-plugin-s3-0.32)
+        ("rust-nu-plugin-selector" ,rust-nu-plugin-selector-0.32)
+        ("rust-nu-plugin-start" ,rust-nu-plugin-start-0.32)
+        ("rust-nu-plugin-sys" ,rust-nu-plugin-sys-0.32)
+        ("rust-nu-plugin-textview" ,rust-nu-plugin-textview-0.32)
+        ("rust-nu-plugin-to-bson" ,rust-nu-plugin-to-bson-0.32)
+        ("rust-nu-plugin-to-sqlite" ,rust-nu-plugin-to-sqlite-0.32)
+        ("rust-nu-plugin-tree" ,rust-nu-plugin-tree-0.32)
+        ("rust-nu-plugin-xpath" ,rust-nu-plugin-xpath-0.32)
         ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.4))
        #:cargo-development-inputs
        (("rust-dunce" ,rust-dunce-1)
         ("rust-hamcrest2" ,rust-hamcrest2-0.3)
-        ("rust-nu-test-support" ,rust-nu-test-support-0.31)
+        ("rust-nu-test-support" ,rust-nu-test-support-0.32)
         ("rust-serial-test" ,rust-serial-test-0.5))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1033,17 +1033,17 @@ directory.  These values can be piped through a series of steps, in a series
 of commands called a ``pipeline''.")
     (license license:expat)))
 
-(define-public rust-nu-ansi-term-0.31
+(define-public rust-nu-ansi-term-0.32
   (package
     (name "rust-nu-ansi-term")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-ansi-term" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "193nwg7j3p7mw2282vsx8ylfxg0wyydrgxd78ph3rqfqi83468n6"))))
+        (base32 "1dz9gf2rbka2v0rz2yh6dw8qy3qmbq630scs4grpq0afvpnwqb8p"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1057,36 +1057,24 @@ of commands called a ``pipeline''.")
 underline).")
     (license license:expat)))
 
-(define-public rust-nu-ansi-term-0.29
-  (package
-    (inherit rust-nu-ansi-term-0.31)
-    (name "rust-nu-ansi-term")
-    (version "0.29.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (crate-uri "nu-ansi-term" version))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32 "0zlcma4kg6rsfp5sgfp3yy717bdrn9nq32rdi2nabpwg3qa9mmkb"))))))
-
-(define-public rust-nu-cli-0.31
+(define-public rust-nu-cli-0.32
   (package
     (name "rust-nu-cli")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-cli" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1kg68san8p3nnhhfsld21hv5s6dx1kadlsc71l661p4f8pjcqp3r"))))
+        (base32 "1cycw1g7qzy9lhj2vhaz4sh02r2dn5mxv42kdv2iszyvr4hb150l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-arboard" ,rust-arboard-1)
-        ("rust-async-recursion" ,rust-async-recursion-0.3)
+        ("rust-async-recursion"
+         ,rust-async-recursion-0.3)
         ("rust-async-trait" ,rust-async-trait-0.1)
         ("rust-base64" ,rust-base64-0.13)
         ("rust-bigdecimal" ,rust-bigdecimal-0.2)
@@ -1096,11 +1084,13 @@ underline).")
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-chrono-tz" ,rust-chrono-tz-0.5)
         ("rust-clap" ,rust-clap-2)
-        ("rust-codespan-reporting" ,rust-codespan-reporting-0.11)
+        ("rust-codespan-reporting"
+         ,rust-codespan-reporting-0.11)
         ("rust-csv" ,rust-csv-1)
         ("rust-ctrlc" ,rust-ctrlc-3)
         ("rust-derive-new" ,rust-derive-new-0.5)
-        ("rust-directories-next" ,rust-directories-next-2)
+        ("rust-directories-next"
+         ,rust-directories-next-2)
         ("rust-dirs-next" ,rust-dirs-next-2)
         ("rust-dtparse" ,rust-dtparse-1)
         ("rust-dunce" ,rust-dunce-1)
@@ -1121,28 +1111,30 @@ underline).")
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-log" ,rust-log-0.4)
         ("rust-meval" ,rust-meval-0.2)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-command" ,rust-nu-command-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-engine" ,rust-nu-engine-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-json" ,rust-nu-json-0.31)
-        ("rust-nu-parser" ,rust-nu-parser-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-stream" ,rust-nu-stream-0.31)
-        ("rust-nu-table" ,rust-nu-table-0.31)
-        ("rust-nu-test-support" ,rust-nu-test-support-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-command" ,rust-nu-command-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-engine" ,rust-nu-engine-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-json" ,rust-nu-json-0.32)
+        ("rust-nu-parser" ,rust-nu-parser-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-stream" ,rust-nu-stream-0.32)
+        ("rust-nu-table" ,rust-nu-table-0.32)
+        ("rust-nu-test-support"
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-format" ,rust-num-format-0.4)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
         ("rust-ptree" ,rust-ptree-0.3)
-        ("rust-query-interface" ,rust-query-interface-0.3)
+        ("rust-query-interface"
+         ,rust-query-interface-0.3)
         ("rust-quick-xml" ,rust-quick-xml-0.21)
         ("rust-quickcheck" ,rust-quickcheck-1)
         ("rust-quickcheck-macros" ,rust-quickcheck-macros-1)
@@ -1150,20 +1142,22 @@ underline).")
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-roxmltree" ,rust-roxmltree-0.14)
-        ("rust-rusqlite" ,rust-rusqlite-0.24)
+        ("rust-rusqlite" ,rust-rusqlite-0.25)
         ("rust-rust-embed" ,rust-rust-embed-5)
         ("rust-rustyline" ,rust-rustyline-8)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-bytes" ,rust-serde-bytes-0.11)
         ("rust-serde-ini" ,rust-serde-ini-0.2)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-serde-urlencoded" ,rust-serde-urlencoded-0.7)
+        ("rust-serde-urlencoded"
+         ,rust-serde-urlencoded-0.7)
         ("rust-serde-yaml" ,rust-serde-yaml-0.8)
         ("rust-sha2" ,rust-sha2-0.9)
         ("rust-shadow-rs" ,rust-shadow-rs-0.5)
         ("rust-shadow-rs" ,rust-shadow-rs-0.5)
         ("rust-shellexpand" ,rust-shellexpand-2)
-        ("rust-strip-ansi-escapes" ,rust-strip-ansi-escapes-0.1)
+        ("rust-strip-ansi-escapes"
+         ,rust-strip-ansi-escapes-0.1)
         ("rust-sxd-document" ,rust-sxd-document-0.3)
         ("rust-sxd-xpath" ,rust-sxd-xpath-0.4)
         ("rust-tempfile" ,rust-tempfile-3)
@@ -1174,7 +1168,8 @@ underline).")
         ("rust-toml" ,rust-toml-0.5)
         ("rust-trash" ,rust-trash-1)
         ("rust-umask" ,rust-umask-1)
-        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1)
+        ("rust-unicode-segmentation"
+         ,rust-unicode-segmentation-1)
         ("rust-url" ,rust-url-2)
         ("rust-users" ,rust-users-0.11)
         ("rust-uuid" ,rust-uuid-0.8)
@@ -1185,17 +1180,17 @@ underline).")
     (description "CLI for nushell")
     (license license:expat)))
 
-(define-public rust-nu-command-0.31
+(define-public rust-nu-command-0.32
   (package
     (name "rust-nu-command")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-command" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "079izj7fwdrdi9zi2260gkbqma7bm3lnx57hdlcslyg41mxka44c"))))
+        (base32 "0dicwzw60n4nfsmqxa9b1d9gnaxip0d6irsw15dyydnnpmsyvr01"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1237,26 +1232,27 @@ underline).")
         ("rust-md5" ,rust-md5-0.7)
         ("rust-meval" ,rust-meval-0.2)
         ("rust-minus" ,rust-minus-3)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-engine" ,rust-nu-engine-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-json" ,rust-nu-json-0.31)
-        ("rust-nu-parser" ,rust-nu-parser-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-stream" ,rust-nu-stream-0.31)
-        ("rust-nu-table" ,rust-nu-table-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-engine" ,rust-nu-engine-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-json" ,rust-nu-json-0.32)
+        ("rust-nu-parser" ,rust-nu-parser-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-stream" ,rust-nu-stream-0.32)
+        ("rust-nu-table" ,rust-nu-table-0.32)
         ("rust-nu-test-support"
-         ,rust-nu-test-support-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-format" ,rust-num-format-0.4)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-parking-lot" ,rust-parking-lot-0.11)
         ("rust-pin-utils" ,rust-pin-utils-0.1)
+        ("rust-polars" ,rust-polars-0.13)
         ("rust-ptree" ,rust-ptree-0.3)
         ("rust-query-interface"
          ,rust-query-interface-0.3)
@@ -1265,7 +1261,7 @@ underline).")
         ("rust-rayon" ,rust-rayon-1)
         ("rust-regex" ,rust-regex-1)
         ("rust-roxmltree" ,rust-roxmltree-0.14)
-        ("rust-rusqlite" ,rust-rusqlite-0.24)
+        ("rust-rusqlite" ,rust-rusqlite-0.25)
         ("rust-rust-embed" ,rust-rust-embed-5)
         ("rust-rustyline" ,rust-rustyline-8)
         ("rust-serde" ,rust-serde-1)
@@ -1302,17 +1298,17 @@ underline).")
     (description "CLI for nushell")
     (license license:expat)))
 
-(define-public rust-nu-data-0.31
+(define-public rust-nu-data-0.32
   (package
     (name "rust-nu-data")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-data" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0sdl6s7j4bx03lmc65x3mnyn75mckq4gb96kr46a0g74mmds1j73"))))
+        (base32 "0qgv84cxm90vr2d25c304l68z5h6j9x7w9mz6a2j18vzhnnqir8l"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1328,14 +1324,14 @@ underline).")
         ("rust-getset" ,rust-getset-0.1)
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-table" ,rust-nu-table-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-table" ,rust-nu-table-0.32)
         ("rust-nu-test-support"
-         ,rust-nu-test-support-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-format" ,rust-num-format-0.4)
         ("rust-num-traits" ,rust-num-traits-0.2)
@@ -1343,6 +1339,7 @@ underline).")
          ,rust-query-interface-0.3)
         ("rust-serde" ,rust-serde-1)
         ("rust-sha2" ,rust-sha2-0.9)
+        ("rust-sys-locale" ,rust-sys-locale-0.1)
         ("rust-toml" ,rust-toml-0.5)
         ("rust-users" ,rust-users-0.11))))
     (home-page "https://www.nushell.sh")
@@ -1350,17 +1347,17 @@ underline).")
     (description "CLI for nushell")
     (license license:expat)))
 
-(define-public rust-nu-engine-0.31
+(define-public rust-nu-engine-0.32
   (package
     (name "rust-nu-engine")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-engine" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "10jw88xiv7hnvrngjfsih147zipnxcmax3a0az064cnf00kx8bkl"))))
+        (base32 "0wzlcx53hc9s5djl9lv44j6b7fz1g03spa0f29ndjjb1ckmhqk2s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1389,15 +1386,17 @@ underline).")
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-parser" ,rust-nu-parser-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-stream" ,rust-nu-stream-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-parser" ,rust-nu-parser-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-stream" ,rust-nu-stream-0.32)
+        ("rust-nu-test-support"
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-format" ,rust-num-format-0.4)
         ("rust-num-traits" ,rust-num-traits-0.2)
@@ -1417,17 +1416,17 @@ underline).")
     (description "Core commands for nushell")
     (license license:expat)))
 
-(define-public rust-nu-errors-0.31
+(define-public rust-nu-errors-0.32
   (package
     (name "rust-nu-errors")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-errors" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0hkkx66gcj6nail9r65yf92zxz8f8mdxv4y8by3vijqmv22kshgb"))))
+        (base32 "04pgg4v1q5np7c99jvbfkbkwwr9jdrn99805v774vpddw40psbn9"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1438,8 +1437,8 @@ underline).")
         ("rust-derive-new" ,rust-derive-new-0.5)
         ("rust-getset" ,rust-getset-0.1)
         ("rust-glob" ,rust-glob-0.3)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde" ,rust-serde-1)
@@ -1451,17 +1450,17 @@ underline).")
     (description "Core error subsystem for Nushell")
     (license license:expat)))
 
-(define-public rust-nu-json-0.31
+(define-public rust-nu-json-0.32
   (package
     (name "rust-nu-json")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1jr0314xhz2jfksr6wiq1x30dh1k63bx92li9ls1k3nw6s4pjdlv"))))
+        (base32 "1ia7sr7z1vna9mxb079vipc0wc2kky4l13pkpiq881h0nxcik3b3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1477,17 +1476,17 @@ underline).")
     (description "This package is a fork of @code{serde-hjson}.")
     (license license:expat)))
 
-(define-public rust-nu-parser-0.31
+(define-public rust-nu-parser-0.32
   (package
     (name "rust-nu-parser")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-parser" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0apiq41vvaglxbfhf8mil0amqjsm3lx00kcjshjlsxmpp6gyc951"))))
+        (base32 "0q00pbajyv23w2qrw2c07zyfwij2dxkbnk7nxjiwh2igyzvb518a"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1502,11 +1501,11 @@ underline).")
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-itertools" ,rust-itertools-0.10)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-nu-test-support"
-         ,rust-nu-test-support-0.31)
+         ,rust-nu-test-support-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde" ,rust-serde-1)
@@ -1517,10 +1516,10 @@ underline).")
     (description "Nushell parser")
     (license license:expat)))
 
-(define-public rust-nu-plugin-0.31
+(define-public rust-nu-plugin-0.32
   (package
     (name "rust-nu-plugin")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
@@ -1528,19 +1527,19 @@ underline).")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "108sak4c0kym8pmgdja06yzfb45q2r67b5xy1lb3pf5067rcl0sn"))))
+        (base32 "0nr9b2xxa3as0fm7chpwgw92ri4aj5vdk7ci9806ach92y7dmbqr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bigdecimal" ,rust-bigdecimal-0.2)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-nu-test-support"
-         ,rust-nu-test-support-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-serde" ,rust-serde-1)
         ("rust-serde-json" ,rust-serde-json-1))))
@@ -1549,17 +1548,17 @@ underline).")
     (description "Nushell Plugin")
     (license license:expat)))
 
-(define-public rust-nu-plugin-binaryview-0.31
+(define-public rust-nu-plugin-binaryview-0.32
   (package
     (name "rust-nu-plugin-binaryview")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_binaryview" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "15ifd9j9r131912mmschd9w4br82h305rabz62lc1x2aw5qdp094"))))
+        (base32 "0af5vpww0awpbc20l25z6yrbd613q54i3m7cln9qj9waknhhgr8s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1567,12 +1566,12 @@ underline).")
        (("rust-crossterm" ,rust-crossterm-0.19)
         ("rust-image" ,rust-image-0.22)
         ("rust-neso" ,rust-neso-0.5)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-pretty-hex" ,rust-nu-pretty-hex-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-rawkey" ,rust-rawkey-0.1))))
     (home-page "https://www.nushell.sh")
     (synopsis "Binary viewer plugin for Nushell")
@@ -1580,29 +1579,29 @@ underline).")
      "This package provides a binary viewer plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-chart-0.31
+(define-public rust-nu-plugin-chart-0.32
   (package
     (name "rust-nu-plugin-chart")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_chart" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "02a0gyibbmkhzbqasx648jwhw6g4056ngsjdnh54wfk9mxzwb37v"))))
+        (base32 "1xf6nf097mbrcjir45kynmk55zap987v8kz3gvljfiymx7mylilm"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-crossterm" ,rust-crossterm-0.19)
-        ("rust-nu-cli" ,rust-nu-cli-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-cli" ,rust-nu-cli-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-tui" ,rust-tui-0.14))))
     (home-page "https://www.nushell.sh")
     (synopsis "Plugin to display charts")
@@ -1610,17 +1609,17 @@ underline).")
      "This package provides a plugin to display charts in Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-fetch-0.31
+(define-public rust-nu-plugin-fetch-0.32
   (package
     (name "rust-nu-plugin-fetch")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_fetch" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0w6739dznxympqv775621r5mgfi5f7i56s6irgpmfpzkvl4xvk53"))))
+        (base32 "0p2cmliwlz1wqr40276qvbdhgiq3dqwijhc3m30cdaarj2lg3s7b"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -1628,10 +1627,10 @@ underline).")
        (("rust-base64" ,rust-base64-0.13)
         ("rust-futures" ,rust-futures-0.3)
         ("rust-mime" ,rust-mime-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-surf" ,rust-surf-2)
         ("rust-url" ,rust-url-2))))
     (home-page "https://www.nushell.sh")
@@ -1639,28 +1638,28 @@ underline).")
     (description "This package provides a URL fetch plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-from-bson-0.31
+(define-public rust-nu-plugin-from-bson-0.32
   (package
     (name "rust-nu-plugin-from-bson")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_from_bson" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "03v3r77c7ghg1asjllvipvfffilx2l9wqb38qzd8rp7hb9dj01g6"))))
+        (base32 "19rn6r7m3sydkrjcql0sp5shypxhwspqny3l8qj05k4r9ykjrw9f"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bigdecimal" ,rust-bigdecimal-0.2)
         ("rust-bson" ,rust-bson-0.14)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://www.nushell.sh")
     (synopsis "Converter plugin to the bson format for Nushell")
@@ -1669,29 +1668,29 @@ underline).")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-from-sqlite-0.31
+(define-public rust-nu-plugin-from-sqlite-0.32
   (package
     (name "rust-nu-plugin-from-sqlite")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_from_sqlite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gs88cbs55hx4vjbr286b8xckigfgm2908aaa87dv87bhxfmjqim"))))
+        (base32 "115s68yf30kgxq1qwwn4d2rr566a6bl2vgq2qific3anlhplqlfs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bigdecimal" ,rust-bigdecimal-0.2)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rusqlite" ,rust-rusqlite-0.24)
+        ("rust-rusqlite" ,rust-rusqlite-0.25)
         ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://www.nushell.sh")
     (synopsis "Converter plugin to the bson format for Nushell")
@@ -1700,28 +1699,28 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-inc-0.31
+(define-public rust-nu-plugin-inc-0.32
   (package
     (name "rust-nu-plugin-inc")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_inc" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0qfi48rh813vbmlaj0idkkcjy6dkx0jz7k023dwdf47v0m6c34hq"))))
+        (base32 "1pla6640qm9bj2hya5gg43g5h990hfbgjbrbk93sqghi70r32yd7"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+       (("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-nu-test-support"
-         ,rust-nu-test-support-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+         ,rust-nu-test-support-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-semver" ,rust-semver-0.11))))
     (home-page "https://www.nushell.sh")
     (synopsis "Version incrementer plugin for Nushell")
@@ -1730,25 +1729,25 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-match-0.31
+(define-public rust-nu-plugin-match-0.32
   (package
     (name "rust-nu-plugin-match")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_match" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "175wcqjzpchhcmgpwk15xhbrbq63wzcpgldrz5m97z5qirwgskpj"))))
+        (base32 "0axx77bjpz0yk9nqjx60185ndq4xlc5srby8jl9yvvnd8dhjg3zr"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+       (("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-regex" ,rust-regex-1))))
     (home-page "https://www.nushell.sh")
     (synopsis "Regex match plugin for Nushell")
@@ -1756,57 +1755,58 @@ Nushell.")
      "This package provides a regex match plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-post-0.31
+(define-public rust-nu-plugin-post-0.32
   (package
     (name "rust-nu-plugin-post")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_post" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1sr9aaqfqxpq16yh0sc9m83cj9xgackqbk7hmy2j97kj3vjmwd4w"))))
+        (base32 "0nj2kgnk8vwnkrkn407gk3h3kvr8bg9pnhymj3ld0dlw1qcwvphs"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-base64" ,rust-base64-0.13)
         ("rust-futures" ,rust-futures-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-mime" ,rust-mime-0.3)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2)
         ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-surf" ,rust-surf-1)
+        ("rust-surf" ,rust-surf-2)
         ("rust-url" ,rust-url-2))))
     (home-page "https://www.nushell.sh")
     (synopsis "HTTP POST plugin for Nushell")
     (description "This package is an HTTP POST plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-ps-0.31
+(define-public rust-nu-plugin-ps-0.32
   (package
     (name "rust-nu-plugin-ps")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_ps" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1a60pjl9ihlppx9ssmfw4sy3d8rxpp513ydhvq57fc6rcilrxjz9"))))
+        (base32 "098s1gf3fg9mi6gf703h5i5dab6w5as5wc06yanac31ic1anaib3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.3)
         ("rust-futures-timer" ,rust-futures-timer-3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-sysinfo" ,rust-sysinfo-0.16))))
     (home-page "https://www.nushell.sh")
@@ -1815,105 +1815,105 @@ Nushell.")
      "This package provides a process list plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-query-json-0.31
+(define-public rust-nu-plugin-query-json-0.32
   (package
     (name "rust-nu-plugin-query-json")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_query_json" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1f23chy7mglympvs5dcr5d5c3prxhci9lb51ajfmgcai3z334i7v"))))
+        (base32 "1jn5pcjf2jl824d8xg7hk336l1v6k1islv21kwr3lqkcipkh4ql2"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-gjson" ,rust-gjson-0.7)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31))))
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32))))
     (home-page "https://www.nushell.sh")
     (synopsis "Query JSON files with Gjson")
     (description "query json files with gjson")
     (license license:expat)))
 
-(define-public rust-nu-plugin-s3-0.31
+(define-public rust-nu-plugin-s3-0.32
   (package
     (name "rust-nu-plugin-s3")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_s3" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0khzvi9gsgv5zqikdx34ndgjw7168r9ckmik9z3wfzhsi2sjfz4k"))))
+        (base32 "0khdn04s0ln8ygnp2xxqf9yd8alp5ngzh650qb80m37fiiadaii6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-s3handler" ,rust-s3handler-0.6))))
     (home-page "https://www.nushell.sh")
     (synopsis "S3 plugin for Nushell")
     (description "This package is an S3 plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-selector-0.31
+(define-public rust-nu-plugin-selector-0.32
   (package
     (name "rust-nu-plugin-selector")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_selector" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lvxkxmknv18fc2whsib8qjrqydv7jz1xlijss2yyc8i0p9m0rxv"))))
+        (base32 "0r12rilc5js3x4zr5j96h6754vq1yh5prybha7x1r0wzpacaygd0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-nipper" ,rust-nipper-0.1)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31))))
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32))))
     (home-page "https://www.nushell.sh")
     (synopsis "Web scraping using CSS selector")
     (description
      "This package provides web scraping using CSS selector.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-start-0.31
+(define-public rust-nu-plugin-start-0.32
   (package
     (name "rust-nu-plugin-start")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_start" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1v5k4h6vw3ws1mvgjsgj2rr7zl7ab9zhfixai94wixs0vlwdfjic"))))
+        (base32 "0d3m165yw91w1rnapnd9scmk97yhwa0119l85z7zd2arjsqndpi0"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-glob" ,rust-glob-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-open" ,rust-open-1)
         ("rust-url" ,rust-url-2)
         ("rust-webbrowser" ,rust-webbrowser-0.5))))
@@ -1924,10 +1924,10 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-sys-0.31
+(define-public rust-nu-plugin-sys-0.32
   (package
     (name "rust-nu-plugin-sys")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
@@ -1935,17 +1935,17 @@ Nushell.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "049h5lar2f5mf3yx93pdzyjvydk0yfm5qp8brmyyrr6a23pk2c0b"))))
+        (base32 "0429rf83c3qlr6s7rf349ldd54nhlyyp7balpwrchjl17i978ndf"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.3)
         ("rust-futures-util" ,rust-futures-util-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-sysinfo" ,rust-sysinfo-0.16))))
     (home-page "https://www.nushell.sh")
@@ -1953,28 +1953,28 @@ Nushell.")
     (description "This package provides a system info plugin for Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-textview-0.31
+(define-public rust-nu-plugin-textview-0.32
   (package
     (name "rust-nu-plugin-textview")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_textview" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1qzpjmld8isin224cf7ss79radps983dw34m1sh7r5czzgwnf89m"))))
+        (base32 "0x504ps9llzmj1izz07rnz0760avxc13kn2krvzkvbnhi43n2f96"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bat" ,rust-bat-0.17)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
-        ("rust-nu-data" ,rust-nu-data-0.31)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
+        ("rust-nu-data" ,rust-nu-data-0.32)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-term-size" ,rust-term-size-0.3)
         ("rust-url" ,rust-url-2))))
     (home-page "https://www.nushell.sh")
@@ -1983,27 +1983,27 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-to-bson-0.31
+(define-public rust-nu-plugin-to-bson-0.32
   (package
     (name "rust-nu-plugin-to-bson")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_to_bson" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19kj3m6a0xshi7fg3smaapag0mj7a2ddci6611dnlasnzj9f9gr3"))))
+        (base32 "14vqqdb1v6ksphz4i86ihcd14b93fm4gbnz0crm4siw3h5ljjmbw"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bson" ,rust-bson-0.14)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://www.nushell.sh")
     (synopsis "Converter plugin to the bson format for Nushell")
@@ -2012,29 +2012,29 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-to-sqlite-0.31
+(define-public rust-nu-plugin-to-sqlite-0.32
   (package
     (name "rust-nu-plugin-to-sqlite")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_to_sqlite" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "19k427hwpllsyrdsh6qcclwx18nsq3zimz1z9b6kva0s32jzsdg6"))))
+        (base32 "1z6rlmhxkjbkdj2f953ind7p3fnic2hdpq2rvnf5c0d8x46jvjs3"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-hex" ,rust-hex-0.4)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2)
-        ("rust-rusqlite" ,rust-rusqlite-0.24)
+        ("rust-rusqlite" ,rust-rusqlite-0.25)
         ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://www.nushell.sh")
     (synopsis "Converter plugin to the bson format for Nushell")
@@ -2043,26 +2043,26 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-tree-0.31
+(define-public rust-nu-plugin-tree-0.32
   (package
     (name "rust-nu-plugin-tree")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_tree" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "17vgnqdws522ng373lg4cha5l136hs0zwvxf0393xjyr9i88q9jp"))))
+        (base32 "0h3g5jxqvggij7z3nvd4bfwd7d64l6h0wfrfgq5z7ixjqvyk64zb"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-derive-new" ,rust-derive-new-0.5)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-ptree" ,rust-ptree-0.3))))
     (home-page "https://www.nushell.sh")
     (synopsis "Tree viewer plugin for Nushell")
@@ -2070,27 +2070,27 @@ Nushell.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-plugin-xpath-0.31
+(define-public rust-nu-plugin-xpath-0.32
   (package
     (name "rust-nu-plugin-xpath")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu_plugin_xpath" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0zgpbmsx5036c6a5cr2nmi5vv2jyra2a4gnpqq4pazw432h5m48a"))))
+        (base32 "0kryfql0xscnvnnag41ls0xd1kp4xhmj4jyl9pirlwmis614iglv"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-bigdecimal" ,rust-bigdecimal-0.2)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-plugin" ,rust-nu-plugin-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-plugin" ,rust-nu-plugin-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-sxd-document" ,rust-sxd-document-0.3)
         ("rust-sxd-xpath" ,rust-sxd-xpath-0.4))))
     (home-page "https://www.nushell.sh")
@@ -2098,23 +2098,23 @@ Nushell.")
     (description "Traverses XML")
     (license license:expat)))
 
-(define-public rust-nu-pretty-hex-0.31
+(define-public rust-nu-pretty-hex-0.32
   (package
     (name "rust-nu-pretty-hex")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-pretty-hex" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1crsmihbil68p3qb345d33m5p6xa7dkbdxrbxfxh7km4hflc2pq4"))))
+        (base32 "0c076j68lv6vakgp0579nn1qrcrxpk6g6lvnczqsvkp3gzl15msl"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-heapless" ,rust-heapless-0.6)
-        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.29)
+        ("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
         ("rust-rand" ,rust-rand-0.8))))
     (home-page "https://www.nushell.sh")
     (synopsis "Pretty hex dump of bytes slice in the common style")
@@ -2123,17 +2123,17 @@ Nushell.")
 style.")
     (license license:expat)))
 
-(define-public rust-nu-protocol-0.31
+(define-public rust-nu-protocol-0.32
   (package
     (name "rust-nu-protocol")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-protocol" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1gsnd2p9mbc8b8bhirx8im65nhsbd8mfz655qk1mrl87s3sqiybh"))))
+        (base32 "1dlkmc9ml4wjxwcd633r43h7c6va6hlsddnf2mb40znnd0vwm492"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2145,32 +2145,30 @@ style.")
         ("rust-getset" ,rust-getset-0.1)
         ("rust-indexmap" ,rust-indexmap-1)
         ("rust-log" ,rust-log-0.4)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("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-polars" ,rust-polars-0.13)
         ("rust-serde" ,rust-serde-1)
-        ("rust-serde-bytes" ,rust-serde-bytes-0.11)
-        ("rust-serde-json" ,rust-serde-json-1)
-        ("rust-serde-yaml" ,rust-serde-yaml-0.8)
-        ("rust-toml" ,rust-toml-0.5))))
+        ("rust-serde-bytes" ,rust-serde-bytes-0.11))))
     (home-page "https://www.nushell.sh")
     (synopsis "Core values and protocols for Nushell")
     (description "Core values and protocols for Nushell")
     (license license:expat)))
 
-(define-public rust-nu-source-0.31
+(define-public rust-nu-source-0.32
   (package
     (name "rust-nu-source")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-source" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1bpihjq3dfrry0mxdgg32sx8663rd2gxqkmnqgs4q7lj17ny2a9g"))))
+        (base32 "1isncb8k9qccpy1i609wfbnq85f04mggnq18qbhaq78sbkwywn14"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2187,46 +2185,46 @@ style.")
 Nushell.")
     (license license:expat)))
 
-(define-public rust-nu-stream-0.31
+(define-public rust-nu-stream-0.32
   (package
     (name "rust-nu-stream")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-stream" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0ylmfqhhj4aaspwq51yb5wmsn7zhh19035yb0mr28ajygf38s1g7"))))
+        (base32 "188p0a1kr4x1ha11znjgh42q0b7f256mvy4cwsgqxh5bijyzb2df"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-futures" ,rust-futures-0.3)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31))))
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32))))
     (home-page "https://www.nushell.sh")
     (synopsis "Nushell stream")
     (description "This package provides Nushell stream.")
     (license license:expat)))
 
-(define-public rust-nu-table-0.31
+(define-public rust-nu-table-0.32
   (package
     (name "rust-nu-table")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-table" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0sma2i78naf813kw3mlzzbvs27fhz9z8flv7iqgk9pf52g4b6w0p"))))
+        (base32 "02k80w4wha2njriaa54qlvcw9cqwfcmqjbh9sbpd4fkn5vhw3nz6"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
-       (("rust-nu-ansi-term" ,rust-nu-ansi-term-0.31)
+       (("rust-nu-ansi-term" ,rust-nu-ansi-term-0.32)
         ("rust-regex" ,rust-regex-1)
         ("rust-unicode-width" ,rust-unicode-width-0.1))))
     (home-page "https://www.nushell.sh")
@@ -2234,17 +2232,17 @@ Nushell.")
     (description "Nushell table printing")
     (license license:expat)))
 
-(define-public rust-nu-test-support-0.31
+(define-public rust-nu-test-support-0.32
   (package
     (name "rust-nu-test-support")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "nu-test-support" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0n5crvk40vy28f81lp5dyj9clfmslc9al5dvrq3b0gqz11d5y2ab"))))
+        (base32 "0s7psdq0dra3y7hrj7ci61lmrhd59m2d1rxszppxcn5r1dnz5d3x"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
@@ -2256,10 +2254,10 @@ Nushell.")
         ("rust-glob" ,rust-glob-0.3)
         ("rust-hamcrest2" ,rust-hamcrest2-0.3)
         ("rust-indexmap" ,rust-indexmap-1)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
-        ("rust-nu-value-ext" ,rust-nu-value-ext-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
+        ("rust-nu-value-ext" ,rust-nu-value-ext-0.32)
         ("rust-num-bigint" ,rust-num-bigint-0.3)
         ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://www.nushell.sh")
@@ -2268,10 +2266,10 @@ Nushell.")
 tests.")
     (license license:expat)))
 
-(define-public rust-nu-value-ext-0.31
+(define-public rust-nu-value-ext-0.32
   (package
     (name "rust-nu-value-ext")
-    (version "0.31.0")
+    (version "0.32.0")
     (source
      (origin
        (method url-fetch)
@@ -2279,16 +2277,16 @@ tests.")
        (file-name
         (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "0wy0zs76f1k0xlm8s7fw34v7rqc592ggzvdgh17fjh4ynnhvr42y"))))
+        (base32 "11842fw90wxiyj97q4vynyq0cq57nfzljfi7s4zxa65alfhqqj0s"))))
     (build-system cargo-build-system)
     (arguments
      `(#:skip-build? #t
        #:cargo-inputs
        (("rust-indexmap" ,rust-indexmap-1)
         ("rust-itertools" ,rust-itertools-0.10)
-        ("rust-nu-errors" ,rust-nu-errors-0.31)
-        ("rust-nu-protocol" ,rust-nu-protocol-0.31)
-        ("rust-nu-source" ,rust-nu-source-0.31)
+        ("rust-nu-errors" ,rust-nu-errors-0.32)
+        ("rust-nu-protocol" ,rust-nu-protocol-0.32)
+        ("rust-nu-source" ,rust-nu-source-0.32)
         ("rust-num-traits" ,rust-num-traits-0.2))))
     (home-page "https://www.nushell.sh")
     (synopsis "@code{Extension} traits for values in Nushell")
diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm
index 093f6f957b..cbc46b32b4 100644
--- a/gnu/packages/speech.scm
+++ b/gnu/packages/speech.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages linux)
@@ -239,7 +240,7 @@ efficiency through the use of a compact vector representation of n-grams.")
 (define-public speech-dispatcher
   (package
     (name "speech-dispatcher")
-    (version "0.9.1")
+    (version "0.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/brailcom/speechd/releases"
@@ -247,17 +248,18 @@ efficiency through the use of a compact vector representation of n-grams.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p"))))
+                "1p72x9vsqvmhz1ym2bcpiqscn063rxdsylv65735cpp107r1jqxh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static"
 
                            ;; Disable support for proprietary TTS engines.
-                           "--with-ibmtts=no"
+                           "--with-voxin=no" "--with-ibmtts=no"
                            "--with-kali=no" "--with-baratinoo=no")))
     (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)
+       ("texinfo" ,texinfo)))
     (inputs
      `(("dotconf" ,dotconf)
        ("espeak" ,espeak-ng)
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index a6a87cac75..76670463d7 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -216,7 +216,7 @@ which allows users to view a desktop computing environment.")
 (define-public spice
   (package
     (name "spice")
-    (version "0.14.3")
+    (version "0.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -224,7 +224,7 @@ which allows users to view a desktop computing environment.")
                 "spice-server/spice-" version ".tar.bz2"))
               (sha256
                (base32
-                "05512vkfayw18ypg4acqbbpr72nsnsz9bj7k8c2wyrvnl3j4n7am"))))
+                "1xd0xffw0g5vvwbq4ksmm3jjfq45f9dw20xpmi82g1fj9f7wy85k"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("openssl" ,openssl)
@@ -337,17 +337,18 @@ resolution scaling on graphical console window resize.")
 (define-public libcacard
   (package
     (name "libcacard")
-    (version "2.7.0")
+    (version "2.8.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gitlab.freedesktop.org/spice/libcacard/uploads/"
-                    "56cb2499198e78e560a1d4c716cd8ab1"
+                    "9d8f24b131bcbbd7846727ea92952cb5"
                     "/libcacard-" version ".tar.xz"))
+              (patches (search-patches "libcacard-unknown-variable.patch"))
               (sha256
                (base32
-                "0vyvkk4b6xjwq1ccggql13c1x7g4y90clpkqw28257azgn2a1c8n"))))
-    (build-system gnu-build-system)
+                "0azj3rqr2smg0lai24xrn3zr628xmjfrzcggay877zrr64ybj1c0"))))
+    (build-system meson-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
@@ -356,8 +357,7 @@ resolution scaling on graphical console window resize.")
              (substitute* "tests/setup-softhsm2.sh"
                (("\\/usr\\/lib64\\/pkcs11\\/libsofthsm2\\.so")
                 (string-append (assoc-ref inputs "softhsm")
-                               "/lib/softhsm/libsofthsm2.so")))
-             #t)))))
+                               "/lib/softhsm/libsofthsm2.so"))))))))
     (propagated-inputs
      `(("glib" ,glib)                   ; Requires: in the pkg-config file
        ("nss" ,nss)))                   ; Requires.private: in the pkg-config
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index f4bf01c5df..65f4fa85a9 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -49,6 +49,68 @@
   #:use-module (guix utils)
   #:use-module (guix packages))
 
+(define-public slstatus
+  ;; No release tarballs yet.
+  (let ((commit "84a2f117a32f0796045941260cdc4b69852b41e0")
+        (revision "0"))
+    (package
+      (name "slstatus")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "git://git.suckless.org/slstatus.git")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "063a4fnvsjbc61alnbfdpxy0nwhh9ql9j6s9hkdv12713kv932ds"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test suite
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (substitute* "config.mk"
+                 (("/usr/local") (assoc-ref outputs "out"))
+                 (("/usr/X11R6") (assoc-ref inputs "x11"))
+                 (("CC = cc") (string-append "CC = " ,(cc-for-target))))))
+           (delete 'configure))))       ;no configure script
+      (inputs
+       `(("x11" ,libx11)))
+      (home-page "https://tools.suckless.org/slstatus/")
+      (synopsis "Status monitor for window managers")
+      (description "SlStatus is a suckless status monitor for window managers
+that use WM_NAME or stdin to fill the status bar.
+It provides the following features:
+@itemize
+@item Battery percentage/state/time left
+@item CPU usage
+@item CPU frequency
+@item Custom shell commands
+@item Date and time
+@item Disk status (free storage, percentage, total storage and used storage)
+@item Available entropy
+@item Username/GID/UID
+@item Hostname
+@item IP address (IPv4 and IPv6)
+@item Kernel version
+@item Keyboard indicators
+@item Keymap
+@item Load average
+@item Network speeds (RX and TX)
+@item Number of files in a directory (hint: Maildir)
+@item Memory status (free memory, percentage, total memory and used memory)
+@item Swap status (free swap, percentage, total swap and used swap)
+@item Temperature
+@item Uptime
+@item Volume percentage
+@item WiFi signal percentage and ESSID
+@end itemize")
+      (license license:isc))))
+
 (define-public blind
   (package
     (name "blind")
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 2b64117dc6..c85b4f801c 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -192,7 +192,7 @@
        ("libzip" ,libzip)
        ("openssl" ,openssl)
        ("python-nautilus" ,python-nautilus)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtgraphicaleffects" ,qtgraphicaleffects)
        ("qtkeychain" ,qtkeychain)
@@ -352,7 +352,7 @@ See also: megacmd, the official tool set by MEGA.")
        ("pkg-config" ,pkg-config)
        ("qtlinguist" ,qttools)))
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtkeychain" ,qtkeychain)
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
@@ -397,7 +397,7 @@ silently and reliably flow across to every other.")
                #t))))
        #:tests? #f)) ; no test target
     (inputs
-     `(("qtbase" ,qtbase)
+     `(("qtbase" ,qtbase-5)
        ("qtwebkit" ,qtwebkit)))
     (home-page "https://github.com/sieren/QSyncthingTray")
     (synopsis "Traybar Application for Syncthing")
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 7ec2435522..de106e1882 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -52,6 +52,7 @@
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages ruby)
+  #:use-module (gnu packages rust)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
@@ -218,15 +219,14 @@ cards.")
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.22.1")
+    (version "2.23")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32
-         "1476fmfw2hkrjwyr3f7k9316lzwnn2b1dbc51rybcxipqlfg8849"))))
+        (base32 "1p6sqypgzhwirgljr898c9n7vr5y9322fvrlaigwrchxshwv35xr"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
@@ -246,6 +246,7 @@ cards.")
                   (guix build utils)
                   ((guix build gnu-build-system) #:prefix gnu:))
        #:vendor-dir "vendor"
+       #:rust ,rust-1.46    ; or newer
        #:install-source? #f
        #:cargo-inputs
        (("rust-backtrace" ,rust-backtrace-0.3)
@@ -254,17 +255,19 @@ cards.")
         ("rust-clap" ,rust-clap-2)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-cxx" ,rust-cxx-0.5)
-        ("rust-cxx-build" ,rust-cxx-build-0.5)
-        ("rust-gettext-rs" ,rust-gettext-rs-0.5)
+        ("rust-gettext-rs" ,rust-gettext-rs-0.6)
         ("rust-libc" ,rust-libc-0.2)
         ("rust-natord" ,rust-natord-1)
         ("rust-nom" ,rust-nom-6)
         ("rust-once-cell" ,rust-once-cell-1)
-        ("rust-rand" ,rust-rand-0.7)
+        ("rust-percent-encoding" ,rust-percent-encoding-2)
+        ("rust-rand" ,rust-rand-0.8)
         ("rust-url" ,rust-url-2)
-        ("rust-unicode-width" ,rust-unicode-width-0.1))
+        ("rust-unicode-width" ,rust-unicode-width-0.1)
+        ("rust-xdg" ,rust-xdg-2))
        #:cargo-development-inputs
-       (("rust-tempfile" ,rust-tempfile-3)
+       (("rust-cxx-build" ,rust-cxx-build-0.5)
+        ("rust-tempfile" ,rust-tempfile-3)
         ("rust-proptest" ,rust-proptest-0.9)
         ("rust-section-testing" ,rust-section-testing-0.0))
        #:phases
@@ -566,14 +569,14 @@ formats, including all versions of RSS and Atom.")
        ("qttools" ,qttools)))
     (inputs
      `(("qtwebkit" ,qtwebkit)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("phonon" ,phonon)
        ("sqlite" ,sqlite)))
     (home-page "https://quiterss.org/")
     (synopsis "RSS/Atom news feeds reader written on Qt/C++")
     (description "QuiteRSS is an RSS/Atom news feeds reader written on Qt/C++
-that aims to be quite fast and comfortable to it's user.")
+that aims to be quite fast and comfortable to its user.")
     (license license:gpl3+)))
 
 (define-public gfeeds
diff --git a/gnu/packages/synergy.scm b/gnu/packages/synergy.scm
index 1f8f8f351e..b241d29f6a 100644
--- a/gnu/packages/synergy.scm
+++ b/gnu/packages/synergy.scm
@@ -82,7 +82,7 @@
        ("libxi"   ,libxi)
        ("libx11"  ,libx11)
        ("libxtst" ,libxtst)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://symless.com/synergy")
     (synopsis "Mouse and keyboard sharing utility")
     (description
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 6f77482117..a1822b3892 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -538,7 +538,7 @@ Telegram project, for its use in telegram desktop client.")
        ("opus" ,opus)
        ("pulseaudio" ,pulseaudio)
        ("qrcodegen" ,qrcodegen-cpp)
-       ("qt" ,qtbase)
+       ("qt" ,qtbase-5)
        ("qt5ct" ,qt5ct)
        ("qtimageformats" ,qtimageformats)
        ("qtwayland" ,qtwayland)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 9d8184801c..f75a168948 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -643,7 +643,7 @@ address of one of the participants.")
        ("opus" ,opus) ; avoid bundled
        ("protobuf" ,protobuf)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("speech-dispatcher" ,speech-dispatcher)
        ("speex" ,speex) ; avoid bundled
@@ -705,7 +705,7 @@ Mumble consists of two applications for separate usage:
        ("libilbc" ,libilbc)
        ("libsndfile" ,libsndfile)
        ("libxml2" ,libxml2)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtquickcontrols" ,qtquickcontrols)
        ("readline" ,readline)
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 690bc19434..735373dfa7 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -326,7 +326,7 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
          ("libxkbcommon" ,libxkbcommon)
          ("logind" ,elogind)
          ;; MESA can be used for accelerated video output via OpenGLESv2, but
-         ;; it's a bit dependency that we'd rather avoid in the installation
+         ;; it's a big dependency that we'd rather avoid in the installation
          ;; image.
          ;; ("mesa" ,mesa)
          ("pango" ,pango)
@@ -645,7 +645,7 @@ embedded kernel situations.")
                     #t))))
       (build-system gnu-build-system)
       (inputs
-       `(("qtbase" ,qtbase)
+       `(("qtbase" ,qtbase-5)
          ("qtdeclarative" ,qtdeclarative)
          ("qtgraphicaleffects" ,qtgraphicaleffects)
          ("qtquickcontrols" ,qtquickcontrols)))
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 39cc4e9f37..7a78563a75 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -7011,7 +7011,7 @@ PDF documents.")
                        "texmaker.pro")))))))
     (inputs
      `(("poppler-qt5" ,poppler-qt5)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtscript" ,qtscript)
        ("qtwebkit" ,qtwebkit)
        ("zlib" ,zlib)))
@@ -7117,7 +7117,7 @@ and Karl Berry.")
        ("libx11" ,libx11)
        ("mythes" ,mythes)
        ("python" ,python)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("zlib" ,zlib)))
     (propagated-inputs
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 426a15853d..62b198fd0d 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Mark Meyer <mark@ofosos.org>
 ;;; Copyright © 2020 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 aecepoglu <aecepoglu@fastmail.fm>
+;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -396,6 +397,38 @@ features are implemented in the editor.  Leafpad is simple to use, is easily
 compiled, requires few libraries, and starts up quickly. ")
     (license license:gpl2+)))
 
+(define-public l3afpad
+  (let ((commit "5235c9e13bbf0d31a902c6776918c2d7cdbb61ff")
+        (revision "0"))
+    (package
+      (name "l3afpad")
+      (version (git-version "0.8.18.1.11" revision commit))
+      (source (origin
+                (method git-fetch)
+                (file-name (git-file-name name version))
+                (uri (git-reference
+                       (url "https://github.com/stevenhoneyman/l3afpad")
+                       (commit commit)))
+                (sha256
+                 (base32
+                  "1alyghm2wpakzdfag0g4g8gb1h9l4wdg7mnhq8bk0iq5ryqia16a"))))
+      (build-system glib-or-gtk-build-system)
+      (native-inputs
+       `(("intltool" ,intltool)
+         ("autoconf" ,autoconf)
+         ("automake" ,automake)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("gtk+" ,gtk+)))
+      (home-page "http://tarot.freeshell.org/leafpad/")
+      (synopsis "GTK+ 3 based text editor")
+      (description "L3afpad is a GTK+ 3 text editor that emphasizes simplicity.  As
+  development focuses on keeping weight down to a minimum, only the most essential
+  features are implemented in the editor.  L3afpad is simple to use, is easily
+  compiled, requires few libraries, and starts up quickly.  L3afpad is a
+  fork of Leafpad that uses GTK+ 3 instead of GTK+ 2.")
+      (license license:gpl2+))))
+
 (define-public e3
   (package
     (name "e3")
@@ -601,8 +634,7 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
 (define-public ghostwriter
   (package
     (name "ghostwriter")
-    ;; XXX We use a release candidate to fix incompatibility with Qt 5.15.
-    (version "2.0.0-rc4")
+    (version "2.0.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -611,14 +643,14 @@ scripts/input/X11/C/Shell/HTML/Dired): 49KB.
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "07547503a209hc0fcg902w3x0s1m899c10nj3gqz3hak0cmrasi3"))))
+                "07jrsh6549zypdnyy7g6yvggrz5mlya9jm7zmkjmvl7s0min3mbc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("qttools" ,qttools)))           ; for lrelease
     (inputs
      `(("hunspell" ,hunspell)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtmultimedia" ,qtmultimedia)
        ("qtquickcontrols" ,qtquickcontrols)
@@ -825,7 +857,7 @@ editors.")
        ("guile" ,guile-1.8)
        ("perl" ,perl)
        ("python" ,python-wrapper)
-       ("qt" ,qtbase)
+       ("qt" ,qtbase-5)
        ("qtsvg" ,qtsvg)))
     (arguments
      `(#:tests? #f                      ; no check target
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index d6ebb59a1e..651e2e3a29 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -169,9 +169,6 @@ standard @code{datetime} all @code{datetime} instances can be replaced by
 Pendulum instances.")
     (license expat)))
 
-(define-public python2-pendulum
-  (package-with-python2 python-pendulum))
-
 (define-public python-dateutil
   (package
     (name "python-dateutil")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 31ffdb2a8a..297e16dd70 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
@@ -17,6 +17,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -541,31 +542,29 @@ required structures.")
 (define-public libressl
   (package
     (name "libressl")
-    (version "3.1.5")
+    (version "3.3.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://openbsd/LibreSSL/"
                                   "libressl-" version ".tar.gz"))
               (sha256
                (base32
-                "1504a1sf43frw43j14pij0q1f48rm5q86ggrlxxhw708qp7ds4rc"))))
+                "0rihprcgxsydsbcqgd1952k2cfn4jmp7rlyp1c6sglfc6rdmcwd4"))))
     (build-system gnu-build-system)
     (arguments
-     ;; Do as if 'getentropy' were missing: Linux kernels before 3.17 lack its
-     ;; underlying 'getrandom' system call and ENOSYS isn't properly handled.
-     ;; See <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00235.html>.
-     '(#:configure-flags '("ac_cv_func_getentropy=no"
-                           ;; Provide a TLS-enabled netcat.
-                           "--enable-nc")))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "SSL_CERT_DIR")
-            (separator #f)              ;single entry
-            (files '("etc/ssl/certs")))
-           (search-path-specification
-            (variable "SSL_CERT_FILE")
-            (separator #f)              ;single entry
-            (files '("etc/ssl/certs/ca-certificates.crt")))))
+     `(#:configure-flags
+       (list
+        ;; Do as if 'getentropy' were missing: Linux kernels before 3.17 lack its
+        ;; underlying 'getrandom' system call and ENOSYS isn't properly handled.
+        ;; See <https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00235.html>.
+        "ac_cv_func_getentropy=no"
+        ;; FIXME It's using it's own bundled certificate, instead it should
+        ;; behave like OpenSSL by using environment variables.
+        (string-append "--with-openssldir=" %output
+                       "/share/libressl-"
+                       ,(package-version this-package))
+        ;; Provide a TLS-enabled netcat.
+        "--enable-nc")))
     (home-page "https://www.libressl.org/")
     (synopsis "SSL/TLS implementation")
     (description "LibreSSL is a version of the TLS/crypto stack, forked from
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index bd11dd3a75..b18e057977 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -54,14 +54,15 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.5.8")
+    (version "0.4.6.5")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "09z22gc01yh5zms7i31md6qpr0ir8i5fzrrz06qfpp5wx28x1pjp"))))
+               "1yacd7h7wg8n6wwrjmx2g9xjj24kj08j5sai9g7fm4cp1m73avbv"))
+             (patches (search-patches "tor-fix-build-with-gcc-7.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index c596b8bf89..3691336d3f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1322,7 +1322,7 @@ manipulate them in various ways.")
 (define-public vcsh
   (package
     (name "vcsh")
-    (version "1.20190621")
+    (version "1.20190621-4")
     (source
      (origin
        (method git-fetch)
@@ -1331,7 +1331,7 @@ manipulate them in various ways.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1s9l47wm9r7sndcgc778mq60wkzkhvfv7rkrwci5kjvw8vsddvcc"))))
+        (base32 "1gx5nbqyprgy6picns5hxky3lyzkqfq3xhm614f0wcdi58xrsdh0"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("which" ,which)))
@@ -1520,7 +1520,7 @@ control to Git repositories.")
 (define-public pre-commit
   (package
     (name "pre-commit")
-    (version "2.12.1")
+    (version "2.13.0")
     (source
      (origin
        ;; No tests in the PyPI tarball.
@@ -1530,7 +1530,7 @@ control to Git repositories.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0gwy5bnjnlj6yjcmghsibrcijvz9isxcygln7ihvi728p04rgymf"))))
+        (base32 "02lr8d6fkr32j4rpp2ac84a5gjwq16k1hb74j6js0kxg83qw6raf"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1550,37 +1550,36 @@ control to Git repositories.")
              ;; Some tests will need a working git repository.
              (invoke "git" "init")
              (invoke "git" "config" "--global" "user.name" "Your Name")
-             (invoke "git" "config" "--global" "user.email" "you@example.com")
-             #t))
+             (invoke "git" "config" "--global" "user.email" "you@example.com")))
          (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs outputs tests? #:allow-other-keys)
              (add-installed-pythonpath inputs outputs)
-             ;; The file below contains about 30 tests that fail because they
-             ;; depend on tools from multiple languages (cargo, npm, cpan,
-             ;; Rscript, etc).  There are other tests that pass, but it's more
-             ;; convenient to skip the whole file than list 30 tests to skip.
-             (invoke "pytest" "--ignore=tests/repository_test.py"
-                     ;; Ruby and Node tests require node and gem.
-                     "--ignore=tests/languages/node_test.py"
-                     "--ignore=tests/languages/ruby_test.py"
-                     ;; FIXME: Python tests fail because of distlib version
-                     ;; mismatch.  Even with python-distlib/next it is
-                     ;; pulling version 0.3.0, while 0.3.1 is required.
-                     "--ignore=tests/languages/python_test.py" "-k"
-                     (string-append
-                      ;; TODO: these tests fail with AssertionError.  It may
-                      ;; be possible to fix them.
-                      "not test_install_existing_hooks_no_overwrite"
-                      " and not test_uninstall_restores_legacy_hooks"
-                      " and not test_installed_from_venv"))))
+             (when tests?
+               ;; The file below contains 30+ tests that fail because they
+               ;; depend on tools from multiple languages (cargo, npm, cpan,
+               ;; Rscript, etc).  Other tests are passing, but it's more
+               ;; convenient to skip the file than list 30 tests to skip.
+               (invoke "pytest" "--ignore=tests/repository_test.py"
+                       ;; Ruby and Node tests require node and gem.
+                       "--ignore=tests/languages/node_test.py"
+                       "--ignore=tests/languages/ruby_test.py"
+                       ;; FIXME: Python tests fail because of distlib version
+                       ;; mismatch.  Even with python-distlib/next it is
+                       ;; pulling version 0.3.0, while 0.3.1 is required.
+                       "--ignore=tests/languages/python_test.py" "-k"
+                       (string-append
+                        ;; TODO: these tests fail with AssertionError.  It may
+                        ;; be possible to fix them.
+                        "not test_install_existing_hooks_no_overwrite"
+                        " and not test_uninstall_restores_legacy_hooks"
+                        " and not test_installed_from_venv")))))
          (add-before 'reset-gzip-timestamps 'make-gz-writable
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure .gz files are writable so that the
              ;; 'reset-gzip-timestamps' phase can do its work.
              (let ((out (assoc-ref outputs "out")))
                (for-each make-file-writable
-                         (find-files out "\\.gz$"))
-               #t))))))
+                         (find-files out "\\.gz$"))))))))
     (native-inputs
      `(("git" ,git-minimal)
        ("python-covdefaults" ,python-covdefaults)
@@ -1599,7 +1598,7 @@ control to Git repositories.")
        ("python-toml" ,python-toml)
        ("python-virtualenv" ,python-virtualenv)))
     (home-page "https://pre-commit.com/")
-    (synopsis "Framework for managing and maintaining multi-language pre-commit hooks")
+    (synopsis "Framework for managing and maintaining pre-commit hooks")
     (description
      "Pre-commit is a multi-language package manager for pre-commit hooks.  You
 specify a list of hooks you want and pre-commit manages the installation and
@@ -1701,17 +1700,17 @@ interface.")
 (define-public python-hg-evolve
   (package
     (name "python-hg-evolve")
-    (version "10.3.1")
+    (version "10.3.2")
     (source
       (origin
         (method hg-fetch)
         (uri (hg-reference
                (url "https://www.mercurial-scm.org/repo/evolve")
                (changeset version)))
-        (file-name (string-append name "-" version "-checkout"))
+        (file-name (hg-file-name name version))
         (sha256
           (base32
-            "0msnp5fp8sz4q2r5xpcmm60h82kwkyg23y212v1xfp7ixkq9f4qa"))))
+            "0qgk39s5pwxbshfa6x1f1ccxahja3fs265dddxy6q99spy3b3x5h"))))
     (build-system python-build-system)
     (arguments
      ;; Tests need mercurial source code.
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c8ec2645f9..79d80dbb7b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -301,7 +301,7 @@ video and audio streams from a DVD.")
          (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rac70p6rpvdx9v0bdd8nphgr7imdxb7nz0x77n3p7h3180zz9x0"))))
+        (base32 "1cv6vcf5yxcwdvj5yqcckbixqrvvdxk7ibincnnv80pz6wh527sv"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ; Test script is stand-alone
@@ -563,7 +563,7 @@ applications by providing high-level classes for commonly required tasks.")
     (inputs
      `(;; XXX: Build fails with libvideogfx.
        ;; ("libvideogfx" ,libvideogfx)
-       ("qt" ,qtbase)
+       ("qt" ,qtbase-5)
        ("sdl" ,sdl)))
     (synopsis "H.265 video codec implementation")
     (description "Libde265 is an implementation of the h.265 video codec.  It is
@@ -768,16 +768,16 @@ mpv's powerful playback capabilities.")
                    (replace 'bootstrap
                      (lambda _ (invoke "sh" "bootstrap"))))))
     (home-page "http://liba52.sourceforge.net/")
-    (synopsis "ATSC A/52 stream decoder")
-    (description "liba52 is a library for decoding ATSC A/52 streams.  The
-A/52 standard is used in a variety of applications, including digital
+    (synopsis "ATSC A/52 audio stream decoder")
+    (description "liba52 is a library for decoding ATSC A/52 audio streams.
+The A/52 standard is used in a variety of applications, including digital
 television and DVD.  It is also known as AC-3.")
     (license license:gpl2+)))
 
 (define-public libaom
   (package
     (name "libaom")
-    (version "3.1.0")
+    (version "3.1.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -786,21 +786,28 @@ television and DVD.  It is also known as AC-3.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v3i34jmbz1p3x8msj3vx46nl6jdzxbkr2lfbh06vard8adb16il"))))
+                "11fy2xw35ladkjcz71samhcpqlqr3y0n1n17nk90i13aydrll66f"))))
     (build-system cmake-build-system)
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python))) ; to detect the version
     (arguments
-     `(#:tests? #f  ;no check target
+     `(#:tests? #f                      ; downloads many video clips
        #:configure-flags
-         ;; build dynamic library
        (list "-DBUILD_SHARED_LIBS=YES"
              "-DENABLE_PIC=TRUE"
              "-DAOM_TARGET_CPU=generic"
              (string-append "-DCMAKE_INSTALL_PREFIX="
-                              (assoc-ref %outputs "out")))))
+                            (assoc-ref %outputs "out")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'delete-static-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib")))
+               (for-each delete-file
+                         (find-files lib "\\.a$"))))))))
     (home-page "https://aomedia.googlesource.com/aom/")
     (synopsis "AV1 video codec")
     (description "Libaom is the reference implementation of AV1.  It includes a
@@ -930,7 +937,7 @@ H.264 (MPEG-4 AVC) video streams.")
        ("lzo" ,lzo)
        ("pcre2" ,pcre2)
        ("pugixml" ,pugixml)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("utfcpp" ,utfcpp)
        ("zlib" ,zlib)))
@@ -1469,8 +1476,7 @@ operate properly.")
        ("sdl" ,sdl2)
        ("soxr" ,soxr)
        ("speex" ,speex)
-       ;; FFmpeg is not yet compatible with SRT > 1.4.1.
-       ("srt" ,srt-1.4.1)
+       ("srt" ,srt)
        ("twolame" ,twolame)
        ("vidstab" ,vidstab)
        ("x265" ,x265)
@@ -1843,7 +1849,7 @@ videoformats depend on the configuration flags of ffmpeg.")
        ("pulseaudio" ,pulseaudio)
        ("protobuf" ,protobuf)
        ("python" ,python-wrapper)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("samba" ,samba)
@@ -2195,14 +2201,14 @@ To load this plugin, specify the following option when starting mpv:
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2021.05.16")
+    (version "2021.06.06")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://youtube-dl.org/downloads/latest/"
                                   "youtube-dl-" version ".tar.gz"))
               (sha256
                (base32
-                "1z8sdzvkxhscnzy7cnjag308glif0k8jylr11biqwzypm1f2l0fl"))
+                "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw"))
               (snippet
                '(begin
                   ;; Delete the pre-generated files, except for the man page
@@ -2735,7 +2741,7 @@ for use with HTML5 video.")
        ("libvpx" ,libvpx)
        ("libxv" ,libxv)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("sqlite" ,sqlite)
        ("zlib" ,zlib)))
     (arguments
@@ -3025,7 +3031,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
        ("rubberband" ,rubberband)
        ("libsamplerate" ,libsamplerate)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("sdl" ,sdl)
        ("sox" ,sox)))
@@ -3095,7 +3101,7 @@ tools, XML authoring components, and an extensible plug-in based API.")
        ("glu" ,glu)
        ("libjpeg" ,libjpeg-turbo)
        ("libx11" ,libx11)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("eudev" ,eudev)))
     (synopsis "Realtime video capture utilities for Linux")
     (description "The v4l-utils provide a series of libraries and utilities to
@@ -3159,7 +3165,7 @@ be used for realtime video capture via Linux-specific APIs.")
        ("mbedtls" ,mbedtls-apache)
        ("mesa" ,mesa)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtsvg" ,qtsvg)
        ("qtx11extras" ,qtx11extras)
        ("speexdsp" ,speexdsp)
@@ -3234,7 +3240,7 @@ OBS audio sources.")
              #t)))))
     (inputs
      `(("obs" ,obs)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://github.com/Palakis/obs-websocket")
     (synopsis "OBS plugin for remote control via WebSockets")
     (description "This OBS plugin allows you to establish a WebSocket channel
@@ -3426,7 +3432,7 @@ making @dfn{screencasts}.")
        ("libxi" ,libxi)
        ("libxinerama" ,libxinerama)
        ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)))
     (native-inputs `(("pkg-config" ,pkg-config)))
     (arguments
@@ -3854,14 +3860,17 @@ practically any type of media.")
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)
+       ("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("zlib" ,zlib)
        ("tinyxml2" ,tinyxml2)
-       ("curl" ,curl)
+       ("curl" ,curl) ; In Requires.private of libmediainfo.pc.
        ("libzen" ,libzen)))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; see above TODO
+       #:configure-flags
+       (list "--with-libcurl" "--with-libtinyxml2")
        #:phases
        ;; build scripts not in root of archive
        (modify-phases %standard-phases
@@ -3914,10 +3923,9 @@ MPEG-2, MPEG-4, DVD (VOB)...
      `(("autoconf" ,autoconf)
        ("automake" ,automake)
        ("libtool" ,libtool)
-       ("pkg-config" ,pkg-config)
-       ("zlib" ,zlib)
-       ("libmediainfo" ,libmediainfo)
-       ("libzen" ,libzen)))
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("libmediainfo" ,libmediainfo)))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f ; lacks tests
@@ -4504,7 +4512,7 @@ create smoother and stable videos.")
        ("imagemagick" ,imagemagick)
        ("jsoncpp" ,jsoncpp)
        ("libopenshot-audio" ,libopenshot-audio)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtmultimedia" ,qtmultimedia)
        ("zeromq" ,zeromq)))
     (arguments
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 34270ff8d3..9bd8ebbe18 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -142,7 +142,7 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "5.2.0")
+    (version "6.0.0")
     (source
      (origin
        (method url-fetch)
@@ -150,24 +150,14 @@
                            version ".tar.xz"))
        (sha256
         (base32
-         "1g0pvx4qbirpcn9mni704y03n3lvkmw2c0rbcwvydyr8ns4xh66b"))
+         "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"))
        (patches (search-patches "qemu-CVE-2021-20203.patch"
+                                "qemu-meson-compat.patch"
+                                "qemu-sphinx-compat.patch"
                                 "qemu-build-info-manual.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
-           ;; Fix a bug in the do_ioctl_ifconf() function of qemu to
-           ;; make ioctl(…, SIOCGIFCONF, …) work for emulated 64 bit
-           ;; architectures.  The size of struct ifreq is handled
-           ;; incorrectly.
-           ;; https://lists.nongnu.org/archive/html/qemu-devel/2021-01/msg01545.html
-           (substitute* '("linux-user/syscall.c")
-             (("^([[:blank:]]*)const argtype ifreq_arg_type.*$" line indent)
-              (string-append line indent "const argtype ifreq_max_type[] = "
-                             "{ MK_STRUCT(STRUCT_ifmap_ifreq) };\n"))
-             (("^([[:blank:]]*)target_ifreq_size[[:blank:]]=.*$" _ indent)
-              (string-append indent "target_ifreq_size = "
-                             "thunk_type_size(ifreq_max_type, 0);")))
            ;; Delete the bundled meson copy.
            (delete-file-recursively "meson")))))
     (outputs '("out" "static" "doc"))   ;5.3 MiB of HTML docs
@@ -198,22 +188,6 @@
                   ,@%gnu-build-system-modules)
        #:phases
        (modify-phases %standard-phases
-         (add-after 'set-paths 'hide-glibc
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Work around https://issues.guix.info/issue/36882.  We need to
-             ;; remove glibc from C_INCLUDE_PATH so that the one hardcoded in GCC,
-             ;; at the bottom of GCC include search-path is used.
-             (let* ((filters '("libc"))
-                    (input-directories
-                     (filter-map (lambda (input)
-                                   (match input
-                                     ((name . dir)
-                                      (and (not (member name filters))
-                                           dir))))
-                                 inputs)))
-               (set-path-environment-variable "C_INCLUDE_PATH"
-                                              '("include")
-                                              input-directories))))
          (add-after 'unpack 'extend-test-time-outs
            (lambda _
              ;; These tests can time out on heavily-loaded and/or slow storage.
@@ -223,14 +197,14 @@
                 (string-append match "9")))))
          (add-after 'unpack 'disable-unusable-tests
            (lambda _
-             (substitute* "tests/meson.build"
+             (substitute* "tests/unit/meson.build"
                ;; Comment out the test-qga test, which needs /sys and
                ;; fails within the build environment.
                (("tests.*test-qga.*$" all)
                 (string-append "# " all))
                ;; Comment out the test-char test, which needs networking and
                ;; fails within the build environment.
-               (("check-unit-.* tests/test-char" all)
+               ((".*'test-char':.*" all)
                 (string-append "# " all)))))
          (add-after 'patch-source-shebangs 'patch-embedded-shebangs
            (lambda _
@@ -1223,9 +1197,6 @@ three libraries:
 virtualization library.")
     (license license:lgpl2.1+)))
 
-(define-public python2-libvirt
-  (package-with-python2 python-libvirt))
-
 (define-public virt-manager
   (package
     (name "virt-manager")
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 34715a4cc8..6267ca92da 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
 ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
 ;;; Copyright © 2020 David Dashyan <mail@davie.li>
+;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -49,12 +50,15 @@
   #:use-module (gnu packages dns)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nss)
   #:use-module (gnu packages perl)
@@ -93,6 +97,133 @@ by creating encrypted host-to-host tunnels between multiple
 endpoints.")
     (license license:gpl3+)))
 
+(define-public strongswan
+  (package
+    (name "strongswan")
+    (version "5.9.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://download.strongswan.org/strongswan-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0qxhbash2nyh5k2h9zcysgwv61512w1wxk5plyai4b6v3rs2ziv1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'patch-command-file-names
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/libstrongswan/utils/process.c"
+               (("/bin/sh")
+                (string-append (assoc-ref inputs "bash") "/bin/sh")))
+
+             (substitute* "src/libstrongswan/tests/suites/test_process.c"
+               (("/bin/sh") (which "sh"))
+               (("/bin/echo") (which "echo"))
+               (("cat") (which "cat")))
+             #t))
+         (add-before 'check 'set-up-test-environment
+           (lambda* (#:key inputs #:allow-other-keys)
+             (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
+                                            "/share/zoneinfo"))
+             #t)))
+       #:configure-flags
+       (list
+        "--disable-ldap"
+        "--disable-mysql"
+        "--disable-systemd"
+
+        ;; Disable BSD-4 licensed plugins.
+        "--disable-blowfish"
+        "--disable-des"
+
+        ;; Make it usable.  The default configuration is far too minimal to be
+        ;; used with most common VPN set-ups.
+        ;; See <https://wiki.strongswan.org/projects/strongswan/wiki/Autoconf>.
+        "--enable-aesni"
+        "--enable-attr-sql"
+        "--enable-chapoly"
+        "--enable-curl"
+        "--enable-dhcp"
+        "--enable-eap-aka"
+        "--enable-eap-aka-3gpp"
+        "--enable-eap-dynamic"
+        "--enable-eap-identity"
+        "--enable-eap-md5"
+        "--enable-eap-mschapv2"
+        "--enable-eap-peap"
+        "--enable-eap-radius"
+        "--enable-eap-sim"
+        "--enable-eap-sim-file"
+        "--enable-eap-simaka-pseudonym"
+        "--enable-eap-simaka-reauth"
+        "--enable-eap-simaka-sql"
+        "--enable-eap-tls"
+        "--enable-eap-tnc"
+        "--enable-eap-ttls"
+        "--enable-ext-auth"
+        "--enable-farp"
+        "--enable-ha"
+        "--enable-led"
+        "--enable-md4"
+        "--enable-mediation"
+        "--enable-openssl"
+        "--enable-soup"
+        "--enable-sql"
+        "--enable-sqlite"
+        "--enable-xauth-eap"
+        "--enable-xauth-noauth"
+        "--enable-xauth-pam"
+
+        ;; Use libcap by default.
+        "--with-capabilities=libcap")))
+    (inputs
+     `(("curl" ,curl)
+       ("gmp" ,gmp)
+       ("libcap" ,libcap)
+       ("libgcrypt" ,libgcrypt)
+       ("libsoup" ,libsoup)
+       ("linux-pam" ,linux-pam)
+       ("openssl" ,openssl)))
+    (native-inputs
+     `(("coreutils" ,coreutils)
+       ("pkg-config" ,pkg-config)
+       ("tzdata" ,tzdata-for-tests)))
+    (synopsis "IKEv1/v2 keying daemon")
+    (description "StrongSwan is an IPsec implementation originally based upon
+the FreeS/WAN project.  It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
+NAT-T and more.")
+    (home-page "https://strongswan.org/")
+    (license
+     (list license:gpl2+
+           ;; src/aikgen/*
+           ;; src/libcharon/plugins/dnscert/*
+           ;; src/libcharon/plugins/ext_auth/*
+           ;; src/libcharon/plugins/vici/ruby/*
+           ;; src/libcharon/plugins/xauth_pam/xauth_pam_listener.[ch]
+           license:expat
+           ;; src/inclue/sys/*
+           license:bsd-3
+           ;; src/libstrongswan/plugins/sha3/sha3_keccak.c
+           license:public-domain
+           ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
+           (license:non-copyleft
+            "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
+            "pkcs11 contains a unknown permissive license. View the specific
+file for more details.")
+           ;; These files are not included in the
+           ;; build, they are disabled through
+           ;; options to ./configure
+           ;;
+           ;; src/libstrongswan/plugins/blowfish/bf_enc.c
+           ;; src/libstrongswan/plugins/blowfish/bf_locl.h
+           ;; src/libstrongswan/plugins/blowfish/bf_pi.h
+           ;; src/libstrongswan/plugins/blowfish/bf_skey.c
+           ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
+           ;; src/libstrongswan/plugins/des/des_crypter.c
+           license:bsd-4))))
+
 (define-public vpnc
   (package
    (name "vpnc")
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index d2cda59540..f70af1af50 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -47,6 +47,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -471,7 +472,7 @@ access.")
          ("font-google-noto" ,font-google-noto)
          ("font-openmoji" ,font-openmoji)
          ("openssl" ,openssl)
-         ("qtbase" ,qtbase)
+         ("qtbase" ,qtbase-5)
          ("qtmultimedia" ,qtmultimedia)
          ("qtsvg" ,qtsvg)))
       (home-page "https://kristall.random-projects.net")
@@ -722,7 +723,7 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.5.0")
+    (version "1.5.2")
     (source
      (origin
        (method url-fetch)
@@ -730,7 +731,7 @@ key-bindings (Emacs, vi, CUA), and is fully configurable in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "0ziidk1qv7gaj2pvbla09vznjgslgqwr9ljfd9hskrv6nc68wafs"))))
+        (base32 "0gqaipgs16kw711ijhshmbhhvlyjvh37wxdz059p4vvjhfrxbr1v"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #false))                ;no tests
@@ -834,7 +835,7 @@ http, and https via third-party applications.")
 (define-public tinmop
   (package
     (name "tinmop")
-    (version "0.6.2")
+    (version "0.8.1")
     (source
      (origin
        (method git-fetch)
@@ -843,7 +844,7 @@ http, and https via third-party applications.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1fz52agvxnavz375apb1pjalf3myjllr4pc096b6qvc6vzhadg4c"))))
+        (base32 "1lv1nckvzyhpn8cs6m40f2np15b3a8071kh7sy1216q2345s2ckc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("curl" ,curl)
@@ -904,3 +905,30 @@ http, and https via third-party applications.")
 interface.")
     (home-page "https://www.autistici.org/interzona/tinmop.html")
     (license license:gpl3+)))
+
+(define-public telescope
+  (package
+    (name "telescope")
+    (version "0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://git.omarpolo.com/telescope/snapshot/"
+                           "telescope-" version ".tar.gz"))
+       (sha256
+        (base32 "1j7cj7fmvl11dvyhb23jx20k4r7m310qnyq0pwz3ijdpm5s88rf1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no tests
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     `(("libevent"  ,libevent)
+       ("libressl"  ,libressl)
+       ("ncurses"   ,ncurses)))
+    (home-page "https://git.omarpolo.com/telescope/about/")
+    (synopsis "Gemini client with a terminal interface")
+    (description "Telescope is a w3m-like browser for Gemini.")
+    (license license:x11)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 98a3ce5983..0ecc12e361 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -238,7 +238,7 @@
              #t)))))
     (inputs
      `(("http-parser" ,http-parser)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (home-page "https://github.com/azadkuh/qhttp/")
     (synopsis "Qt-based HTTP Library")
     (description
@@ -318,7 +318,7 @@ Interface} specification.")
 (define-public monolith
   (package
     (name "monolith")
-    (version "2.5.0")
+    (version "2.6.0")
     (source
      (origin
        (method git-fetch)
@@ -327,7 +327,7 @@ Interface} specification.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0s6jyhz51d39ccz0ghr7hy1fww84b0pzsyb8s63qgxbndp2c42l0"))))
+        (base32 "0rz0b1fvyn94s4izzzrxyijwzc0np80qgmbwvg983nnzpzfr33ai"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -336,6 +336,7 @@ Interface} specification.")
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-clap" ,rust-clap-2)
         ("rust-cssparser" ,rust-cssparser-0.28)
+        ("rust-encoding-rs" ,rust-encoding-rs-0.8)
         ("rust-html5ever" ,rust-html5ever-0.24)
         ("rust-regex" ,rust-regex-1)
         ("rust-reqwest" ,rust-reqwest-0.11)
@@ -400,6 +401,10 @@ the same, being completely separated from the Internet.")
                                   "--with-http_ssl_module"
                                   "--with-http_v2_module"
                                   "--with-http_xslt_module"
+                                  "--with-http_gzip_static_module"
+                                  "--with-http_gunzip_module"
+                                  "--with-http_addition_module"
+                                  "--with-http_sub_module"
                                   "--with-pcre-jit"
                                   "--with-debug"
                                   "--with-stream"
@@ -1121,7 +1126,7 @@ project)
          (add-before 'check 'render-offscreen
            (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") #t)))))
     (inputs
-     `(("qtbase" ,qtbase)))
+     `(("qtbase" ,qtbase-5)))
     (home-page "http://qjson.sourceforge.net")
     (synopsis "Library that maps JSON data to QVariant objects")
     (description "QJson is a Qt-based library that maps JSON data to
@@ -1146,7 +1151,7 @@ instances, while JSON's objects will be mapped to @code{QVariantMap}.")
     (build-system gnu-build-system)
     (inputs
      `(("qca" ,qca)
-       ("qtbase" ,qtbase)))
+       ("qtbase" ,qtbase-5)))
     (arguments
      '(#:tests? #f                      ;FIXME: some tests are failing
        #:phases
@@ -5823,14 +5828,14 @@ config files---you only have to specify the www root.")
 (define-public goaccess
   (package
     (name "goaccess")
-    (version "1.0.2")
+    (version "1.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://tar.goaccess.io/goaccess-"
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1w84y61f3ldg2f28q6qlyr1scn3mcx0bsbq3i5xi5w193wh3xa2q"))
+                "0qf1mbri1ypfnsi7cz4yll229zpfnkhig70h6hz2h0wpz1fns8ln"))
               (modules '((guix build utils)))
               (snippet '(begin
                           (substitute* "src/error.h"
@@ -8142,7 +8147,7 @@ It contains the code shared by all Kiwix ports.")
        ("libmicrohttpd" ,libmicrohttpd)
        ("libzim" ,libzim)
        ("pugixml" ,pugixml)
-       ("qtbase" ,qtbase)
+       ("qtbase" ,qtbase-5)
        ("qtdeclarative" ,qtdeclarative)
        ("qtwebchannel" ,qtwebchannel)
        ("qtwebengine" ,qtwebengine)
@@ -8151,7 +8156,7 @@ It contains the code shared by all Kiwix ports.")
        ("zstd" ,zstd "lib")))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("qmake" ,qtbase)))
+       ("qmake" ,qtbase-5)))
     (home-page "https://wiki.kiwix.org/wiki/Software")
     (synopsis "Viewer and manager of ZIM files")
     (description "Kiwix Desktop allows you to enjoy a lot of different content
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index fe28585dd5..97fc921436 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -47,6 +47,8 @@
 ;;; Copyright © 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Renzo Poddighe <renzo@poddighe.nl>
+;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2021 Niklas Eklund <niklas.eklund@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -319,7 +321,7 @@ with X11 or Wayland, or in a text terminal with ncurses.")
    `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
      #:tests? #f)) ; Test suite is a rather manual process.
   (inputs
-   `(("qtbase" ,qtbase)
+   `(("qtbase" ,qtbase-5)
      ("qtscript" ,qtscript)
      ("qtsvg" ,qtsvg)
      ("qtx11extras" ,qtx11extras)))
@@ -359,6 +361,33 @@ high-level and flexible remapping mechanisms.  It affects the low-level
 layers (evdev and uinput), making remapping work in almost all the places.")
     (license license:gpl3+)))           ; see README.md (no licence headers)
 
+(define-public xkb-switch
+  (package
+    (name "xkb-switch")
+    (version "1.8.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/grwlf/xkb-switch")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1sd6ihgsswp6hjm1i4y092n4gl3gj0bc22grz4n7iy43mwphi40d"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f))                    ;no test target
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxkbfile" ,libxkbfile)))
+    (home-page "https://github.com/grwlf/xkb-switch")
+    (synopsis "Switch your X keyboard layouts from the command line")
+    (description
+     "xkb-switch is a C++ program that queries and changes the XKB layout
+state.")
+    (license license:gpl3+)))
+
 (define-public xclip
   (package
     (name "xclip")
@@ -2485,10 +2514,13 @@ Xwrits hides itself until you should take another break.")
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man1")))
                (mkdir-p bin)
                (install-file "xsettingsd" bin)
                (install-file "dump_xsettings" bin)
+               (install-file "xsettingsd.1" man)
+               (install-file "dump_xsettings.1" man)
                #t))))))
     (home-page "https://github.com/derat/xsettingsd")
     (synopsis "Xorg settings daemon")
@@ -2875,3 +2907,57 @@ Pressing the key again will cycle to the application's next window,
 if there's more than one.")
     (home-page "https://github.com/mkropat/jumpapp")
     (license license:expat)))
+
+(define-public xkbset
+  (package
+    (name "xkbset")
+    (version "0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://faculty.missouri.edu/~stephen/software/"
+                           name "/" name "-" version ".tar.gz"))
+       (sha256
+        (base32 "199mlm127zk1lr8nrq22n68l2l8cjwc4cgwd67rg1i6497n2y0xc"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("libx11" ,libx11)
+       ("perl" ,perl)
+       ("perl-tk" ,perl-tk)))
+    (arguments
+     `(#:tests? #f                      ; There are none.
+       #:make-flags
+       `(,,(string-append "CC=" (cc-for-target))
+         ,(string-append "X11PREFIX=" %output)
+         ,(string-append "X11BASE=" (assoc-ref %build-inputs "libx11"))
+         ,(string-append "INSTALL_MAN1=" %output "/share/man/man1"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-before 'install 'create-install-directories
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (mkdir-p out)
+               (with-directory-excursion out
+                 (for-each mkdir-p '("bin" "share/man/man1"))))
+             #t))
+         (add-after 'install 'wrap-perl-script
+           (lambda* (#:key outputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/xkbset-gui")
+               `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB"))))
+             #t))
+         (replace 'install-license-files
+           (lambda* (#:key outputs #:allow-other-keys)
+             (install-file "COPYRIGHT"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/doc/" ,name "-" ,version))
+             #t)))))
+    (home-page "https://faculty.missouri.edu/~stephen/software/")
+    (synopsis "User-preference utility for XKB extensions for X")
+    (description
+     "This is a program to help manage many of the XKB features of the X Window
+System.  This includes such features as MouseKeys, AccessX, StickyKeys,
+BounceKeys, and SlowKeys.  It includes a graphical program to help with
+MouseKeys-acceleration management.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index 38d013f874..814b567cce 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -736,7 +736,7 @@ allows you to shut down the computer from Xfce.")
 (define-public xfce4-settings
   (package
     (name "xfce4-settings")
-    (version "4.16.1")
+    (version "4.16.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/xfce/"
@@ -744,7 +744,7 @@ allows you to shut down the computer from Xfce.")
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "1iim6sbh58hjwdmwsdlbh9bdnrs2k98crapv3kdhwkd3gazf2a5v"))
+                "0zixl1yiksavp3a824hqczxx5q3l09f0ng37gxl5wlv0111cpmsd"))
               (patches (search-patches "xfce4-settings-defaults.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -1074,7 +1074,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
 (define-public ristretto
   (package
     (name "ristretto")
-    (version "0.10.0")
+    (version "0.11.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.xfce.org/src/apps/ristretto/"
@@ -1082,7 +1082,7 @@ inhibit interface which allows applications to prevent automatic sleep.")
                                   "ristretto-" version ".tar.bz2"))
               (sha256
                (base32
-                "0sa75m1w6yvv4xvzrwqiif6vnqgi29hjrixrh87nxss58bbms8hn"))))
+                "08w8nw6cl8kpvjnp7dxgpqlmi3s73amhrb7l0sbzmjy82ba30zl7"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("intltool" ,intltool)
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index a57a44f727..f07f9b91b1 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -32,6 +32,7 @@
 ;;; Copyright © 2021 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>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -878,7 +879,7 @@ building Perl SAX2 XML parsers, filters, and drivers.")
     (home-page "https://metacpan.org/release/XML-SAX-Base")
     (synopsis "Base class for SAX Drivers and Filters")
     (description "This module has a very simple task - to be a base class for
-PerlSAX drivers and filters.  It's default behaviour is to pass the input
+PerlSAX drivers and filters.  Its default behaviour is to pass the input
 directly to the output unchanged.  It can be useful to use this module as a
 base class so you don't have to, for example, implement the characters()
 callback.")
@@ -1090,14 +1091,14 @@ server, collect the answer, and finally decoding the XML to Perl.")
 (define-public perl-xml-feed
   (package
     (name "perl-xml-feed")
-    (version "0.61")
+    (version "0.63")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
                                   "XML-Feed-" version ".tar.gz"))
               (sha256
                (base32
-                "1zrslg7wz15sm1k28i3gp108cszh062ac24m3ydvr59pwfqs9br6"))))
+                "04frqhikmyq0i9ldraisbvppyjhqg6gz83l2rqpmp4f2h9n9k2lw"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)
@@ -2590,7 +2591,7 @@ for Python's ElementTree XML data structures, both for the standard
 ElementTree library and for the @uref{http://lxml.de, lxml.etree} library.
 
 For lxml.etree this package can be useful for providing XPath 2.0 selectors,
-because lxml.etree already has it's own implementation of XPath 1.0.")
+because lxml.etree already has its own implementation of XPath 1.0.")
     (license license:expat)))
 
 (define-public python-lxml
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 1afd028bbd..e590bb10e7 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -28,6 +28,7 @@
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,6 +55,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages aidc)
   #:use-module (gnu packages anthy)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
@@ -69,6 +71,7 @@
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages inkscape)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -3022,8 +3025,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "ad5540f6ecaec287c70259f0181e613561b716f6")
-        (revision "17"))
+  (let ((commit "31486f40f8e8f8923ca0799aea84b58799754564")
+        (revision "18"))
     (package
       (name "xf86-video-intel")
       (version (git-version "2.99.917" revision commit))
@@ -3032,11 +3035,11 @@ X server.")
          ;; there's no current tarball
          (method git-fetch)
          (uri (git-reference
-               (url "https://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel.git")
+               (url "https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel.git")
                (commit commit)))
          (sha256
           (base32
-           "09jdg5wrq708wc83027337qvdjb96827h7sjwjfl5ffiynfpwl95"))
+           "0lv6vlx9gvp34pidmx4gxgb0qjf0km0gabbaxw141nnvj1azv94y"))
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3517,7 +3520,7 @@ X server.")
 (define-public xf86-video-vesa
   (package
     (name "xf86-video-vesa")
-    (version "2.4.0")
+    (version "2.5.0")
     (source
       (origin
         (method url-fetch)
@@ -3527,7 +3530,7 @@ X server.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1373vsxn6qh00na0s9c09kf09gj78rzi98zq93id8v5zsya3qi5z"))))
+            "0nf6ai74c60xk96kgr8q9mx6lrxm5id3765ws4d801irqzrj85hz"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -6098,7 +6101,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "367")
+    (version "368")
     (source
      (origin
        (method url-fetch)
@@ -6108,7 +6111,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
              (string-append "ftp://ftp.invisible-island.net/xterm/"
                             "xterm-" version ".tgz")))
        (sha256
-        (base32 "07y51l06n344pjyxdddq6sdvxw25nl10irl4avynkqjnqyqsiw97"))))
+        (base32 "04p7db3j3n5dk1vvlas4231rh6jgr4qi6ppvpbq9xd5n62cidx9g"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
@@ -6304,15 +6307,15 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "4.0.6")
+    (version "4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.xpra.org/src/xpra-"
-                           version ".tar.xz"))
+                           version ".tar.gz"))
        (sha256
-        (base32 "1s49y2s75a8a70vj0micnmpic5zv1n32yjxy8fkxsqa6j5njyrww"))
-       (patches (search-patches "xpra-4.0.1-systemd-run.patch"))))
+        (base32 "1yg9asi3i3wf73ibc006xv3g77axvbyp81lyinwq27syabh30i1a"))
+       (patches (search-patches "xpra-4.2-systemd-run.patch"))))
     (build-system python-build-system)
     ;; see also http://xpra.org/trac/wiki/Dependencies
     (inputs `(
@@ -6351,6 +6354,7 @@ basic eye-candy effects.")
               ("python-lz4" ,python-lz4) ; Faster compression than zlib.
               ("python-netifaces" ,python-netifaces)))
     (native-inputs `(("pkg-config" ,pkg-config)
+                     ("pandoc" ,pandoc)
                      ("python-cython" ,python-cython)))
     (arguments
      `(#:configure-flags '("--without-Xdummy"
@@ -6387,7 +6391,7 @@ basic eye-candy effects.")
                  (close-port file)))
              ;; Add Xorg module paths.
              (append-to-file
-              "etc/xpra/xorg.conf"
+              "fs/etc/xpra/xorg.conf"
               (string-append "\nSection \"Files\"\nModulePath \""
                              (assoc-ref inputs "xf86-video-dummy") "/lib/xorg/modules,"
                              (assoc-ref inputs "xf86-input-mouse") "/lib/xorg/modules,"
@@ -6395,8 +6399,8 @@ basic eye-candy effects.")
                              (assoc-ref inputs "xorg-server") "/lib/xorg/modules\"\n"
                              "EndSection\n\n"))
              (substitute* '("xpra/scripts/config.py"
-                            "etc/xpra/conf.d/60_server.conf.in"
-                            "unittests/unit/server/mixins/notification_test.py")
+                            "fs/etc/xpra/conf.d/60_server.conf.in"
+                            "tests/unittests/unit/server/mixins/notification_test.py")
                ;; The trailing -- is intentional, so we only replace it inside
                ;; a command line.
                (("dbus-launch --")
@@ -6518,7 +6522,7 @@ and embedded platforms.")
   (package/inherit uim
     (name "uim-qt")
     (inputs
-     `(("qt" ,qtbase)
+     `(("qt" ,qtbase-5)
        ("qtx11extras" ,qtx11extras)
        ,@(package-inputs uim)))
     (arguments