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/accessibility.scm6
-rw-r--r--gnu/packages/admin.scm241
-rw-r--r--gnu/packages/algebra.scm44
-rw-r--r--gnu/packages/audio.scm17
-rw-r--r--gnu/packages/autogen.scm20
-rw-r--r--gnu/packages/aux-files/renpy/renpy.in21
-rw-r--r--gnu/packages/barrier.scm2
-rw-r--r--gnu/packages/base.scm6
-rw-r--r--gnu/packages/bioconductor.scm98
-rw-r--r--gnu/packages/bioinformatics.scm153
-rw-r--r--gnu/packages/browser-extensions.scm4
-rw-r--r--gnu/packages/c.scm9
-rw-r--r--gnu/packages/ccache.scm4
-rw-r--r--gnu/packages/certs.scm47
-rw-r--r--gnu/packages/chromium.scm8
-rw-r--r--gnu/packages/code.scm8
-rw-r--r--gnu/packages/compression.scm33
-rw-r--r--gnu/packages/coq.scm4
-rw-r--r--gnu/packages/cpp.scm7
-rw-r--r--gnu/packages/cran.scm241
-rw-r--r--gnu/packages/crates-io.scm59
-rw-r--r--gnu/packages/darwin.scm107
-rw-r--r--gnu/packages/databases.scm335
-rw-r--r--gnu/packages/diffoscope.scm4
-rw-r--r--gnu/packages/disk.scm52
-rw-r--r--gnu/packages/display-managers.scm4
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/docbook.scm29
-rw-r--r--gnu/packages/emacs-xyz.scm376
-rw-r--r--gnu/packages/emacs.scm4
-rw-r--r--gnu/packages/engineering.scm251
-rw-r--r--gnu/packages/erlang.scm493
-rw-r--r--gnu/packages/firmware.scm270
-rw-r--r--gnu/packages/flashing-tools.scm83
-rw-r--r--gnu/packages/freedesktop.scm56
-rw-r--r--gnu/packages/game-development.scm211
-rw-r--r--gnu/packages/games.scm9
-rw-r--r--gnu/packages/geo.scm49
-rw-r--r--gnu/packages/gimp.scm14
-rw-r--r--gnu/packages/gl.scm52
-rw-r--r--gnu/packages/glib.scm34
-rw-r--r--gnu/packages/gnome-xyz.scm90
-rw-r--r--gnu/packages/gnome.scm193
-rw-r--r--gnu/packages/golang.scm130
-rw-r--r--gnu/packages/gps.scm6
-rw-r--r--gnu/packages/graph.scm6
-rw-r--r--gnu/packages/graphics.scm4
-rw-r--r--gnu/packages/gtk.scm25
-rw-r--r--gnu/packages/guile-xyz.scm84
-rw-r--r--gnu/packages/hardware.scm13
-rw-r--r--gnu/packages/image-processing.scm11
-rw-r--r--gnu/packages/image.scm47
-rw-r--r--gnu/packages/instrumentation.scm4
-rw-r--r--gnu/packages/irc.scm23
-rw-r--r--gnu/packages/java.scm37
-rw-r--r--gnu/packages/javascript.scm100
-rw-r--r--gnu/packages/kde-frameworks.scm84
-rw-r--r--gnu/packages/linux.scm103
-rw-r--r--gnu/packages/lisp-xyz.scm277
-rw-r--r--gnu/packages/lisp.scm7
-rw-r--r--gnu/packages/llvm.scm48
-rw-r--r--gnu/packages/logging.scm64
-rw-r--r--gnu/packages/machine-learning.scm29
-rw-r--r--gnu/packages/mail.scm112
-rw-r--r--gnu/packages/maths.scm16
-rw-r--r--gnu/packages/maven.scm51
-rw-r--r--gnu/packages/messaging.scm4
-rw-r--r--gnu/packages/music.scm69
-rw-r--r--gnu/packages/networking.scm86
-rw-r--r--gnu/packages/ocaml.scm106
-rw-r--r--gnu/packages/orange.scm6
-rw-r--r--gnu/packages/package-management.scm6
-rw-r--r--gnu/packages/parallel.scm24
-rw-r--r--gnu/packages/patches/alpine-fix-privacy-policy-crash.patch39
-rw-r--r--gnu/packages/patches/epiphany-update-libportal-usage.patch53
-rw-r--r--gnu/packages/patches/fplll-std-fenv.patch18
-rw-r--r--gnu/packages/patches/java-commons-lang-fix-dependency.patch38
-rw-r--r--gnu/packages/patches/kismet-unbundle-boost.patch104
-rw-r--r--gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch22
-rw-r--r--gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch13
-rw-r--r--gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch15
-rw-r--r--gnu/packages/patches/mathjax-3.1.2-no-a11y.patch281
-rw-r--r--gnu/packages/patches/nftables-fix-makefile.patch34
-rw-r--r--gnu/packages/patches/omake-fix-non-determinism.patch15
-rw-r--r--gnu/packages/patches/public-inbox-fix-spawn-test.patch43
-rw-r--r--gnu/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch73
-rw-r--r--gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch11
-rw-r--r--gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch14
-rw-r--r--gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch29
-rw-r--r--gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch25
-rw-r--r--gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch65
-rw-r--r--gnu/packages/patches/timescaledb-flaky-test.patch107
-rw-r--r--gnu/packages/pcre.scm6
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/polkit.scm48
-rw-r--r--gnu/packages/python-check.scm31
-rw-r--r--gnu/packages/python-crypto.scm138
-rw-r--r--gnu/packages/python-science.scm31
-rw-r--r--gnu/packages/python-web.scm70
-rw-r--r--gnu/packages/python-xyz.scm434
-rw-r--r--gnu/packages/qt.scm3
-rw-r--r--gnu/packages/racket.scm17
-rw-r--r--gnu/packages/radio.scm4
-rw-r--r--gnu/packages/rails.scm10
-rw-r--r--gnu/packages/rocm.scm95
-rw-r--r--gnu/packages/ruby.scm45
-rw-r--r--gnu/packages/rust-apps.scm4
-rw-r--r--gnu/packages/rust.scm24
-rw-r--r--gnu/packages/shellutils.scm7
-rw-r--r--gnu/packages/ssh.scm52
-rw-r--r--gnu/packages/statistics.scm56
-rw-r--r--gnu/packages/terminals.scm4
-rw-r--r--gnu/packages/tex.scm391
-rw-r--r--gnu/packages/texinfo.scm79
-rw-r--r--gnu/packages/textutils.scm4
-rw-r--r--gnu/packages/time.scm5
-rw-r--r--gnu/packages/tls.scm22
-rw-r--r--gnu/packages/tor.scm4
-rw-r--r--gnu/packages/toys.scm18
-rw-r--r--gnu/packages/video.scm6
-rw-r--r--gnu/packages/vim.scm4
-rw-r--r--gnu/packages/virtualization.scm50
-rw-r--r--gnu/packages/web.scm9
-rw-r--r--gnu/packages/webkit.scm6
-rw-r--r--gnu/packages/wm.scm45
-rw-r--r--gnu/packages/xorg.scm63
-rw-r--r--gnu/packages/zig.scm4
127 files changed, 5664 insertions, 2462 deletions
diff --git a/gnu/packages/accessibility.scm b/gnu/packages/accessibility.scm
index 36210d3e52..22e70b737a 100644
--- a/gnu/packages/accessibility.scm
+++ b/gnu/packages/accessibility.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;;
@@ -89,14 +89,14 @@ terminals.")
 (define-public brltty
   (package
     (name "brltty")
-    (version "6.4")
+    (version "6.5")
     (source
      (origin
        (method url-fetch)
        (uri
         (string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
        (sha256
-        (base32 "0zybi9i9izv25g0wphl0snddrhb6xl5879y4pkpjpnxq61wm9gry"))))
+        (base32 "1h62xzd5k0aaq2k4v3w93rizxnb8psvkxrlx62wr08ybwpspgp7z"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f                      ; No target
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c368fc94bd..2a3e962858 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -45,6 +45,8 @@
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2021 muradm <mail@muradm.net>
+;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
@@ -66,6 +68,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages admin)
+  #:use-module (guix build-system cargo)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system emacs)
   #:use-module (guix build-system glib-or-gtk)
@@ -93,6 +96,7 @@
   #:use-module (gnu packages c)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cryptsetup)
@@ -101,6 +105,7 @@
   #:use-module (gnu packages elf)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
@@ -680,7 +685,7 @@ console.")
 (define-public htop
   (package
     (name "htop")
-    (version "3.2.0")
+    (version "3.2.1")
     (source
      (origin
        (method git-fetch)
@@ -688,7 +693,7 @@ console.")
              (url "https://github.com/htop-dev/htop")
              (commit version)))
        (sha256
-        (base32 "16l1r2ixzs640ybqp2x8bfyvk98kiywy7k3sjmp5j5npdzn5ryd7"))
+        (base32 "0yfmkw3y4qyd42svhpiijif7krvmnb8z88y6h9g4fwf7sfynq2rk"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (inputs
@@ -1127,6 +1132,77 @@ IPv6, proxies, and Unix sockets.")
     (license (list license:bsd-3
                    license:bsd-2))))  ; atomicio.*, socks.c
 
+(define-public nmon
+  (package
+    (name "nmon")
+    (version "16n")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/nmon/lmon" version ".c"))
+       (sha256
+        (base32 "1wpm2f30414b87kpbr9hbidblr5cmfby5skwqd0fkpi5v712q0f0"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ; no test suite
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'unpack
+                 (lambda _
+                   (copy-file #$(package-source this-package) "lmon.c")))
+               (delete 'configure)      ; no build system
+               (replace 'build
+                 ;; There is an example ‘Makefile’ in the .c file.
+                 (lambda _
+                   ;; These #defines aren't well-documented and, e.g., POWER was
+                   ;; not actually tested on every possible TARGET-POWERPC?.
+                   (let* ((system #$(cond ((target-x86-32?) "X86")
+                                          ((target-x86-64?) "X86")
+                                          ((target-arm?) "ARM")
+                                          ((target-powerpc?) "POWER")
+                                          (else "CROSS_FINGERS"))))
+                     (format #t "Building for ~a~%" system)
+                     (invoke #$(cc-for-target) "-o" "nmon" "lmon.c"
+                             "-g" "-Wall" "-D" system
+                             "-lncurses" "-lm"))))
+               (replace 'install
+                 (lambda _
+                   (let ((bin (string-append #$output "/bin"))
+                         (man1 (string-append #$output "/share/man/man1")))
+                     (install-file "nmon" bin)
+                     (mkdir-p man1)
+                     (copy-file #$(this-package-native-input "man-page")
+                                (string-append man1 "/nmon.1"))))))))
+    (native-inputs
+     (list `("man-page"
+             ,(origin
+                ;; There is no man page upstream, so install Debian's.
+                (method url-fetch)
+                (uri (string-append "https://salsa.debian.org/carnil/nmon/"
+                                    "-/raw/debian/" version "+debian-1/"
+                                    "debian/nmon.1"))
+                (sha256
+                 (base32
+                  "1gpvd2kjyhs18sh6sga5bk9wj8s78blfd4c0m38r0wl92jx2yv1b"))))))
+    (inputs
+     (list ncurses))
+    (home-page "http://nmon.sourceforge.net/")
+    (synopsis
+     "Monitor system performance in a terminal or to a @file{.csv} log file")
+    (description
+     "@acronym{Nmon, Nigel's performance monitor} is yet another system monitor
+useful in systems administration, debugging, tuning, and benchmarking.
+
+The configurable ncurses interface displays all the classic resource usage
+statistics (CPU, memory, network, disk, ...) as real-time graphs or numbers.
+It can also list the processes responsible in a @command{top}-like table.
+
+A less common nmon feature is its ability to create highly detailed log files
+in @acronym{CSV, comma-separated values} format.  These can be imported into
+spreadsheets or fed straight into an @acronym{RRD, round-robin database} using
+@command{rrdtool} for further analyisis, or to create colourful graphs.")
+    (license license:gpl3+)))
+
 (define-public sipcalc
   (package
     (name "sipcalc")
@@ -1769,7 +1845,7 @@ system administrator.")
 (define-public sudo
   (package
     (name "sudo")
-    (version "1.9.11")
+    (version "1.9.11p2")
     (source (origin
               (method url-fetch)
               (uri
@@ -1779,7 +1855,7 @@ system administrator.")
                                     version ".tar.gz")))
               (sha256
                (base32
-                "1gjingc1h7d6p17m0nn87yiwh8gbdchg4w4kv8s4g89wv0q6wixm"))
+                "1lli4z10b5j238cn7471jb8vcjlj5px68x48ysa3f1n0kzmih6d2"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -4987,4 +5063,161 @@ it won't take longer to install 15 machines than it would to install just 2.")
     (home-page "https://www.udpcast.linux.lu")
     (license license:gpl2+)))
 
+(define-public greetd
+  (package
+    (name "greetd")
+    (version "0.8.0")
+    (home-page "https://git.sr.ht/~kennylevinsen/greetd")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-nix" ,rust-nix-0.19)
+        ("rust-pam-sys" ,rust-pam-sys-0.5)
+        ("rust-rpassword" ,rust-rpassword-5)
+        ("rust-users" ,rust-users-0.11)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-serde-json" ,rust-serde-json-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-tokio" ,rust-tokio-1)
+        ("rust-getopts" ,rust-getopts-0.2)
+        ("rust-thiserror" ,rust-thiserror-1)
+        ("rust-async-trait" ,rust-async-trait-0.1)
+        ("rust-enquote" ,rust-enquote-1))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'package)
+         (add-after 'build 'build-man-pages
+           (lambda* (#:key inputs #:allow-other-keys)
+             (define (scdoc-cmd doc lvl)
+               (system (string-append "scdoc < "
+                                      doc "-" lvl ".scd > "
+                                      doc "." lvl)))
+             (with-directory-excursion "man"
+               (scdoc-cmd "greetd" "1")
+               (scdoc-cmd "greetd" "5")
+               (scdoc-cmd "greetd-ipc" "7")
+               (scdoc-cmd "agreety" "1"))))
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (sbin (string-append out "/sbin"))
+                    (share (string-append out "/share"))
+                    (man (string-append share "/man"))
+                    (man1 (string-append man "/man1"))
+                    (man5 (string-append man "/man5"))
+                    (man7 (string-append man "/man7"))
+                    (release "target/release")
+                    (greetd-bin (string-append release "/greetd"))
+                    (agreety-bin (string-append release "/agreety")))
+               (install-file greetd-bin sbin)
+               (install-file agreety-bin bin)
+               (with-directory-excursion "man"
+                 (install-file "greetd.1" man1)
+                 (install-file "greetd.5" man5)
+                 (install-file "greetd-ipc.7" man7)
+                 (install-file "agreety.1" man1))))))))
+    (native-inputs
+     `(("linux-pam" ,linux-pam)
+       ("scdoc" ,scdoc)))
+    (synopsis "minimal and flexible login manager daemon")
+    (description
+     "greetd is a minimal and flexible login manager daemon
+that makes no assumptions about what you want to launch.
+
+If you can run it from your shell in a TTY, greetd can start it.
+
+If it can be taught to speak a simple JSON-based IPC protocol,
+then it can be a greeter.")
+    (license license:gpl3+)))
+
+(define-public greetd-pam-mount
+  (package
+    (inherit pam-mount)
+    (name "greetd-pam-mount")
+    (arguments
+     (substitute-keyword-arguments (package-arguments pam-mount)
+       ((#:configure-flags flags ''())
+        #~(cons* "--with-rundir=/run/greetd" #$flags))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+           (add-after 'unpack 'patch-config-file-name
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/pam_mount.c"
+                 ((".*define CONFIGFILE .*$")
+                  "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n")
+                 (("pam_mount_config") "greetd_pam_mount_config")
+                 (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok"))))))))
+    (synopsis "pam-mount specifically compiled for use with greetd")
+    (description
+     "Pam-mount is a PAM module that can mount volumes when a user logs in.
+It supports mounting local filesystems of any kind the normal mount utility
+supports.  It can also mount encrypted LUKS volumes using the password
+supplied by the user when logging in.
+
+This package inherits pam-mount in the way that it is compiled specifically
+for use with greetd daemon. It uses different configuration location and
+name space for storing data in PAM.
 
+greetd-pam-mount is used in configuration of greetd to provide
+auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not
+interfere with default pam-mount configuration.")))
+
+(define-public libseat
+  (package
+    (name "libseat")
+    (version "0.7.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~kennylevinsen/seatd")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:configure-flags '("-Dlibseat-logind=elogind"
+                           "-Dserver=disabled")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("elogind" ,elogind)))
+    (home-page "https://sr.ht/~kennylevinsen/seatd")
+    (synopsis "Seat management library")
+    (description
+     "This package provides a universal seat management library that
+allows applications to use whatever seat management is available.")
+    (license license:expat)))
+
+(define-public seatd
+  (package
+    (inherit libseat)
+    (name "seatd")
+    (arguments
+     `(#:configure-flags '("-Dlibseat-logind=elogind")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'remove-libs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (with-directory-excursion (assoc-ref outputs "out")
+               (for-each delete-file-recursively '("lib" "include"))))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("scdoc" ,scdoc)))
+    (inputs '())
+    (synopsis "Seat management daemon")
+    (description
+     "This package provides a minimal seat management daemon whose task is to
+mediate access to shared devices, such as graphics and input, for applications
+that require it.")
+    (license license:expat)))
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 869a1373e5..3dd476ace9 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,10 +1,10 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2019, 2021, 2022 Eric Bavier <bavier@posteo.net>
@@ -154,7 +154,7 @@ line applications.")
 (define-public fplll
   (package
     (name "fplll")
-    (version "5.3.3")
+    (version "5.4.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -163,8 +163,7 @@ line applications.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06nyfidagp8pc2kfcw88ldgb2b1xm0a8z31n0sln7j72ihlmd8zj"))
-              (patches (search-patches "fplll-std-fenv.patch"))))
+                "0044nyfnwzgyfrsikbcbh00f54dd61hwn3fb6711rrskkfnw977a"))))
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake libtool pkg-config))
@@ -199,19 +198,14 @@ the real span of the lattice.")
 (define-public python-fpylll
   (package
     (name "python-fpylll")
-    (version "0.5.2")
+    (version "0.5.7")
     (source
      (origin
-       ;; Pypi contains and older release, so we use a tagged release from
-       ;; Github instead.
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/fplll/fpylll")
-             (commit (string-append version "dev"))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (pypi-uri "fpylll" version))
        (sha256
         (base32
-         "1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
+         "1xjqcwq90blgzvnbkbzdys8mdhi2b4li6faywm6yi8shxvz8iz0s"))))
     (build-system python-build-system)
     (inputs
      (list fplll gmp mpfr pari-gp))
@@ -248,6 +242,7 @@ the real span of the lattice.")
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke "./Configure"
+                     "--mt=pthread"
                      (string-append "--prefix="
                                     (assoc-ref outputs "out"))))))))
     (synopsis "PARI/GP, a computer algebra system for number theory")
@@ -1021,17 +1016,18 @@ extends it by a set of algebraic capabilities.")
 
        #:phases (modify-phases %standard-phases
                   (replace 'check
-                    (lambda _
+                    (lambda* (#:key tests? #:allow-other-keys)
                       (let* ((cores  (parallel-job-count))
                              (dash-j (format #f "-j~a" cores)))
-			(setenv "EIGEN_SEED" "1") ;for reproducibility
-                        ;; First build the tests, in parallel.  See
-                        ;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
-                        (invoke "make" "buildtests" dash-j)
+                        (when tests?
+                          (setenv "EIGEN_SEED" "1") ;for reproducibility
+                          ;; First build the tests, in parallel.  See
+                          ;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
+                          (invoke "make" "buildtests" dash-j)
 
-                        ;; Then run 'CTest' with -V so we get more
-                        ;; details upon failure.
-                        (invoke "ctest" "-V" dash-j)))))))
+                          ;; Then run 'CTest' with -V so we get more
+                          ;; details upon failure.
+                          (invoke "ctest" "-V" dash-j))))))))
     (home-page "https://eigen.tuxfamily.org")
     (synopsis "C++ template library for linear algebra")
     (description
@@ -1734,14 +1730,14 @@ no more than about 20 bits long).")
 (define-public sollya
   (package
    (name "sollya")
-   (version "7.0")
+   (version "8.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://www.sollya.org/releases/"
                                 "sollya-" version "/sollya-" version ".tar.bz2"))
             (sha256
              (base32
-              "11290ivi9h665cxi8f1shlavhy10vzb8s28m57hrcgnxyxqmhx0m"))))
+              "1sf1cjcr6x035n97l64ppzb9pzq5568h7waz0zfc3120894gcnjz"))))
    (build-system gnu-build-system)
    (inputs
     (list fplll
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8ec78f665c..70b0f1181c 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -3210,7 +3210,7 @@ tempo and pitch of an audio recording independently of one another.")
 (define-public rtmidi
   (package
     (name "rtmidi")
-    (version "4.0.0")
+    (version "5.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
@@ -3218,7 +3218,7 @@ tempo and pitch of an audio recording independently of one another.")
               (file-name (string-append "rtmidi-" version ".tar.gz"))
               (sha256
                (base32
-                "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
+                "1ff2yfq3k4l209fr71v3w98fpjjv1chs09vkbmxj03lcikahxns8"))))
     (build-system gnu-build-system)
     (inputs
      (list jack-1 alsa-lib))
@@ -3232,6 +3232,19 @@ classes) that provide a common cross-platform API for realtime MIDI
 input/output.")
     (license license:expat)))
 
+(define-public rtmidi-4.0
+  (package
+    (inherit rtmidi)
+    (version "4.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
+                                  "/release/rtmidi-" version ".tar.gz"))
+              (file-name (string-append "rtmidi-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))))
+
 (define-public sratom
   (package
     (name "sratom")
diff --git a/gnu/packages/autogen.scm b/gnu/packages/autogen.scm
index d0c8df17ec..9751e11a64 100644
--- a/gnu/packages/autogen.scm
+++ b/gnu/packages/autogen.scm
@@ -49,7 +49,7 @@
             "def_bf[MAXNAMELEN + 10]")))))
     (build-system gnu-build-system)
     (native-inputs (list pkg-config which))
-    (inputs (list guile-2.2 perl))          ; for doc generator mdoc
+    (inputs (list guile-3.0 perl))          ; for doc generator mdoc
     (arguments
      '(#:configure-flags
        ;; XXX Needed to build 5.18.16.  ./configure fails without it:
@@ -62,6 +62,24 @@
 
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'support-guile-3.0
+           ;; Upstream bug:
+           ;; https://sourceforge.net/p/autogen/bugs/196/
+           ;;
+           ;; Supported in Debian and openSUSE:
+           ;; https://salsa.debian.org/debian/autogen/-/blob/master/debian/patches/40_suse_04-guile-version.patch
+           (lambda _
+             (substitute* "agen5/guile-iface.h"
+               (("#elif GUILE_VERSION < 203000") "#elif GUILE_VERSION < 301000"))
+             (substitute* "configure"
+               (("2.2 2.0 1.8") "3.0 2.2 2.0 1.8"))))
+         (add-after 'unpack 'use-numeric-ids-in-tarball
+           ;; Pass arguments to tar to generate tarball with consistent uid
+           ;; and gid to ensure reproducible build
+           (lambda _
+             (substitute* "pkg/libopts/mklibsrc.sh"
+               (("--sort=name --format=gnu")
+                "--sort=name --format=gnu --owner=0 --group=0 --numeric-owner"))))
          (add-before 'build 'set-man-page-date
            ;; Avoid embedding the current date for reproducible builds
            (lambda _
diff --git a/gnu/packages/aux-files/renpy/renpy.in b/gnu/packages/aux-files/renpy/renpy.in
index 914a735fa4..9115d9aee3 100644
--- a/gnu/packages/aux-files/renpy/renpy.in
+++ b/gnu/packages/aux-files/renpy/renpy.in
@@ -1,12 +1,29 @@
 #! @PYTHON@
 # -*- mode: python -*-
 
-from __future__ import print_function
-
+import glob
 import os
 import sys
 import warnings
 
+def __renpy_files(directory):
+    for pattern in ['*.rpa', '*.rpyc', '*.rpy']:
+        for file in glob.iglob(pattern, root_dir=directory):
+            yield file
+
+def path_to_gamedir(basedir, name):
+    candidates = [name, 'game', 'data', 'launcher/game']
+
+    if __renpy_files(basedir):
+        return basedir
+
+    for candidate in candidates:
+        gamedir = os.path.join(basedir, candidate)
+        if __renpy_files(gamedir):
+            return gamedir
+
+    return basedir
+
 def path_to_common(renpy_base):
     return renpy_base + "/common"
 
diff --git a/gnu/packages/barrier.scm b/gnu/packages/barrier.scm
index 1382a0fd71..721fdcf314 100644
--- a/gnu/packages/barrier.scm
+++ b/gnu/packages/barrier.scm
@@ -46,7 +46,7 @@
              (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "10xk9szxxnqgfym53mcd9hqj1cw2ipncmiixw3i3ajlj1vn88qh1"))))
+        (base32 "19bwa9qidq2mxv1fkyxxc1xdmv3jx6bj35bkaaw70jzkblnfmlfs"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index b69a09a73f..33db96974f 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1308,7 +1308,7 @@ command.")
     (name "tzdata")
     ;; This package should be kept in sync with python-pytz in (gnu packages
     ;; time).
-    (version "2021e")
+    (version "2022a")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1316,7 +1316,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
+               "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg"))))
     (build-system gnu-build-system)
     (arguments
      (list #:tests? #f
@@ -1384,7 +1384,7 @@ command.")
                           version ".tar.gz"))
                     (sha256
                      (base32
-                      "0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq")))))
+                      "1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq")))))
     (home-page "https://www.iana.org/time-zones")
     (synopsis "Database of current and historical time zones")
     (description "The Time Zone Database (often called tz or zoneinfo)
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 176f7ecc6d..1e87b190c2 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -2188,6 +2188,50 @@ set analyses, and can deal with repeated or longitudinal data.")
 biological sequences.")
     (license license:gpl3)))
 
+(define-public r-deconvr
+  (package
+    (name "r-deconvr")
+    (version "1.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (bioconductor-uri "deconvR" version))
+              (sha256
+               (base32
+                "091z3lncamscsvzj63zzbw7dr7vnkn0jwfkm5ljq4112w4rxgrm3"))))
+    (properties `((upstream-name . "deconvR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-assertthat
+           r-biocgenerics
+           r-data-table
+           r-dplyr
+           r-e1071
+           r-foreach
+           r-genomicranges
+           r-iranges
+           r-magrittr
+           r-mass
+           r-matrixstats
+           r-methylkit
+           r-nnls
+           r-quadprog
+           r-rsq
+           r-s4vectors
+           r-tidyr))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/BIMSBbioinfo/deconvR")
+    (synopsis "Simulation and deconvolution of omic profiles")
+    (description
+     "This package provides a collection of functions designed for analyzing
+deconvolution of the bulk sample(s) using an atlas of reference omic signature
+profiles and a user-selected model.  Users are given the option to create or
+extend a reference atlas and,also simulate the desired size of the bulk
+signature profile of the reference cell types.  The package includes the
+cell-type-specific methylation atlas and, Illumina Epic B5 probe ids that can
+be used in deconvolution.  Additionally, we included @code{BSmeth2Probe}, to
+make mapping WGBS data to their probe IDs easier.")
+    (license license:artistic2.0)))
+
 (define-public r-decoupler
   (package
     (name "r-decoupler")
@@ -2232,13 +2276,13 @@ targeted by a kinase.")
 (define-public r-deepsnv
   (package
     (name "r-deepsnv")
-    (version "1.42.0")
+    (version "1.42.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "deepSNV" version))
               (sha256
                (base32
-                "0si1x2bi5pff1dicpqg7hv4ziq46vm7lic72724ljsclpz9bfv6q"))))
+                "0bgj1grv3a5bqhcdsw445x49kl3pz367svy6fnrzfsk9bmj46kgn"))))
     (properties `((upstream-name . "deepSNV")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3103,13 +3147,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.30.2")
+    (version "1.30.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "0rqvwhs6d8ls1rq7j5ywl5k0qgblxpzimilyw335bi1yad5s10h3"))))
+                "1rs3wmasl9mx7f399iclvm0bnvggvjj2a88zbi294r5m8wxqlc92"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -3142,7 +3186,7 @@ powerful online queries from gene annotation to database mining.")
                 (string-append
                  m "; if (!is.na(Sys.getenv(\"SOURCE_DATE_EPOCH\"))) {set.seed(100)}\n"))))))))
     (propagated-inputs
-     (list r-futile-logger r-snow r-bh))
+     (list r-bh r-codetools r-futile-logger r-snow))
     (native-inputs
      (list r-knitr))
     (home-page "https://bioconductor.org/packages/BiocParallel")
@@ -3934,13 +3978,13 @@ alignments.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.48.1")
+    (version "1.48.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "18ain5s0ry6w0ki4c0czvwax2ncigrldyac30a6mlbzyaga6i54h"))))
+                "0f14p1ma2y8l60p9sxmh5j0axws9by1cznczb2jxipphpb4slpl1"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -4193,14 +4237,14 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-keggrest
   (package
     (name "r-keggrest")
-    (version "1.36.0")
+    (version "1.36.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGREST" version))
        (sha256
         (base32
-         "0hzlm6nzmx0iyjh063512a3ghc1xqb58g5z2bnd2wl4y42iww7bg"))))
+         "1rn03w8y80prbvzahkvf8275haiymnjj1ijcgn55p3d0sb54yzgw"))))
     (properties `((upstream-name . "KEGGREST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4932,14 +4976,14 @@ tab-delimited (tabix) files.")
 (define-public r-restfulr
   (package
     (name "r-restfulr")
-    (version "0.0.13")
+    (version "0.0.14")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "restfulr" version))
        (sha256
         (base32
-         "1dk45mzrr6ka92yjz7hfhkj12kpx1wg4szv1h1mg80mgga4ganbv"))))
+         "1sdlz8zl4xvd7cpn1gm86q7jv9v7561gg4wk6y7zybiw37pxghq6"))))
     (properties `((upstream-name . "restfulr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5909,13 +5953,13 @@ libraries for systems that do not have these available via other means.")
 (define-public r-zellkonverter
   (package
     (name "r-zellkonverter")
-    (version "1.6.1")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zellkonverter" version))
        (sha256
-        (base32 "1w3qi35vk289cpky1pb0wgg1hr55s5kdw7np98i9c1vmwi3gvwr7"))))
+        (base32 "0s1n3impm4k55pac8mr18czylsc30yqcvdfdki4sawk74b2rkx8c"))))
     (properties `((upstream-name . "zellkonverter")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6383,14 +6427,14 @@ determining dependencies between variables, code improvement suggestions.")
 (define-public r-chippeakanno
   (package
     (name "r-chippeakanno")
-    (version "3.30.0")
+    (version "3.30.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPpeakAnno" version))
        (sha256
         (base32
-         "1ch636j3zd6hcfnl455vjs36wffrdhwzyvkbikcwjg7idiknjdkf"))))
+         "0a26glldxczcfymjvd45gv5m4hympziivm6wwx4ab9wld7n43l8y"))))
     (properties `((upstream-name . "ChIPpeakAnno")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7368,14 +7412,14 @@ and summarizing a set of statistics using a weighted distance approach.")
 (define-public r-nbpseq
   (package
     (name "r-nbpseq")
-    (version "0.3.0")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "NBPSeq" version))
        (sha256
         (base32
-         "0l4ylxhs2k9ww21jjqs67fygk92avdchhx2y1ixzl7yr2yh1y9by"))))
+         "07mnnk4n0cyksp1mw36y6369is62kxsfg3wb8d3dwswycdmj8m14"))))
     (properties `((upstream-name . "NBPSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7652,14 +7696,14 @@ single cell assay data.")
 (define-public r-monocle
   (package
     (name "r-monocle")
-    (version "2.24.0")
+    (version "2.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "monocle" version))
        (sha256
         (base32
-         "1fyqd7qhij2iyx9vdmgnx2qf0w3kwbkmg805539zrmxry8cwfldb"))))
+         "11g1wx0f1yzhg3x1aa3d5l7pqlzxj16s0gha21skxkgld8k2x8xn"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -8699,14 +8743,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
 (define-public r-clusterprofiler
   (package
     (name "r-clusterprofiler")
-    (version "4.4.1")
+    (version "4.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "clusterProfiler" version))
        (sha256
         (base32
-         "03bg3agisrm4q10gg57dksvd1ws37if6a1gwcxaybb4c50zadm8p"))))
+         "07fbc3d06990qy1qcaqqgm5ma2l0h08bwfkqrnlfd9f2xcppdywd"))))
     (properties
      `((upstream-name . "clusterProfiler")))
     (build-system r-build-system)
@@ -10768,14 +10812,14 @@ annotations.")
 (define-public r-rsubread
   (package
     (name "r-rsubread")
-    (version "2.10.1")
+    (version "2.10.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rsubread" version))
        (sha256
         (base32
-         "1cf80gmzz4c1pvif3350ifsmsbfplyl2na39n8g3x0zkwpl6ijdc"))))
+         "1pvyx8nxv10s816hgxrnw60hp9rlqjdgjq3ajpzqxgxmmlhnk0v0"))))
     (properties `((upstream-name . "Rsubread")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -12235,14 +12279,14 @@ data.")
 (define-public r-universalmotif
   (package
     (name "r-universalmotif")
-    (version "1.14.0")
+    (version "1.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "universalmotif" version))
        (sha256
         (base32
-         "0n2msyyy1xhapkd66j4xwabg4qfd62l01p1nmafjwifnjsx45xvp"))))
+         "1sm54z8aq3534qjsa19wychhwcvwnjlkydmiqqvidiiwcxwqpjsr"))))
     (properties
      `((upstream-name . "universalmotif")))
     (build-system r-build-system)
@@ -13806,14 +13850,14 @@ provided.")
 (define-public r-hdf5array
   (package
     (name "r-hdf5array")
-    (version "1.24.0")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HDF5Array" version))
        (sha256
         (base32
-         "0s9vj74359ckmwl8r951jxrzkidslwdl9qamkhz8ilw8b5awxyw4"))))
+         "1r1lg7k60qgb489xkypd4gvm1fmdlihvylb5va6xj58ipndbfday"))))
     (properties `((upstream-name . "HDF5Array")))
     (build-system r-build-system)
     (inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 13bd51860d..22b70a136f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -111,6 +111,7 @@
   #:use-module (gnu packages jupyter)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lsof)
   #:use-module (gnu packages machine-learning)
@@ -830,13 +831,13 @@ servers supporting the protocol.")
 (define-public python-pybedtools
   (package
     (name "python-pybedtools")
-    (version "0.8.2")
+    (version "0.9.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pybedtools" version))
               (sha256
                (base32
-                "0wc7z8g8prgdx7n5chjva2fdq03wiwhqisjjxzkjg1j5k5ha7151"))))
+                "18rhzk08d3rpxhi5xh6pqg64x6v5q3daw6y3v54k85v4swncjrwj"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((srfi srfi-26)
@@ -896,11 +897,16 @@ servers supporting the protocol.")
     (home-page "https://pythonhosted.org/pybedtools/")
     (synopsis "Python wrapper for BEDtools programs")
     (description
-     "pybedtools is a Python wrapper for Aaron Quinlan's BEDtools programs,
+     "This package is a Python wrapper for Aaron Quinlan's BEDtools programs,
 which are widely used for genomic interval manipulation or \"genome algebra\".
 pybedtools extends BEDTools by offering feature-level manipulations from with
 Python.")
-    (license license:gpl2+)))
+    ;; pypi lists GPLv2 in the PKG-INFO and website, but was relicensed in
+    ;; version 0.9.0 and the LICENSE.txt is consistant with the source code.
+    ;;
+    ;; pybedtools/include/gzstream.cpp and pybedtools/include/gzstream.h are
+    ;; licensed lgpl2.1+
+    (license (list license:expat license:lgpl2.1+))))
 
 (define-public python-biom-format
   (package
@@ -13375,6 +13381,145 @@ information...  The package can also be used to extract data from @code{.loom}
 files.")
       (license license:expat))))
 
+(define-public python-ctxcore
+  (package
+    (name "python-ctxcore")
+    (version "0.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aertslab/ctxcore")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "16nlj7z8pirgjad7vlgm7226b3hpw4a7n967vyfg26dsf5n8k70d"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'pretend-version
+            ;; The version string is usually derived via setuptools-scm, but
+            ;; it doesn't work without the .git directory.
+            (lambda _
+              (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
+    (propagated-inputs
+     (list python-cytoolz
+           python-numba
+           python-frozendict
+           python-numpy
+           python-pandas
+           python-pyyaml
+           python-pyarrow-0.16
+           python-tqdm))
+    (native-inputs
+     (list python-pytest
+           python-setuptools-scm))
+    (home-page "https://github.com/aertslab/ctxcore")
+    (synopsis "Core functions for pycisTarget and the SCENIC tool suite")
+    (description
+     "ctxcore is part of the SCENIC suite of tools.  It provides core functions for
+pycisTarget and SCENIC.")
+    (license license:gpl3+)))
+
+(define-public python-arboreto
+  (package
+    (name "python-arboreto")
+    (version "0.1.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/aertslab/arboreto")
+                    (commit "2f475dca08f47a60acc2beb8dd897e77b7495ca4")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0l0im8ay7l2d24f7vaha454vsaha9s36bfqhbijg3b8ir8apsd7l"))))
+    (build-system python-build-system)
+    ;; Lots of tests fail because python-distributed fails to start the
+    ;; "Nanny" process.
+    (arguments '(#:tests? #false))
+    (propagated-inputs
+     (list python-bokeh
+           python-dask
+           python-distributed
+           python-numpy
+           python-pandas
+           python-scikit-learn
+           python-scipy
+           python-tornado-6))
+    (home-page "https://github.com/aertslab/arboreto")
+    (synopsis "Gene regulatory network inference using tree-based ensemble regressors")
+    (description
+     "This package implements scalable gene regulatory network inference using
+tree-based ensemble regressors.")
+    (license license:bsd-3)))
+
+(define-public pyscenic
+  (package
+    (name "pyscenic")
+    (version "0.11.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/aertslab/pySCENIC")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0pbmmr1zdb1vbbs6wx357s59d13pna6x03wq8blj6ckjws8bbq73"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Numba needs a writable dir to cache functions.
+         (add-before 'check 'set-numba-cache-dir
+           (lambda _
+             (setenv "NUMBA_CACHE_DIR" "/tmp")))
+         (replace 'check
+           (lambda _
+             (invoke "pytest" "-v"))))))
+    (propagated-inputs
+     (list python-ctxcore
+           python-cytoolz
+           python-multiprocessing-on-dill
+           python-llvmlite
+           python-numba
+           python-attrs
+           python-frozendict
+           python-numpy
+           python-pandas
+           python-cloudpickle
+           python-dask
+           python-distributed
+           python-arboreto
+           python-boltons
+           python-setuptools
+           python-pyyaml
+           python-tqdm
+           python-interlap
+           python-umap-learn
+           python-loompy
+           python-networkx
+           python-scipy
+           python-fsspec
+           python-requests
+           python-aiohttp
+           python-scikit-learn))
+    (native-inputs
+     (list python-pytest))
+    (home-page "https://scenic.aertslab.org/")
+    (synopsis "Single-Cell regulatory network inference and clustering")
+    (description
+     "pySCENIC is a Python implementation of the SCENIC pipeline (Single-Cell
+rEgulatory Network Inference and Clustering) which enables biologists to infer
+transcription factors, gene regulatory networks and cell types from
+single-cell RNA-seq data.")
+    (license license:gpl3+)))
+
 (define-public vbz-compression
   (package
     (name "vbz-compression")
diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm
index f305552076..1012e4b643 100644
--- a/gnu/packages/browser-extensions.scm
+++ b/gnu/packages/browser-extensions.scm
@@ -51,7 +51,7 @@ supported content to the Kodi media center.")
 (define ublock-origin
   (package
     (name "ublock-origin")
-    (version "1.42.4")
+    (version "1.43.0")
     (home-page "https://github.com/gorhill/uBlock")
     (source (origin
               (method git-fetch)
@@ -62,7 +62,7 @@ supported content to the Kodi media center.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1is55pxnlylcr1pfigwgfn7kcx1rapy1cafdh6g83bdhscgh75g3"))))
+                "0w0by41v1s1cbd3bfjlb7kxr2bl6r5z3jvizlx02x14hqlppma9k"))))
     (build-system gnu-build-system)
     (outputs '("xpi" "firefox" "chromium"))
     (arguments
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index e0623beec4..3e49539473 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -399,7 +399,7 @@ as dictionaries, skip lists, and memory pools.")
 (define-public packcc
   (package
     (name "packcc")
-    (version "1.5.0")
+    (version "1.7.2")
     (home-page "https://github.com/arithy/packcc")
     (source (origin
               (method git-fetch)
@@ -409,7 +409,7 @@ as dictionaries, skip lists, and memory pools.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1n9ivsa6b9ps2jbh34bycjqjpbwbk85l4jjg46pfhqxzz96793wy"))))
+                "1mb6ys5ylvjz0xpq6769ir98s80p98s9ahd0c9k8p2ra1w20vz33"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -433,8 +433,7 @@ as dictionaries, skip lists, and memory pools.")
                         (install-file "release/bin/packcc"
                                       (string-append out "/bin"))
                         (install-file "../../README.md"
-                                      (string-append out "/share/doc/packcc"))
-                        #t))))))
+                                      (string-append out "/share/doc/packcc"))))))))
     (native-inputs
      (list bats))
     (synopsis "Packrat parser generator for C")
diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm
index d359e30f81..3ce44766fa 100644
--- a/gnu/packages/ccache.scm
+++ b/gnu/packages/ccache.scm
@@ -32,14 +32,14 @@
 (define-public ccache
   (package
     (name "ccache")
-    (version "4.6")
+    (version "4.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/ccache/ccache/releases/download/v"
                            version "/ccache-" version ".tar.xz"))
        (sha256
-        (base32 "1sa576ff8hc1swq55mdfp5gsnpys276gf37n83k6k49myihbharx"))))
+        (base32 "1lgk6fbfsnh2fscjmhpak8gwp3njq3kr0ihjcjlas15mrg9ppm75"))))
     (build-system cmake-build-system)
     (native-inputs (list perl ; for test/run
                          (@ (gnu packages base) which)))
diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm
index d410b05860..53fb027563 100644
--- a/gnu/packages/certs.scm
+++ b/gnu/packages/certs.scm
@@ -28,6 +28,7 @@
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
@@ -159,31 +160,27 @@ that was originally contributed to Debian.")
     (inputs '())
     (propagated-inputs '())
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (rnrs io ports)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases
-           (map (cut assq <> %standard-phases)
-                '(set-paths install-locale unpack))
-         (add-after 'unpack 'install
-           (lambda _
-             ;; TODO: On the next rebuild cycle, remove references to
-             ;; '%output' and '%outputs'.
-             (let ((certsdir (string-append ,(if (%current-target-system)
-                                                 '(assoc-ref %outputs "out")
-                                                 '%output)
-                                            "/etc/ssl/certs/")))
-               (with-directory-excursion "nss/lib/ckfw/builtins/"
-                 (unless (file-exists? "blacklist.txt")
-                   (call-with-output-file "blacklist.txt" (const #t)))
-                 ;; Extract selected single certificates from blob.
-                 (invoke "certdata2pem")
-                 ;; Copy .pem files into the output.
-                 (for-each (cut install-file <> certsdir)
-                           (find-files "." ".*\\.pem$")))
-               (invoke "openssl" "rehash" certsdir)))))))
+     (list #:modules '((guix build gnu-build-system)
+                       (guix build utils)
+                       (rnrs io ports)
+                       (srfi srfi-26))
+           #:phases
+           #~(modify-phases
+                 (map (cut assq <> %standard-phases)
+                      '(set-paths install-locale unpack))
+               (add-after 'unpack 'install
+                 (lambda _
+                   (let ((certsdir (string-append #$output
+                                                  "/etc/ssl/certs/")))
+                     (with-directory-excursion "nss/lib/ckfw/builtins/"
+                       (unless (file-exists? "blacklist.txt")
+                         (call-with-output-file "blacklist.txt" (const #t)))
+                       ;; Extract selected single certificates from blob.
+                       (invoke "certdata2pem")
+                       ;; Copy .pem files into the output.
+                       (for-each (cut install-file <> certsdir)
+                                 (find-files "." ".*\\.pem$")))
+                     (invoke "openssl" "rehash" certsdir)))))))
     (synopsis "CA certificates from Mozilla")
     (description
      "This package provides certificates for Certification Authorities (CA)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 5936ab23c3..bdfebed99e 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -312,8 +312,8 @@
   ;; run the Blink performance tests, just remove everything to save ~70MiB.
   '("third_party/blink/perf_tests"))
 
-(define %chromium-version "102.0.5005.61")
-(define %ungoogled-revision (string-append %chromium-version "-3"))
+(define %chromium-version "102.0.5005.115")
+(define %ungoogled-revision (string-append %chromium-version "-1"))
 (define %debian-revision "debian/102.0.5005.61-1")
 
 (define %ungoogled-origin
@@ -324,7 +324,7 @@
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "19i4ygxjm503dmck3bdqv3fcpda3dp9wr7z306pi6i1k989rbs8l"))))
+      "1z2xkxxviggyyksga74cqa4v73gynlgzi22ckg8yv84qxrklik6p"))))
 
 (define %debian-origin
   (origin
@@ -477,7 +477,7 @@
                                   %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "07vbi3gn9g4n04b2qi2hm34r122snrqaifa46yk3pyh1d79rfdqs"))
+                "1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 4432e0b851..b2959aafb2 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -390,7 +390,7 @@ features that are not supported by the standard @code{stdio} implementation.")
 (define-public universal-ctags
   (package
     (name "universal-ctags")
-    (version "5.9.20210509.0")
+    (version "5.9.20220605.0")
     (source
      (origin
        (method git-fetch)
@@ -400,14 +400,14 @@ features that are not supported by the standard @code{stdio} implementation.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1sq94bnbzr40zwihfnsna759bbak0lw27j0yn12iwpg4xgb4hhwp"))
+         "0mri7m2qsw5pyq1ajapawvxn2cdrzg1vi4w2bdq0z4ws4q03lj7k"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove the bundled PackCC and associated build rules.
            (substitute* "Makefile.am"
              (("^PACKCC = .*")
-              "PACKCC = packcc")
+              "PACKCC = packcc\n")
              (("\\$\\(PACKCC_FILES\\)")
               "")
              (("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): \\$\\(PACKCC\\)")
@@ -437,7 +437,7 @@ features that are not supported by the standard @code{stdio} implementation.")
     (native-inputs
      (list autoconf automake packcc perl pkg-config))
     (inputs
-     (list jansson libseccomp libxml2 libyaml))
+     (list jansson libseccomp libxml2 libyaml pcre2))
     (home-page "https://ctags.io/")
     (synopsis "Generate tag files for source code")
     (description
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 88c6979464..28561e38e8 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2554,29 +2554,30 @@ chunks.")
 (define-public c-blosc
   (package
     (name "c-blosc")
-    (version "1.18.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/Blosc/c-blosc")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70"))))
+    (version "1.21.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Blosc/c-blosc")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gy9a7wp7x71x5l3rprx8wpb3c5cn7wqc77gdiffq35hr34q88p9"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; In a rare victory, we may delete all bundled libs to no ill effect.
+        '(delete-file-recursively "internal-complibs"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       '("-DDEACTIVATE_AVX2=ON"
+       '("-DBUILD_STATIC=OFF"
+         "-DDEACTIVATE_AVX2=ON"
          "-DPREFER_EXTERNAL_LZ4=ON"
-         "-DPREFER_EXTERNAL_SNAPPY=ON"
          "-DPREFER_EXTERNAL_ZLIB=ON"
          "-DPREFER_EXTERNAL_ZSTD=ON")))
     (inputs
-     `(("lz4" ,lz4)
-       ("snappy" ,snappy)
-       ("zlib" ,zlib)
-       ("zstd:lib" ,zstd "lib")))
+     (list lz4 snappy zlib `(,zstd "lib")))
     (home-page "https://blosc.org")
     (synopsis "Blocking, shuffling and lossless compression library")
     (description
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 5c73c4a269..bbb6c4d435 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -52,7 +52,7 @@
 (define-public coq-core
   (package
     (name "coq-core")
-    (version "8.15.1")
+    (version "8.15.2")
     (source
      (origin
        (method git-fetch)
@@ -62,7 +62,7 @@
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "04csl4fvl41hizn95c4j9gxkl28495fzqdgm83ss67s5jvbfczvs"))
+         "1m6dilfbp9q8j8sya4ap82q72m3a4mq6m96gzvi6vgv04cr6r33c"))
        (patches (search-patches "coq-fix-envvars.patch"))))
     (native-search-paths
      (list (search-path-specification
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 87bd43356a..78e4f3bd8e 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -886,7 +886,7 @@ and make @code{cpplint} usable in wider contexts.")
 (define-public reproc
   (package
     (name "reproc")
-    (version "14.1.0")
+    (version "14.2.4")
     (source
       (origin
         (method git-fetch)
@@ -895,13 +895,12 @@ and make @code{cpplint} usable in wider contexts.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-          (base32
-            "1n71wb50qv2dmhjgw7azx5gigbrp19l2n3d41g9p05l5l0y1qg0q"))))
+          (base32 "09xnf8hmld1fk8j33zwlz1qcxnjdx1ncbg62csic9va4m1wc2v1d"))))
    (build-system cmake-build-system)
    (arguments
       ;; No tests.
     `(#:tests? #f
-      ;; Enable building of shared library.
+      ;; Build the shared library instead of a static one.
       #:configure-flags `("-DBUILD_SHARED_LIBS=1")))
    (native-inputs
     (list pkg-config))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 0299e0041e..96dca393e6 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -104,6 +104,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages tex)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages uglifyjs)
@@ -116,13 +117,13 @@
 (define-public r-afpt
   (package
     (name "r-afpt")
-    (version "1.1.0.1")
+    (version "1.1.0.2")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "afpt" version))
               (sha256
                (base32
-                "0cg5cdm9nl1hs6f3j0ljpw4bkqvh3ksyj615b9nnbqs5k28lyds9"))))
+                "1z0r4r7prxbhadmkdg6345g0b5vq9dqyyw9hh3fpad9zkc7k6xbc"))))
     (properties `((upstream-name . "afpt")))
     (build-system r-build-system)
     (native-inputs (list r-knitr))
@@ -635,13 +636,13 @@ benchmarks from running the @code{benchmarkme} package.")
 (define-public r-benchmarkme
   (package
     (name "r-benchmarkme")
-    (version "1.0.7")
+    (version "1.0.8")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "benchmarkme" version))
               (sha256
                (base32
-                "0ymgsxzrvnpyvs0cff09d3lrkl12qyqx5bwammsc4vgl5ng9p69p"))))
+                "0qaz8wy3n08k9lr8qljk5i8z8db18scbdc8m734aymd307h00w8x"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -652,6 +653,7 @@ benchmarks from running the @code{benchmarkme} package.")
            r-foreach
            r-httr
            r-matrix
+           r-stringr
            r-tibble))
     (home-page "https://csgillespie.github.io/benchmarkme/")
     (synopsis "Crowd-sourced system benchmarks")
@@ -4349,13 +4351,13 @@ curve to a data matrix in arbitrary dimensions.")
 (define-public r-restrserve
   (package
     (name "r-restrserve")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RestRserve" version))
        (sha256
-        (base32 "1ydsdgy6mxl0zqk7xqf4v6if5nf2qv7k48q340fhaqyjk2gd60p7"))))
+        (base32 "03mlzhs2k728kwy6csp60m7qy8n9ma5dd37j87rzh07fcdlx8wim"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-checkmate
@@ -4442,14 +4444,14 @@ plot networks.")
 (define-public r-proxy
   (package
     (name "r-proxy")
-    (version "0.4-26")
+    (version "0.4-27")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "proxy" version))
        (sha256
         (base32
-         "0k8sr24mjfvxp12sf1j9228ah3ngy15nqmm0jw14x5s32f1assv7"))))
+         "0gsng2aggnljl4z82la9hpnd26hngzhj8fizx4wx22npqjj93694"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/proxy")
     (synopsis "Distance and similarity measures")
@@ -4462,13 +4464,13 @@ most popular ones.")
 (define-public r-sp
   (package
     (name "r-sp")
-    (version "1.4-7")
+    (version "1.5-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sp" version))
        (sha256
-        (base32 "1bdi06n5zkjnnyh0rallf04s0vlcx9rg9p5q7s6vfqvkf19nk501"))))
+        (base32 "077q1wh9ihhcn1338xspnd90hy16ljxsav1xcrxdxj4fyynhd6lk"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice))
@@ -4794,14 +4796,14 @@ those for the gamma distribution in the @code{stats} package.")
 (define-public r-bdsmatrix
   (package
     (name "r-bdsmatrix")
-    (version "1.3-4")
+    (version "1.3-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bdsmatrix" version))
        (sha256
         (base32
-         "1sh6pg43rgqvips4fx0k4vmp5i9lmniix0bqwj2yq5m06gs227i5"))))
+         "1g300x11rv56f826mbv7mbb67a5xz3dv74hpjc18jh3q8gap3j7r"))))
     (properties `((upstream-name . "bdsmatrix")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/bdsmatrix/")
@@ -5083,13 +5085,13 @@ available in a vignette.")
 (define-public r-progressr
   (package
     (name "r-progressr")
-    (version "0.10.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "progressr" version))
        (sha256
-        (base32 "1p5s35rzh28n2id2lipgyqmh3wzib66m7x0pz9028y8cql8xr5ac"))))
+        (base32 "1ldf7hqsz8vbjggz31990sqqyhrbiilzcnyla1krjlkg595h50wg"))))
     (properties `((upstream-name . "progressr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5425,14 +5427,14 @@ provided.")
 (define-public r-ipred
   (package
     (name "r-ipred")
-    (version "0.9-12")
+    (version "0.9-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ipred" version))
        (sha256
         (base32
-         "0hsq00382pfd9hzpcgphjxazbxm4zx0k2r6pk6kib56k0ibm7qfn"))))
+         "162ckhqn24l0l5ih7qi2k3lxw5iprm1g5a34q1ik0b9wv5ia0s31"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-class
@@ -6152,14 +6154,14 @@ modeling for empirical income distributions.")
 (define-public r-vcd
   (package
     (name "r-vcd")
-    (version "1.4-9")
+    (version "1.4-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vcd" version))
        (sha256
         (base32
-         "13sn77qdcyll9lz7nab0bxzfvpgj8f5rl2cq5ylpz8pibynj1d55"))))
+         "0nxkl1x39xf8l0apgvlbr30i8lasix7hyyc93g6514r8z8m1k23i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-colorspace r-lmtest r-mass))
@@ -6406,13 +6408,13 @@ constants, and control debugging of packages via environment variables.")
 (define-public r-processx
   (package
     (name "r-processx")
-    (version "3.5.3")
+    (version "3.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "processx" version))
        (sha256
-        (base32 "0ail3w8n5g1ibdamgpxcfpla18kqkilmppiasm7ms67cavx2k5k7"))))
+        (base32 "0kx6hvkkj6lh8lrdh819hvkx8nyq5aac53mkvpqyskwkmmlnf63m"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ps r-r6))
@@ -6913,14 +6915,14 @@ detect possible inconsistencies.")
 (define-public r-sna
   (package
     (name "r-sna")
-    (version "2.6")
+    (version "2.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sna" version))
        (sha256
         (base32
-         "0ai0v4538d30m4wks5s3lch1yfmx1ml0nnrz7ihs097lv586a09s"))))
+         "0ka319s1w857fj28ja1i1ljgv2h6ji4d69riqy9pwhvvghsa83s4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-network r-statnet-common))
@@ -9287,14 +9289,14 @@ publication-ready plots.")
 (define-public r-ellipse
   (package
     (name "r-ellipse")
-    (version "0.4.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ellipse" version))
        (sha256
         (base32
-         "1wm5v7zdv2drgdba7z96jwsx74mqhlq80qgrvdb4vb5r02dcw68p"))))
+         "0im9d36dixpksms52v6nsb3l0z2c7wc25r9j0f08naj6qc8jpvq2"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/ellipse/")
     (synopsis "Functions for drawing ellipses and ellipse-like confidence regions")
@@ -9648,14 +9650,14 @@ implemented in bibutils.")
 (define-public r-rdpack
   (package
     (name "r-rdpack")
-    (version "2.3")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rdpack" version))
        (sha256
         (base32
-         "1igpa4hnpiykbdnq57mglby5jsbind6izkkfy81wx4ib6nw1lpn4"))))
+         "12j45n4srs987s9mqvp3524cviqbl2pnpx7yw8agac9ynnfmwgmm"))))
     (properties `((upstream-name . "Rdpack")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9674,14 +9676,14 @@ references and Rd files.")
 (define-public r-officer
   (package
     (name "r-officer")
-    (version "0.4.2")
+    (version "0.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "officer" version))
        (sha256
         (base32
-         "0qmn62srh9zicgizyblanirbdva7f09g967yb86kfrn05ckh5y10"))))
+         "1ksfmwqb91j8n8x4vchpqr848scvf817mgiknwac7n8lfz79synk"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-r6 r-uuid r-xml2 r-zip))
@@ -10026,14 +10028,14 @@ functions.")
 (define-public r-flextable
   (package
     (name "r-flextable")
-    (version "0.7.0")
+    (version "0.7.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flextable" version))
        (sha256
         (base32
-         "15vr5lb87712mymsvv01kz9s1fb54sx5kybsa2x547k5g10dbrbm"))))
+         "03nxh9a9q0jgqz05i7kgp8zjncpq9m4f54dx3bvqgpds4hcqxli9"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-base64enc
@@ -13444,17 +13446,19 @@ Bioconductor packages.")
 (define-public r-rgl
   (package
     (name "r-rgl")
-    (version "0.108.3.2")
+    (version "0.109.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgl" version))
        (sha256
         (base32
-         "0r9wzhjzl346i37ngs6hqzmizhi53kzqz582lv822v6yxang6fh3"))))
+         "15rckpi2vzjc45glqk1mibxw1vja9y08hj9id2qd1si2bb708x8i"))))
     (build-system r-build-system)
     (native-inputs
-     (list pkg-config r-knitr))
+     (list pkg-config
+           r-knitr
+           r-rmarkdown)) ;for vignettes
     (inputs
      (list freetype
            libpng
@@ -13463,11 +13467,13 @@ Bioconductor packages.")
            pandoc
            zlib))
     (propagated-inputs
-     (list r-htmltools
+     (list r-base64enc
+           r-htmltools
            r-htmlwidgets
            r-jsonlite
            r-knitr
            r-magrittr
+           r-mime
            r-r6))
     (home-page "https://r-forge.r-project.org/projects/rgl/")
     (synopsis "3D visualization using OpenGL")
@@ -13762,13 +13768,13 @@ Anderson-Darling Distribution\".")
 (define-public r-admisc
   (package
     (name "r-admisc")
-    (version "0.27")
+    (version "0.28")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "admisc" version))
        (sha256
-        (base32 "07hfrhv3pcldsffnyfzpa1q3x32gxr1386r8fik1nhql2w46mm13"))))
+        (base32 "0cfx4g64mybd69xm595zzv79j4fbzn7vihpvzcvicggs3immppha"))))
     (properties `((upstream-name . "admisc")))
     (build-system r-build-system)
     (home-page "https://github.com/dusadrian/admisc")
@@ -13787,14 +13793,14 @@ the base function @code{with()}.")
 (define-public r-sodium
   (package
     (name "r-sodium")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sodium" version))
        (sha256
         (base32
-         "0x4jb3cf1nv1spz1jc9xp8hly2b4a7nj48xr4s33jnfcpdjkmn5q"))))
+         "1a03z2asvmalnmsn89lapzp8a4fr0qvzdv3xgin8pbqhjyb9hvpp"))))
     (properties `((upstream-name . "sodium")))
     (build-system r-build-system)
     (inputs
@@ -14931,14 +14937,14 @@ limitations\" using the GNU Multiple Precision library.")
 (define-public r-rmpfr
   (package
     (name "r-rmpfr")
-    (version "0.8-7")
+    (version "0.8-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rmpfr" version))
        (sha256
         (base32
-         "1ljpbxvm4agbxnab5dfffbpw5k964hy3gw57dzydq1gpbxwdphlk"))))
+         "12mwvgyalzh4zf5d002fm1hpr3wwhiypy9ia6wy47ij9gns5mvng"))))
     (properties `((upstream-name . "Rmpfr")))
     (build-system r-build-system)
     (inputs
@@ -15899,14 +15905,14 @@ them in distributed compute environments.")
 (define-public r-parallelly
   (package
     (name "r-parallelly")
-    (version "1.31.1")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parallelly" version))
        (sha256
         (base32
-         "1nhp66psk3m79is5qm4ppxkj7bdy46jr2h2pir22ia9ghhyzris0"))))
+         "0yg1hmgkp81ihgwqaynqh0jgki2mkdy78j4fgjmqvc1ig5ga774h"))))
     (properties `((upstream-name . "parallelly")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/parallelly")
@@ -16956,14 +16962,14 @@ network.")
 (define-public r-apcluster
   (package
     (name "r-apcluster")
-    (version "1.4.9")
+    (version "1.4.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "apcluster" version))
        (sha256
         (base32
-         "0wnbb3kj9m7rfq63xr43jjf6n8jxm1r2wvvx6g0qkss0wvipbb1s"))))
+         "1820j1xjlbmw6j2fwwv2g806dqpk5qrbbaqsrbrn6igql8pzf552"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-matrix r-rcpp))
@@ -17364,14 +17370,14 @@ classes.")
 (define-public r-classint
   (package
     (name "r-classint")
-    (version "0.4-3")
+    (version "0.4-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "classInt" version))
        (sha256
         (base32
-         "1b1lqhpzxm6b8pza8l3s0cxy74mm9y45lcd3354i2v3bg8m7mply"))))
+         "0vk06k10mxcm6wn4b74njzc1kc1ividsn03ii523j4yfhy4kl3m3"))))
     (properties `((upstream-name . "classInt")))
     (build-system r-build-system)
     (propagated-inputs
@@ -17593,14 +17599,14 @@ spanning tree.")
 (define-public r-adegenet
   (package
     (name "r-adegenet")
-    (version "2.1.6")
+    (version "2.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "adegenet" version))
        (sha256
         (base32
-         "0sx25p7bgz0h9mc3jsdnnjhvmb7sy8nb3r0z923vhk336d4xw8vq"))))
+         "0zkbxw9w0fcb4s3zv2a8nxcsihzkfz49psaipxw99nwgm7l9jrh9"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ade4
@@ -17835,14 +17841,14 @@ include
 (define-public r-haplo-stats
   (package
     (name "r-haplo-stats")
-    (version "1.8.7")
+    (version "1.8.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "haplo.stats" version))
        (sha256
         (base32
-         "1q2zn72j92bwhcdswk4qqfgzch56p9pcy2xhkd3safvqp3l9rzpw"))))
+         "0np9kw4f30xbvwr4f79g909ilis5n273ridmlwyzjxiskiry6mx0"))))
     (properties `((upstream-name . "haplo.stats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -18051,13 +18057,13 @@ that accept short and long options.")
 (define-public r-kernlab
   (package
     (name "r-kernlab")
-    (version "0.9-30")
+    (version "0.9-31")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "kernlab" version))
        (sha256
-        (base32 "10gfb542nbl1d5pfy6r7gcg3j1ikra9l18r6xjv8lzp5ka1kmz28"))))
+        (base32 "12i7ffc1aacyy7bpjc0w60wwivn88wri8jz43h77irn5q5jwcnbk"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/kernlab")
     (synopsis "Kernel-based machine learning tools")
@@ -19317,14 +19323,14 @@ external dependencies.  This package has is implemented purely in R.")
 (define-public r-aplot
   (package
     (name "r-aplot")
-    (version "0.1.4")
+    (version "0.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "aplot" version))
        (sha256
         (base32
-         "1b4jjj05a602dgn6yr1bsmbzlzkj6wf6af3k3w63g3mkqv0xzsfd"))))
+         "0310z9db2r8vr4053vy6w4rbcqhg5cv56p60rk7dh4y6ifbd2sbx"))))
     (properties `((upstream-name . "aplot")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20675,14 +20681,14 @@ emphasize hidden group structures in networks or focus on specific nodes.")
 (define-public r-terra
   (package
     (name "r-terra")
-    (version "1.5-21")
+    (version "1.5-34")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "terra" version))
        (sha256
         (base32
-         "0gzl0ka19jjw0dmaghjk2sgwi78kkz4w3rlfkym62rdarhlfj7h9"))))
+         "075azi23gi1b1jxm3s1f1hpc6in7qz4fp38shq9pflfnzbs8ib9w"))))
     (properties `((upstream-name . "terra")))
     (build-system r-build-system)
     (inputs
@@ -21980,14 +21986,14 @@ and prints vectorized images.")
 (define-public r-randtoolbox
   (package
     (name "r-randtoolbox")
-    (version "2.0.0")
+    (version "2.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "randtoolbox" version))
        (sha256
         (base32
-         "005x2igljc6vm0nsmkld9aqjqz1ccwapc8z3aw5c3ivh4n2bghf9"))))
+         "1p2jsn0hpihc49zk605z82mhhvma0ji2f5b94wa85g2xzriqkwn4"))))
     (properties `((upstream-name . "randtoolbox")))
     (build-system r-build-system)
     (propagated-inputs
@@ -23535,14 +23541,14 @@ functions.")
 (define-public r-univoutl
   (package
     (name "r-univoutl")
-    (version "0.3")
+    (version "0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "univOutl" version))
        (sha256
         (base32
-         "1hhpxrpmp2wbrynx9xjndnp2sccirgky2x6ksd6yk6phmk0rbzjp"))))
+         "1kp014bhs8v02fp7misrj4fpfp2na9lg45p5zqvlfaypnm5imsr9"))))
     (properties `((upstream-name . "univOutl")))
     (build-system r-build-system)
     (propagated-inputs
@@ -23591,13 +23597,13 @@ Visualizations are also available for most of these settings.")
 (define-public r-torch
   (package
     (name "r-torch")
-    (version "0.7.2")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "torch" version))
        (sha256
-        (base32 "163pvl3gyz7l2fmqhgg4k6pw4dmvfir71yp9l5ra2k4zc32lz166"))))
+        (base32 "0n2rmv2mwfp4y002x46fd278kssmhi54zcyj37558k4r1kazzfxp"))))
     (properties `((upstream-name . "torch")))
     (build-system r-build-system)
     (arguments
@@ -23961,13 +23967,13 @@ from PLINK results.")
 (define-public r-gghighlight
   (package
     (name "r-gghighlight")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gghighlight" version))
        (sha256
-        (base32 "0bxgn4srxz1qhawqa8ck57p8hg5ikwfa9ll03zmnn8fb19akwm2v"))))
+        (base32 "0isfp5n0ijqpy3z5d7l75mlq15nbkjppv6812lcya6097ar2d381"))))
     (properties `((upstream-name . "gghighlight")))
     (build-system r-build-system)
     (propagated-inputs
@@ -24815,18 +24821,20 @@ Models.")
 (define-public r-mi
   (package
     (name "r-mi")
-    (version "1.0")
+    (version "1.1")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "mi" version))
         (sha256
           (base32
-            "1h47k5mpbvhid83277dvvj2di493bgzz9iarpyv3r30y219l7x1l"))))
+            "11f75ivnax6p48mp2pasprws488cm2daym87sw2mcrywvf89fyjd"))))
     (properties `((upstream-name . "mi")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-arm r-matrix))
+    (native-inputs
+     (list r-knitr))
     (home-page "http://www.stat.columbia.edu/~gelman/")
     (synopsis "Missing data imputation and model checking")
     (description
@@ -25457,14 +25465,14 @@ and reproducible way.")
 (define-public r-rsconnect
   (package
     (name "r-rsconnect")
-    (version "0.8.25")
+    (version "0.8.26")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rsconnect" version))
        (sha256
         (base32
-         "1kyr4v7vds2yw3xmkk2yr56ylz1h95944brylwvwmwj5yxvm419w"))))
+         "1vazdgpha7545h4riz11njbl8azg38i1y1a5nfckfx03v2zapbzs"))))
     (properties `((upstream-name . "rsconnect")))
     (build-system r-build-system)
     (propagated-inputs
@@ -26696,14 +26704,14 @@ including means, variances, intervals, and highest density regions.")
 (define-public r-posterior
   (package
     (name "r-posterior")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "posterior" version))
        (sha256
         (base32
-         "1qdg22l868daqg2axr36szl1m9z0rfpgx8zmv1x1xwm1hmlf0mxp"))))
+         "0frm7p6cjkjfl4gviixaa7448qaac8n9ilkr5c02fa9vnisys5fn"))))
     (properties `((upstream-name . "posterior")))
     (build-system r-build-system)
     (propagated-inputs
@@ -26993,14 +27001,14 @@ counting and recursive k-means partitioning.")
 (define-public r-hardhat
   (package
     (name "r-hardhat")
-    (version "0.2.0")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hardhat" version))
        (sha256
         (base32
-         "0a4nq93cmps5xy8h0qsv6xyzrbsz9ka4iwkrvb8m8v10wq7wm5wl"))))
+         "1cdl52lzv3wffq8fzrb6sk85i4i8lm8skgad1c8az3ifmzssjx03"))))
     (properties `((upstream-name . "hardhat")))
     (build-system r-build-system)
     (propagated-inputs
@@ -28428,20 +28436,20 @@ object sizes.")
 (define-public r-yardstick
   (package
     (name "r-yardstick")
-    (version "0.0.9")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "yardstick" version))
        (sha256
         (base32
-         "00hv4gk1ba4dab8i3dcq7lim4bll7l572rgc8km9x4ja8by95j8h"))))
+         "0mnpvwbzybxp47w4yibmjb7xppwinbjcqcyqfn8qn38l5liwy8yd"))))
     (properties `((upstream-name . "yardstick")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-dplyr
            r-generics
-           r-proc
+           r-hardhat
            r-rlang
            r-tidyselect
            r-vctrs))
@@ -28963,14 +28971,14 @@ functions or computational engines (e.g. R, Spark, Stan, etc).")
 (define-public r-infer
   (package
     (name "r-infer")
-    (version "1.0.0")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "infer" version))
        (sha256
         (base32
-         "1qbpcn7jqbvgwnpiyylj021j8m33p58a204yd1pfkpzd3x2lbsm6"))))
+         "0qfrxljvwpa8d1k66ii80irarlv593wr6rmcsmi4flc7adgydrnp"))))
     (properties `((upstream-name . "infer")))
     (build-system r-build-system)
     (propagated-inputs
@@ -30409,14 +30417,14 @@ in output to the equivalent HTML.")
 (define-public r-pkgdown
   (package
     (name "r-pkgdown")
-    (version "2.0.3")
+    (version "2.0.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pkgdown" version))
        (sha256
         (base32
-         "0wqga9bcl7wmvkwpkkmf5hx1cl7rjq5ddvqmxhl4p1dczys3adnr"))))
+         "02lwr53xvxybcsg8md8qbq1wq833ap7ssn5v92cd4qqay5iya374"))))
     (properties `((upstream-name . "pkgdown")))
     (build-system r-build-system)
     (inputs (list pandoc))
@@ -30466,7 +30474,26 @@ package online.")
     (properties `((upstream-name . "prereg")))
     (build-system r-build-system)
     (propagated-inputs
-      (list r-rmarkdown))
+      (list r-rmarkdown
+            ;; The package provides a custom LaTex template in
+            ;; inst/rmd/prereg_form.tex, which depends on these packages:
+            texlive-amsmath
+            texlive-booktabs
+            texlive-etoolbox
+            texlive-generic-iftex
+            texlive-latex-fancyhdr
+            texlive-latex-fancyvrb
+            texlive-latex-geometry
+            texlive-latex-graphics
+            texlive-latex-threeparttable
+            texlive-latex-titlesec
+            texlive-latex-upquote
+            texlive-listings
+            texlive-polyglossia
+            texlive-titling
+            texlive-tools
+            texlive-ulem
+            (texlive-updmap.cfg (list texlive-amsfonts texlive-lm))))
     (home-page "https://github.com/crsh/prereg")
     (synopsis
       "R Markdown Templates to preregister Scientific Studies")
@@ -31597,6 +31624,32 @@ asynchronously from formatting.")
 utility operations.")
     (license license:gpl3)))
 
+(define-public r-rsq
+  (package
+    (name "r-rsq")
+    (version "2.5")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "rsq" version))
+              (sha256
+               (base32
+                "1r628srxhhf7b51lnj4qrzgbqajkm0ls47a9rzjkvmfq4ax5i73f"))))
+    (properties `((upstream-name . "rsq")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-deriv
+           r-lme4
+           r-mass
+           r-matrix
+           r-nlme))
+    (home-page "https://cran.r-project.org/package=rsq")
+    (synopsis "R-squared and related measures")
+    (description
+     "Calculate generalized R-squared, partial R-squared, and partial correlation
+coefficients for generalized linear (mixed) models (including quasi models
+with well defined variance functions).")
+    (license license:gpl2)))
+
 (define-public r-webutils
   (package
     (name "r-webutils")
@@ -32582,14 +32635,14 @@ participants and their emotional expressions throughout the meeting.")
 (define-public r-zoom
   (package
     (name "r-zoom")
-    (version "2.0.4")
+    (version "2.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "zoom" version))
        (sha256
         (base32
-         "03f5rxfr6ncf1j6vpn7pip21q7ylj4bx0a5xphqb6x6i33lxf1g5"))))
+         "05ikad4j1qi5y8mn77n9bw7d6ic3api9d7mbcn855w8xcc69ja4q"))))
     (properties `((upstream-name . "zoom")))
     (build-system r-build-system)
     (home-page "https://github.com/cbarbu/R-package-zoom")
@@ -33342,6 +33395,30 @@ facets.  It also allows multiple colour, fill scales per plot and hosts a
 smaller collection of stats, geoms and axis guides.")
     (license license:expat)))
 
+(define-public r-gghalves
+  (package
+    (name "r-gghalves")
+    (version "0.1.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gghalves" version))
+       (sha256
+        (base32
+         "1lj4c38fzxwg8gy57ymf00lqjdplb7v2a0lnd262c1d5cavqiws4"))))
+    (properties `((upstream-name . "gghalves")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-ggplot2 r-gtable))
+    (native-inputs
+     (list r-knitr))
+    (home-page "https://github.com/erocoar/gghalves")
+    (synopsis "Compose half-half plots using your favourite geoms")
+    (description "This package provides a @code{ggplot2} extension for easy
+plotting of half-half geom combinations.  Think half boxplot and half
+jitterplot, or half violinplot and half dotplot.")
+    (license license:expat)))
+
 (define-public r-zoeppritz
   (package
     (name "r-zoeppritz")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 86313f5e4f..f9bc9b42de 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Antero Mejr <antero@kodmin.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021 muradm <mail@muradm.net>
 ;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Jacob Hrbek <kreyren@rixotstudio.cz>
@@ -31352,7 +31353,10 @@ algorithm and related formats (ZLIB, GZIP).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1axsdyb2i67pn85vh8sb2z037n88fiiwqghkzsr1jrcdy2g1cs4g"))))
+         "1axsdyb2i67pn85vh8sb2z037n88fiiwqghkzsr1jrcdy2g1cs4g"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin (delete-file-recursively "libgit2")))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
@@ -62496,13 +62500,13 @@ different for every thread.")
     (name "rust-thread-id")
     (version "3.3.0")
     (source
-      (origin
-        (method url-fetch)
-        (uri (crate-uri "thread-id" version))
-        (file-name (string-append name "-" version ".tar.gz"))
-        (sha256
-         (base32
-          "1h90v19fjz3x9b25ywh68z5yf2zsmm6h5zb4rl302ckbsp4z9yy7"))))
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "thread-id" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1h90v19fjz3x9b25ywh68z5yf2zsmm6h5zb4rl302ckbsp4z9yy7"))))
     (arguments
      `(#:cargo-inputs
        (("rust-libc" ,rust-libc-0.2)
@@ -73053,3 +73057,42 @@ including a line breaking iterator.")
 and automatically convert it to a windows batch file, this library provides a
 way to convert simple shell commands to windows batch commands.")
     (license license:asl2.0)))
+
+(define-public rust-enquote-1
+  (package
+    (name "rust-enquote")
+    (version "1.1.0")
+    (home-page "https://github.com/reujab/enquote")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "enquote" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6"))))
+    (build-system cargo-build-system)
+    (synopsis "Rust library that quotes, unquotes, and unescapes strings")
+    (description "A Rust library quotes, unquotes, and unescapes strings")
+    (license license:unlicense)))
+
+(define-public rust-pam-sys-0.5
+  (package
+    (name "rust-pam-sys")
+    (version "0.5.6")
+    (home-page "https://github.com/1wilkens/pam-sys")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "pam-sys" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+    (inputs `(("linux-pam" ,linux-pam)))
+    (synopsis
+     "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)")
+    (description
+     "This crate uses bindgen to generate the raw FFI definitions for PAM. For a rustified API consider using pam.")
+    (license (list license:expat license:asl2.0))))
diff --git a/gnu/packages/darwin.scm b/gnu/packages/darwin.scm
new file mode 100644
index 0000000000..88990d0404
--- /dev/null
+++ b/gnu/packages/darwin.scm
@@ -0,0 +1,107 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages darwin)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages gnustep)
+  #:use-module (gnu packages llvm)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix gexp)
+  #:use-module (guix git-download)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module ((guix licenses) #:prefix license:))
+
+(define-public cctools
+  (let ((cctools-version "973.0.1")
+        (ld64-version "609")
+        (revision "0")
+        (commit "04663295d0425abfac90a42440a7ec02d7155fea"))
+    (package
+      (name "cctools")
+      (version (git-version (string-append cctools-version
+                                           "-ld64-"
+                                           ld64-version)
+                            revision
+                            commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/tpoechtrager/cctools-port")
+               (commit commit)))
+         (sha256
+          (base32 "0vihfa8y64vvd3pxy8qh4mhcnzinxh9flpz9dvw4wch4zj2nnfjs"))
+         (file-name (git-file-name name version))
+         (snippet
+          #~(begin
+              (use-modules (guix build utils))
+              (with-directory-excursion "cctools"
+                ;; use system libobjc2
+                (substitute* "configure.ac"
+                  (("AC_CONFIG_FILES[(]\\[libobjc2/Makefile][)]")
+                   ""))
+                (substitute* "Makefile.am"
+                  (("SUBDIRS=libobjc2 ")
+                   "SUBDIRS="))
+                (substitute* "otool/Makefile.am"
+                  (("\\$[(]top_builddir[)]/libobjc2/libobjc\\.la")
+                   "-lobjc")
+                  (("-I\\$[(]top_srcdir[)]/libobjc2")
+                   ""))
+                ;; delete files
+                (for-each (lambda (pth)
+                            (when (file-exists? pth)
+                              (delete-file-recursively pth)))
+                          `("include/gnu/symseg.h" ;; obsolete
+                            "libobjc2" ;; unbundle
+                            ;; generated files:
+                            "compile"
+                            "config.guess"
+                            "config.sub"
+                            "configure"
+                            "install-sh"
+                            "ltmain.sh"
+                            "missing"
+                            ,@(find-files "." "^Makefile\\.in$"))))))))
+      (inputs (list libobjc2
+                    clang-toolchain))
+      (native-inputs (list libtool
+                           autoconf
+                           automake
+                           clang-toolchain))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'chdir
+              (lambda args
+                (chdir "cctools"))))))
+      (home-page "https://github.com/tpoechtrager/cctools-port")
+      (synopsis "Darwin's @code{cctools} and @code{ld64}")
+      ;; Confusingly enough, the program is called ld64, but the command is
+      ;; just ld (with no symlink), so @command{ld64} would be wrong.
+      (description
+       "Darwin's @code{cctools} are a set of tools somewhat similar in purpose
+to GNU Binutils, but for Mach-O files targeting Darwin.  The suite includes
+@command{install_name_tool}, @command{dyldinfo}, and other specialized tools
+in addition to standard utilities like @command{ld} and @command{as}.  This
+package provides portable versions of the tools.")
+      (license license:apsl2))))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 7ef211be37..92ab94f453 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2016, 2018, 2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2017 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014, 2016 David Thompson <davet@gnu.org>
@@ -1160,7 +1160,7 @@ developed in C/C++ to MariaDB and MySQL databases.")
 (define-public galera
   (package
     (name "galera")
-    (version "26.4.10")
+    (version "26.4.12")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1169,7 +1169,7 @@ developed in C/C++ to MariaDB and MySQL databases.")
                     (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1n6zhzwj713ixyqvcjn4ldlq0y9fxqgvmqv3cj3h4207v9lwlxxz"))))
+               (base32 "0n4272mvr8a6h5prbhvl376asdp89ipix5yx5n6i1iiw9bs3v76l"))))
     (build-system cmake-build-system)
     (inputs
      (list check boost openssl))
@@ -1184,14 +1184,14 @@ and high-availability (HA).")
 (define-public postgresql-14
   (package
     (name "postgresql")
-    (version "14.2")
+    (version "14.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "0ylpka64wli72jvjyqcayvlw44zk1hsbapb93l8gh4l98qp8pxrc"))
+                "0f5gm43hx8j67nfad8mrfhzb9aq4brfgka5d0nf936pmicv5g417"))
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
@@ -1247,6 +1247,7 @@ pictures, sounds, or video.")
   (package
     (inherit postgresql-14)
     (version "13.6")
+    (replacement postgresql-13/replacement)
     (source (origin
               (inherit (package-source postgresql-14))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
@@ -1256,37 +1257,70 @@ pictures, sounds, or video.")
                 "1z37ix80hb2bqa2smh1hbj9r507ypnl3pil43gkqznnlv6ipzz5s"))
               (patches (search-patches "postgresql-riscv-spinlocks.patch"))))))
 
+;; The merge of commit ...
+;;  781dd2de230e3 gnu: postgresql-13: Fix building on riscv64-linux.
+;; ... in ...
+;;  49b350fafc2c3 Merge branch 'master' into staging.
+;; ... lost the inherited patch from postgresql-14, causing problems such as ...
+;;  05fef7bfc6005 gnu: timescaledb: Adjust test preparation to PostgreSQL 13.6.
+;;
+;; While at it, remove the RISC-V spinlock patch, which has been upstreamed
+;; in a different form (so the old patch still applies).
+;; TODO: Remove in the next rebuild cycle.
+(define postgresql-13/replacement
+  (package
+    (inherit postgresql-13)
+    (version "13.7")
+    (source
+     (origin
+       (inherit (package-source postgresql-13))
+       (uri (string-append "https://ftp.postgresql.org/pub/source/v"
+                           version "/postgresql-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "16b3ljid7zd1v5l4l4pmwihx43wi8p9izidkjfii8dnqygs5p40v"))
+       (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))))
+
 (define-public postgresql-11
   (package
     (inherit postgresql-13)
     (name "postgresql")
-    (version "11.15")
+    (version "11.16")
     (source (origin
               (inherit (package-source postgresql-13))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1qvrm0vhwnc5nijfbqybhwfjbq4r7vmk445sz7s6fiagpn78xxf8"))))))
+                "1983a7y4y6zhbgh0qcdfkf99445j1zm5q1ncrbkrx555y08y3n9d"))
+              (patches (search-patches
+                        "postgresql-disable-resolve_symlinks.patch"))))
+    (native-inputs
+     (modify-inputs (package-native-inputs postgresql-13)
+       (replace "docbook-xml" docbook-xml-4.2)))))
 
 (define-public postgresql-10
   (package
     (inherit postgresql-11)
-    (version "10.20")
+    (version "10.21")
     (source (origin
               (inherit (package-source postgresql-11))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "17v51a9vnz6lgbfmbdmcwsiyi572wndwa4n30nk2zr6gkgaidpl7"))))))
+                "1la5dx4hhy5yaznwk9gwdsymih3sd23fyhh6spssdaajdn2rh8fk"))))
+    (native-inputs
+     (modify-inputs (package-native-inputs postgresql-11)
+       (append opensp docbook-sgml-4.2)
+       (delete "docbook-xml")))))
 
-(define-public postgresql postgresql-13)
+(define-public postgresql postgresql-14)
 
 (define-public timescaledb
   (package
     (name "timescaledb")
-    (version "2.5.1")
+    (version "2.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1295,14 +1329,18 @@ pictures, sounds, or video.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "174dm3higa0i7al9r2hdv5hk36pd0d5fnqj57w5a350kxshxyvyw"))
+                "18wszj8ia5rs4y4zkyfb0f5z4y1g7ac3jym748nbkbszhxmq7nc7"))
+              (patches (search-patches "timescaledb-flaky-test.patch"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove files carrying the proprietary TIMESCALE license.
                '(begin
                   (delete-file-recursively "tsl")
                   (for-each delete-file
-                            '("test/perl/AccessNode.pm"
+                            '("scripts/c_license_header-timescale.h"
+                              "scripts/license_tsl.spec"
+                              "scripts/sql_license_tsl.sql"
+                              "test/perl/AccessNode.pm"
                               "test/perl/DataNode.pm"
                               "test/perl/TimescaleNode.pm"))))))
     (build-system cmake-build-system)
@@ -1347,12 +1385,28 @@ pictures, sounds, or video.")
                          (pg-union (string-append (getcwd) "/../pg-union")))
                      (match inputs
                        (((names . directories) ...)
-                        (union-build pg-union (cons #$output directories))))
+                        ;; PG will only load extensions from its own $libdir,
+                        ;; which it calculates based on argv[0].  As of
+                        ;; PostgreSQL 13.6, it calls 'canonicalize_path' on
+                        ;; argv[0] so a merge symlink is not enough to trick
+                        ;; it; thus, the code below makes a full copy of PG
+                        ;; and friends such that 'pg_config --libdir', for
+                        ;; instance, points to PG-UNION, allowing it to load
+                        ;; the timescaledb extension.
+                        ;; TODO: The above comment and the #:symlink trick can
+                        ;; be removed in the next rebuild cycle.
+                        (union-build pg-union (cons #$output directories)
+                                     #:symlink
+                                     (lambda (old new)
+                                       (if (file-is-directory? old)
+                                           (copy-recursively old new)
+                                           (copy-file old new))))))
                      (setenv "PATH" (string-append pg-union "/bin:"
                                                    (getenv "PATH")))
                      (invoke "initdb" "-D" pg-data)
                      (copy-file "test/postgresql.conf"
                                 (string-append pg-data "/postgresql.conf"))
+
                      (invoke "pg_ctl" "-D" pg-data
                              "-o" (string-append "-k " pg-data)
                              "-l" (string-append pg-data "/db.log")
@@ -1363,7 +1417,7 @@ pictures, sounds, or video.")
     (home-page "https://www.timescale.com/")
     (synopsis "Time-series extension for PostgreSQL")
     (description
-     "TimescaleDB is an database designed to make SQL scalable for
+     "TimescaleDB is a database designed to make SQL scalable for
 time-series data.  It is engineered up from PostgreSQL and packaged as a
 PostgreSQL extension, providing automatic partitioning across time and space
 (partitioning key), as well as full SQL support.")
@@ -1868,7 +1922,7 @@ extremely small.")
                 "1yinx39960y241vf2sknxj0dfz82a5m9gvklq5rw78k0nlyrjawa"))))
     (build-system perl-build-system)
     (synopsis "Database independent interface for Perl")
-    (description "This package provides an database interface for Perl.")
+    (description "This package provides a database interface for Perl.")
     (home-page "https://metacpan.org/release/DBI")
     (license license:perl-license)))
 
@@ -2035,7 +2089,7 @@ columns, primary keys, unique constraints and relationships.")
 (define-public perl-dbd-pg
   (package
     (name "perl-dbd-pg")
-    (version "3.14.2")
+    (version "3.15.1")
     (source
      (origin
        (method url-fetch)
@@ -2043,7 +2097,7 @@ columns, primary keys, unique constraints and relationships.")
                            "DBD-Pg-" version ".tar.gz"))
        (sha256
         (base32
-         "0kcfqq7g3832wiix0sbyvlc885qghjrp2ah3akn7h2lnb22fjwy9"))))
+         "0zn17xb6bmixkmv53p576igzw1jd43cwql35r19m56jwahxm9iqk"))))
     (build-system perl-build-system)
     (native-inputs
      (list perl-dbi))
@@ -2814,13 +2868,13 @@ can autogenerate peewee models using @code{pwiz}, a model generator.")
 (define-public python-pypika-tortoise
   (package
     (name "python-pypika-tortoise")
-    (version "0.1.1")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pypika-tortoise" version))
        (sha256
-        (base32 "0g4z0lz739nk04b405ynqpd3y1z5nfyxjz9hqgxcw3jydsjx0cb8"))))
+        (base32 "0j20574s2yrq8d7fav3816vj1nfpihkm2mj8jzh2ank4zixp8brf"))))
     (build-system python-build-system)
     (home-page "https://github.com/tortoise/pypika-tortoise")
     (synopsis "Pypika fork for tortoise-orm")
@@ -2851,24 +2905,19 @@ coroutine-specific markup.")
 (define-public python-asyncpg
   (package
     (name "python-asyncpg")
-    (version "0.24.0")
+    (version "0.25.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "asyncpg" version))
        (sha256
-        (base32 "1in0q6iffpl8ag6ady4bvwnn40igh10cpp4xgm426j1lqdis0byx"))))
+        (base32 "0h1573lp4607nppflnnjrhn7yrfy6i54cm98gi4qbcikjykfdy33"))))
     (build-system python-build-system)
     (propagated-inputs (list python-typing-extensions))
     (native-inputs
      (list postgresql
            python-cython
-           python-flake8
-           python-pycodestyle
            python-pytest
-           python-sphinx
-           python-sphinx-rtd-theme
-           python-sphinxcontrib-asyncio
            python-uvloop))
     (home-page "https://github.com/MagicStack/asyncpg")
     (synopsis "Fast PostgreSQL database client library for Python")
@@ -2921,13 +2970,13 @@ of PyMySQL.  @code{aiomysql} tries to preserve the same API as the
 (define-public python-tortoise-orm
   (package
     (name "python-tortoise-orm")
-    (version "0.17.8")
+    (version "0.19.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "tortoise-orm" version))
        (sha256
-        (base32 "1gzgiypln7lck3p95vk3i8rdx1bjbmmlcpb8xpba8cjdjvlj0l0z"))))
+        (base32 "17yk71dlx5ai98i6ivqgsplkwivdxackz9jfn6z42bpcdgbpiwhg"))))
     (build-system python-build-system)
     ;; The test suite relies on asynctest, which is abandoned and doesn't
     ;; support Python >= 3.8.
@@ -3004,44 +3053,58 @@ development.")
 (define-public python-pyodbc-c
   (package
     (name "python-pyodbc-c")
-    (version "3.1.4")
+    (version "3.1.5")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://gitlab.com/daym/pyodbc-c/repository/"
-                           "archive.tar.gz?ref=v" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/daym/pyodbc-c/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "05aq2297k779xidmxcwkrrxjvj1bh2q7d9a1rcjv6zr15y764ga9"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "08y60c5sx0k953zfx0s2a155l8py968sb17ap9a9fg8bjnj783k8"))))
     (build-system python-build-system)
     (inputs
      (list unixodbc))
     (arguments
-     `(;; No unit tests exist.
+     `(;; The tests require a running SQL server that they don't help set up.
        #:tests? #f))
-    (home-page "https://github.com/mkleehammer/pyodbc")
-    (synopsis "Python ODBC Library")
+    (home-page "https://gitlab.com/daym/pyodbc-c")
+    (synopsis "Python ODBC Library written in C")
     (description "@code{python-pyodbc-c} provides a Python DB-API driver
-for ODBC.")
+for ODBC, similar to python-pyodbc but written in C.
+
+It's designed to stand alone and not have other dependencies on other packages
+or languages.  It uses only Python's built-in data types.")
     (license (license:x11-style "file://LICENSE.TXT"))))
 
 (define-public python-pyodbc
   (package
     (name "python-pyodbc")
-    (version "4.0.30")
+    (version "4.0.32")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyodbc" version))
        (sha256
-        (base32 "0skjpraar6hcwsy82612bpj8nw016ncyvvq88j5syrikxgp5saw5"))
-       (file-name (string-append name "-" version ".tar.gz"))))
+        (base32 "0sqs0x2l5mk3yv0wwz3ya8yh5f4babihyhc8hjbf2m86b71z1rcv"))
+       (modules '((guix build utils)))
+       (snippet
+        ;; Delete precompiled binaries.  The corresponding source is included.
+        #~(for-each delete-file (find-files "." "\\.pyc$")))))
     (build-system python-build-system)
     (inputs
      (list unixodbc))
     (arguments
-     `(#:tests? #f))                    ; no unit tests exist
+     ;; XXX Tests fail with ‘Can't open lib 'SQL Server Native Client 10.0' :
+     ;; file not found (0) (SQLDriverConnect)")’.
+     (list #:tests? #f
+           #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "python3" "tests3/test.py")))))))
     (home-page "https://github.com/mkleehammer/pyodbc")
     (synopsis "Python ODBC Library")
     (description "@code{python-pyodbc} provides a Python DB-API driver
@@ -4195,6 +4258,132 @@ language-bindings for structure manipulation.  It also provides IPC and common
 algorithm implementations.")
     (license license:asl2.0)))
 
+(define-public apache-arrow-0.16
+  (package
+    (name "apache-arrow")
+    (version "0.16.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/apache/arrow")
+             (commit (string-append "apache-arrow-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "15bplqy5708bxy1mynzjkd3d2g8v2wd36z8l0ap8yyyq54l3gdvy"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'enter-source-directory
+           (lambda _
+             (chdir "cpp")
+             (substitute* "src/parquet/CMakeLists.txt"
+               (("    parquet_constants.cpp") "")
+               (("set\\(THRIFT_OUTPUT_FILES \\$\\{THRIFT_OUTPUT_FILES\\}.*") "")
+               ((".*\"\\$\\{THRIFT_OUTPUT_DIR\\}/parquet_constants.cpp\"\\).*") ""))))
+         (add-after 'unpack 'set-env
+           (lambda _
+             (setenv "BOOST_ROOT" (assoc-ref %build-inputs "boost"))
+             (setenv "BROTLI_HOME" (assoc-ref %build-inputs "brotli"))
+             (setenv "FLATBUFFERS_HOME" (assoc-ref %build-inputs "flatbuffers"))
+             (setenv "RAPIDJSON_HOME" (assoc-ref %build-inputs "rapidjson")))))
+       #:build-type "Release"
+       #:configure-flags
+       (list "-DARROW_PYTHON=ON"
+             "-DARROW_GLOG=ON"
+             "-DARROW_SSE42=OFF"
+             "-DARROW_BOOST_USE_SHARED=ON"
+             ;; Parquet options
+             "-DARROW_PARQUET=ON"
+
+             ;; The maintainers disallow using system versions of
+             ;; jemalloc:
+             ;; https://issues.apache.org/jira/browse/ARROW-3507. This
+             ;; is unfortunate because jemalloc increases performance:
+             ;; https://arrow.apache.org/blog/2018/07/20/jemalloc/.
+             "-DARROW_JEMALLOC=OFF"
+
+             ;; The CMake option ARROW_DEPENDENCY_SOURCE is a global
+             ;; option that instructs the build system how to resolve
+             ;; each dependency. SYSTEM = Finding the dependency in
+             ;; system paths using CMake's built-in find_package
+             ;; function, or using pkg-config for packages that do not
+             ;; have this feature
+             "-DARROW_DEPENDENCY_SOURCE=SYSTEM"
+
+             ;; Split output into its component packages.
+             (string-append "-DCMAKE_INSTALL_PREFIX="
+                            (assoc-ref %outputs "out"))
+             (string-append "-DCMAKE_INSTALL_RPATH="
+                            (assoc-ref %outputs "out")
+                            "/lib")
+             (string-append "-DCMAKE_INSTALL_BINDIR="
+                            (assoc-ref %outputs "out")
+                            "/bin")
+             (string-append "-DCMAKE_INSTALL_INCLUDEDIR="
+                            (assoc-ref %outputs "include")
+                            "/share/include")
+
+
+             "-DARROW_WITH_SNAPPY=ON"
+             "-DARROW_WITH_ZLIB=ON"
+             "-DARROW_WITH_ZSTD=ON"
+             "-DARROW_WITH_LZ4=ON"
+             "-DARROW_COMPUTE=ON"
+             "-DARROW_CSV=ON"
+             "-DARROW_DATASET=ON"
+             "-DARROW_FILESYSTEM=ON"
+             "-DARROW_HDFS=ON"
+             "-DARROW_JSON=ON"
+             ;; Arrow Python C++ integration library (required for
+             ;; building pyarrow). This library must be built against
+             ;; the same Python version for which you are building
+             ;; pyarrow. NumPy must also be installed. Enabling this
+             ;; option also enables ARROW_COMPUTE, ARROW_CSV,
+             ;; ARROW_DATASET, ARROW_FILESYSTEM, ARROW_HDFS, and
+             ;; ARROW_JSON.
+             "-DARROW_PYTHON=ON"
+
+             ;; Building the tests forces on all the
+             ;; optional features and the use of static
+             ;; libraries.
+             "-DARROW_BUILD_TESTS=OFF"
+             "-DBENCHMARK_ENABLE_GTEST_TESTS=OFF"
+             ;;"-DBENCHMARK_ENABLE_TESTING=OFF"
+             "-DARROW_BUILD_STATIC=OFF")))
+    (inputs
+     `(("boost" ,boost)
+       ("brotli" ,google-brotli)
+       ("double-conversion" ,double-conversion)
+       ("snappy" ,snappy)
+       ("gflags" ,gflags)
+       ("glog" ,glog)
+       ("apache-thrift" ,apache-thrift "lib")
+       ("protobuf" ,protobuf)
+       ("rapidjson" ,rapidjson)
+       ("zlib" ,zlib)
+       ("bzip2" ,bzip2)
+       ("lz4" ,lz4)
+       ("zstd" ,zstd "lib")
+       ("re2" ,re2)
+       ("grpc" ,grpc)
+       ("python-3" ,python)
+       ("python-numpy" ,python-numpy)))
+    (native-inputs
+     (list pkg-config apache-thrift))
+    (outputs '("out" "include"))
+    (home-page "https://arrow.apache.org/")
+    (synopsis "Columnar in-memory analytics")
+    (description "Apache Arrow is a columnar in-memory analytics layer
+designed to accelerate big data.  It houses a set of canonical in-memory
+representations of flat and hierarchical data along with multiple
+language-bindings for structure manipulation.  It also provides IPC and common
+algorithm implementations.")
+    (license license:asl2.0)))
+
 (define-public python-pyarrow
   (package
     (inherit apache-arrow)
@@ -4253,6 +4442,64 @@ implementation, along with tools for interoperability with pandas, NumPy, and
 other traditional Python scientific computing packages.")
     (license license:asl2.0)))
 
+(define-public python-pyarrow-0.16
+  (package
+    (inherit apache-arrow-0.16)
+    (name "python-pyarrow")
+    (build-system python-build-system)
+    (arguments
+     '(#:tests? #f          ; XXX There are no tests in the "python" directory
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'build) ; XXX the build is performed again during the install phase
+         (add-after 'unpack 'enter-source-directory
+           (lambda _ (chdir "python")))
+         (add-after 'unpack 'make-git-checkout-writable
+           (lambda _
+             (for-each make-file-writable (find-files "."))))
+         (add-before 'install 'patch-cmake-variables
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Replace cmake locations with hardcoded guix links for the
+             ;; underlying C++ library and headers.  This is a pretty awful
+             ;; hack.
+             (substitute* "cmake_modules/FindParquet.cmake"
+               (("# Licensed to the Apache Software Foundation" m)
+                (string-append "set(PARQUET_INCLUDE_DIR \""
+                               (assoc-ref inputs "apache-arrow:include")
+                               "/share/include\")\n" m))
+               (("find_package_handle_standard_args" m)
+                (string-append "set(PARQUET_LIB_DIR \""
+                               (assoc-ref inputs "apache-arrow:lib")
+                               "/lib\")\n" m)))))
+         (add-before 'install 'patch-parquet-library
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("parquet_shared") "parquet"))))
+         (add-before 'install 'set-PYARROW_WITH_PARQUET
+           (lambda _
+             (setenv "PYARROW_WITH_PARQUET" "1"))))))
+    (propagated-inputs
+     `(("apache-arrow:lib" ,apache-arrow-0.16)
+       ("apache-arrow:include" ,apache-arrow-0.16 "include")
+       ("python-numpy" ,python-numpy)
+       ("python-pandas" ,python-pandas)
+       ("python-six" ,python-six)))
+    (native-inputs
+     (list cmake-minimal
+           pkg-config
+           python-cython
+           python-pytest
+           python-pytest-runner
+           python-setuptools-scm))
+    (outputs '("out"))
+    (home-page "https://arrow.apache.org/docs/python/")
+    (synopsis "Python bindings for Apache Arrow")
+    (description
+     "This library provides a Pythonic API wrapper for the reference Arrow C++
+implementation, along with tools for interoperability with pandas, NumPy, and
+other traditional Python scientific computing packages.")
+    (license license:asl2.0)))
+
 (define-public python-crate
   (package
     (name "python-crate")
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 055d83bf37..01628b5ccc 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -73,7 +73,7 @@
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "215")
+    (version "216")
     (source
      (origin
        (method git-fetch)
@@ -82,7 +82,7 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16pyqbyrfsxjnpmr9913x2brz3mxplhz62rxwix1c0p7afwjw835"))
+        (base32 "066w4mcrjvymwii5j5hylcslpz18wgd5afl11z1n3588j8c1zw15"))
        (patches
         (search-patches "diffoscope-fix-llvm-test.patch"))))
     (build-system python-build-system)
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 974467d72c..47b15e588f 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -93,6 +93,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system scons)
@@ -714,10 +715,10 @@ the card and then checks if can read it.  It will assure you haven't been sold
 a card with a smaller capacity than stated.")
     (license license:gpl3+)))
 
-(define-public python-parted
+(define-public python-pyparted
   (package
-    (name "python-parted")
-    (version "3.11.7")
+    (name "python-pyparted")
+    (version "3.12.0")
     (source
      (origin
        (method git-fetch)
@@ -726,20 +727,8 @@ a card with a smaller capacity than stated.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01193fmkss9icjvqpw85szpk8ld1pnha7p9kqm7mpwk6rc6gi2m3"))))
+        (base32 "0jxc1i1g3lz32wvqvdbb9ng2ypin783004kjnp0pghiz813lpw1d"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             ;; See <https://github.com/dcantrell/pyparted/issues/47>.
-             (substitute* "tests/test__ped_ped.py"
-               (("\"/tmp/temp-device-\"") "self.path"))
-             (invoke "python" "-m" "unittest" "discover" "-v")
-             #t)))))
     (native-inputs
      (list e2fsprogs pkg-config))
     (propagated-inputs
@@ -751,6 +740,9 @@ a card with a smaller capacity than stated.")
     (description "This package provides @code{parted} bindings for Python.")
     (license license:gpl2+)))
 
+(define-public python-parted
+  (deprecated-package "python-parted" python-pyparted))
+
 (define-public duperemove
   (package
     (name "duperemove")
@@ -883,7 +875,7 @@ passphrases.")
 (define-public ndctl
   (package
     (name "ndctl")
-    (version "72.1")
+    (version "73")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -892,12 +884,16 @@ passphrases.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1lvrhlad5n43bal053ihgbwr1k4ka2kscrjwr9rs5xnf2vy7204v"))))
-    (build-system gnu-build-system)
+                "19kp1ly74bj7gavs03q7caci0lqr0rsi5y45zx5m8in4h19xk1kb"))))
+    (build-system meson-build-system)
     (arguments
      (list #:configure-flags
-           #~(list "--disable-asciidoctor" ; use docbook-xsl instead
-                   "--without-systemd")
+           #~(list (string-append "-Drootprefix=" #$output)
+                   (string-append "-Dbashcompletiondir=" #$output
+                                  "/share/bash-completion/completions")
+                   (string-append "-Dsysconfdir=" #$output "/etc")
+                   "-Dasciidoctor=disabled" ; use docbook-xsl instead
+                   "-Dsystemd=disabled")
            #:phases
            #~(modify-phases %standard-phases
                (add-after 'unpack 'fix-version
@@ -910,17 +906,11 @@ passphrases.")
                    (substitute* "git-version-gen"
                      (("/bin/sh") (which "sh")))
                    (substitute* "git-version"
-                     (("/bin/bash") (which "bash"))))))
-           #:make-flags
-           #~(list (string-append "BASH_COMPLETION_DIR=" #$output
-                                  "/share/bash-completion/completions"))))
+                     (("/bin/bash") (which "bash"))))))))
     (native-inputs
      (list asciidoc
-           automake
-           autoconf
            bash-completion
            docbook-xsl
-           libtool
            libxml2
            pkg-config
            xmlto
@@ -940,7 +930,7 @@ passphrases.")
 libnvdimm (non-volatile memory device) sub-system in the Linux kernel.")
     ;; COPYING says LGPL2.1, but many source files are GPL2 so that's
     ;; the effective license.  Note that some files under ccan/ are
-    ;; covered by BSD-3 or public domain, see the individual folders.
+    ;; covered by BSD-3 or public domain, see the individual directories.
     (license license:gpl2)))
 
 (define-public dmraid
@@ -1253,7 +1243,7 @@ that support this feature).")
 (define-public memkind
   (package
     (name "memkind")
-    (version "1.12.0")
+    (version "1.13.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1261,7 +1251,7 @@ that support this feature).")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1s52vl2jlrdc8nxnvf993x9mcag56qxcaniiijhmsv42a26hvjk4"))))
+               (base32 "0zbil6xqmsrnh773ihxyfna6pvvxv3kczdb3g863ssflwwvv7h4w"))))
     (build-system gnu-build-system)
     (inputs
      (list ;; memkind patched jemalloc to add je_arenalookupx,
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index d567f7d3fe..64375b8cfc 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -323,8 +323,8 @@ experience for your users, your family and yourself")
              vala                       ;for Vala bindings
              ;; For tests
              dbus
-             ;; python-wrapper
-             ;; python-pygobject
+             python-wrapper
+             python-pygobject
              which
              yelp-tools))
       ;; Required by liblightdm-gobject-1.pc.
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index fea255c930..aa10b96fdf 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -333,14 +333,14 @@ and BOOTP/TFTP for network booting of diskless machines.")
     ;; When updating, check whether isc-dhcp's bundled copy should be as well.
     ;; The BIND release notes are available here:
     ;; https://www.isc.org/bind/
-    (version "9.16.29")
+    (version "9.16.30")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://ftp.isc.org/isc/bind9/" version
                            "/bind-" version ".tar.xz"))
        (sha256
-        (base32 "0rklj342khnycs462nd3k35yymsdv6ibv352jv1nymmxxfc8yh68"))
+        (base32 "1nv02apqpqk7mi1330jgsacpplhgnkx6mba5nmbsx1x72gqc77q0"))
        (patches
         (search-patches "bind-re-add-attr-constructor-priority.patch"))))
     (build-system gnu-build-system)
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 5ee6fcccde..91a5e55887 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -372,17 +372,18 @@ for DocBook.")
     (description "Documentation for the DocBook DSSSL style sheets.")
     (license (license:non-copyleft "file://doc/LEGALNOTICE.htm"))))
 
-(define-public docbook-sgml
+(define-public docbook-sgml-4.2
   (package
     (name "docbook-sgml")
-    (version "4.1")
+    (version "4.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
-                                  version "/docbk41.zip"))
+              (uri (string-append
+                    "https://www.oasis-open.org/docbook/sgml/4.2/docbook-"
+                    version ".zip"))
               (sha256
                (base32
-                "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))
+                "1hrm4qmmzi285bkxkc74lxvjvw2gbl7ycbaxhv31h9rl9g4x5sv7"))))
     (build-system trivial-build-system)
     (arguments
      '(#:modules ((guix build utils))
@@ -403,8 +404,8 @@ for DocBook.")
            ;; Reference the ISO 8879 character entities.
            ;; e.g. "iso-lat1.gml" --> "<iso-entities-dir>/ISOlat1"
            (substitute* "docbook.cat"
-             (("(.*ISO 8879.*)\"iso-(.*)\\.gml\"" _ head name)
-              (string-append head "\"" iso-entities-dir "/ISO" name "\"")))))))
+             (("\"iso-(.*)\\.gml\"" _ name)
+              (string-append "\"" iso-entities-dir "/ISO" name "\"")))))))
     (native-inputs
      (list unzip))
     (inputs
@@ -414,6 +415,20 @@ for DocBook.")
     (description "This package provides SGML style sheets for DocBook.")
     (license (license:x11-style "" "See file headers."))))
 
+(define-public docbook-sgml-4.1
+  (package
+    (inherit docbook-sgml-4.2)
+    (version "4.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.oasis-open.org/docbook/sgml/"
+                                  version "/docbk41.zip"))
+              (sha256
+               (base32
+                "04b3gp4zkh9c5g9kvnywdkdfkcqx3kjc04j4mpkr4xk7lgqgrany"))))))
+
+(define-public docbook-sgml docbook-sgml-4.1)
+
 (define-public docbook-sgml-3.1
   (package
     (inherit docbook-sgml)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 4bc5e10624..d02e1dc7d5 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -113,6 +113,7 @@
 ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
 ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
 ;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
+;;; Copyright © 2022 Haider Mirza <haider@haider.gq>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -247,7 +248,7 @@
 (define-public emacs-geiser
   (package
     (name "emacs-geiser")
-    (version "0.23.1")
+    (version "0.23.2")
     (source
      (origin
        (method git-fetch)
@@ -256,7 +257,7 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1lvnk71fb4qkh8a7h7spsdhmc9nnj1lwgp9wr3c2fgzjqsl62kgr"))))
+        (base32 "0p5cwx0xwva4ajgj8hnrk8bx6n3hv1z7aqs4zivp81crnq4077yw"))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
@@ -278,7 +279,7 @@
      (list texinfo))
     (propagated-inputs
      (list emacs-project emacs-transient))
-    (home-page "https://nongnu.org/geiser/")
+    (home-page "https://www.nongnu.org/geiser/")
     (synopsis "Collection of Emacs modes for Scheme hacking")
     (description
      "Geiser is a collection of Emacs major and minor modes that conspire with
@@ -296,7 +297,7 @@ e.g. emacs-geiser-guile for Guile.")
 (define-public emacs-geiser-guile
   (package
     (name "emacs-geiser-guile")
-    (version "0.23")
+    (version "0.23.2")
     (source
      (origin
        (method git-fetch)
@@ -305,13 +306,19 @@ e.g. emacs-geiser-guile for Guile.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1v9f90smnk41nz1pjy5mwz199y8p4qar3llgaryzxr7s4wg2v9wi"))))
+        (base32 "18m5ldj4r4c2hxgvv5b4azl90r8az1kn5f3s913h971asyv4wx06"))))
     (build-system emacs-build-system)
     (arguments
      (list
       #:include #~(cons "^src/" %default-include)
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-geiser-guile-binary
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "geiser-guile.el"
+                (("\\(t \"guile\")")
+                 (format #f "(t ~s)"
+                         (search-input-file inputs "bin/guile"))))))
           (add-after 'make-autoloads 'patch-autoloads
             (lambda _
               (substitute* (string-append (elpa-directory #$output)
@@ -321,11 +328,9 @@ e.g. emacs-geiser-guile for Guile.")
                 (("\\(geiser-activate-implementation .*\\)" all)
                  (string-append
                   "(eval-after-load 'geiser-impl '" all ")"))))))))
-    (inputs
-     (list guile-3.0))
-    (propagated-inputs
-     (list emacs-geiser))
-    (home-page "https://nongnu.org/geiser/")
+    (inputs (list guile-3.0))
+    (propagated-inputs (list emacs-geiser))
+    (home-page "https://www.nongnu.org/geiser/")
     (synopsis "Guile Scheme support for Geiser")
     (description
      "This package adds support for the Guile Scheme implementation to Geiser,
@@ -358,34 +363,57 @@ using geiser.")
       (home-page "https://github.com/xiaohanyu/ac-geiser"))))
 
 (define-public emacs-geiser-gauche
-  (package
-    (name "emacs-geiser-gauche")
-    (version "0.0.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://gitlab.com/emacs-geiser/gauche.git")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0rxncnzx7qgcpvc8nz0sd8r0hwrplazzraahdwhbpq0q6z8ywqgg"))))
-    (build-system emacs-build-system)
-    (arguments
-     `(#:include (cons "^geiser-gauche\\.scm$" %default-include)))
-    (native-inputs
-     (list emacs-geiser))
-    (home-page "https://gitlab.com/emacs-geiser/gauche")
-    (synopsis "Gauche Scheme support for Geiser")
-    (description
-     "This package adds support for the Gauche Scheme implementation to Geiser,
+  ;; The latest 0.14 release has an unbound variable (geiser-scheme-dir).
+  (let ((commit "96fa06aaeef18cc1b3b519e83dbb7be09eeb0d07")
+        (revision "0"))
+    (package
+      (name "emacs-geiser-gauche")
+      (version (git-version "0.14" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/emacs-geiser/gauche.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ppracwfl1snq0ifdlyxpdlv7fbn3pbxm1hd1ihgqivii5nbya9r"))))
+      (build-system emacs-build-system)
+      (arguments
+       (list
+        #:include '(cons "^geiser-gauche\\.scm$" %default-include)
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'patch-geiser-gauche-binary
+              (lambda* (#:key inputs #:allow-other-keys)
+                (emacs-substitute-sexps "geiser-gauche.el"
+                  ("geiser-custom--defcustom geiser-gauche-binary"
+                   (search-input-file inputs "bin/gosh")))))
+            (add-after 'make-autoloads 'patch-autoloads
+              (lambda _
+                (substitute* (string-append (elpa-directory #$output)
+                                            "/geiser-gauche-autoloads.el")
+                  ;; Activating implementations fails when Geiser is not yet
+                  ;; loaded, so let's defer that until it is.
+                  (("\\(geiser-activate-implementation .*\\)" all)
+                   (string-append
+                    "(eval-after-load 'geiser-impl '" all ")"))
+                  (("\\(geiser-implementation-extension .*\\)" all)
+                   (string-append
+                    "(eval-after-load 'geiser-impl '" all ")"))))))))
+      (inputs (list gauche))
+      (propagated-inputs (list emacs-geiser))
+      (home-page "https://gitlab.com/emacs-geiser/gauche")
+      (synopsis "Gauche Scheme support for Geiser")
+      (description
+       "This package adds support for the Gauche Scheme implementation to Geiser,
 a generic Scheme interaction mode for the GNU Emacs editor.")
-    (license license:expat)))
+      (license license:expat))))
 
 (define-public emacs-geiser-racket
   (package
     (name "emacs-geiser-racket")
-    (version "0.16")
+    (version "1.0")
     (source
      (origin
        (method git-fetch)
@@ -394,13 +422,19 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1aqsvmk1hi7kc3j4h8xlza7c6rwm71v98fv5wpw8kmyj9vsp49wx"))))
+        (base32 "04gwd9qa0785zfr6m9a5443ilgvyz05l06cb1waicf83sgp8xl32"))))
     (build-system emacs-build-system)
     (arguments
      (list
       #:include #~(cons "^src/" %default-include)
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-geiser-racket-binary
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "geiser-racket.el"
+                (("\\(t \"racket\")")
+                 (format #f "(t ~s)"
+                         (search-input-file inputs "bin/racket"))))))
           (add-after 'make-autoloads 'patch-autoloads
             (lambda _
               (substitute* (string-append (elpa-directory #$output)
@@ -410,14 +444,12 @@ a generic Scheme interaction mode for the GNU Emacs editor.")
                 (("\\(geiser-activate-implementation .*\\)" all)
                  (string-append
                   "(eval-after-load 'geiser-impl '" all ")"))
-	        (("\\(geiser-implementation-extension .*\\)" all)
+                (("\\(geiser-implementation-extension .*\\)" all)
                  (string-append
                   "(eval-after-load 'geiser-impl '" all ")"))))))))
-    (inputs
-     (list racket))
-    (propagated-inputs
-     (list emacs-geiser))
-    (home-page "https://nongnu.org/geiser/")
+    (inputs (list racket))
+    (propagated-inputs (list emacs-geiser))
+    (home-page "https://www.nongnu.org/geiser/")
     (synopsis "Racket support for Geiser")
     (description
      "This package adds support for the Racket implementation to Geiser,
@@ -537,6 +569,27 @@ editing @file{.hgignore} files used by the Mercurial version control
 system.")
       (license license:gpl3+))))
 
+(define-public emacs-platformio-mode
+  (package
+    (name "emacs-platformio-mode")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ZachMassia/PlatformIO-Mode")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ian50v9vaz7kqzn20bhqadq50h0l3zhjkmniinpz4q9klh7drh9"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-async emacs-projectile))
+    (home-page "https://github.com/zachmassia/platformio-mode")
+    (synopsis "Minor mode for building and uploading PlatformIO projects")
+    (description "This package provices an Emacs minor mode for building and
+uploading PlatformIO projects.")
+    (license license:gpl3+)))
+
 (define-public emacs-hyperbole
   (package
     (name "emacs-hyperbole")
@@ -1377,7 +1430,7 @@ organizing remote Go repository clones.")
 (define-public emacs-ghub
   (package
     (name "emacs-ghub")
-    (version "3.5.5")
+    (version "3.5.6")
     (source
      (origin
        (method git-fetch)
@@ -1386,7 +1439,7 @@ organizing remote Go repository clones.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1px27nh4cr3r16qmvig72jdirjzllvm2m4dzm59kfznhg3rf7vj0"))))
+        (base32 "1pw1rjrvvanlcxv3rb64s2p646zfaipp7h7v8djlrrnlgy6mwbqd"))))
     (build-system emacs-build-system)
     (arguments
      (list
@@ -3916,7 +3969,7 @@ evaluations.  The entry point is @code{M-x build-farm} command.")
 (define-public emacs-d-mode
   (package
     (name "emacs-d-mode")
-    (version "2.0.11")
+    (version "2.0.12")
     (source
      (origin
        (method git-fetch)
@@ -3925,7 +3978,7 @@ evaluations.  The entry point is @code{M-x build-farm} command.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0vkl470vvmxap8ca773a0jvjvalmvdbbax3qvgjdclp54ml75al4"))))
+        (base32 "0mwd412d2kha8avkyhvvkh8r7an859xk18f7phgx7kj989pr3xkr"))))
     (build-system emacs-build-system)
     (propagated-inputs
      (list emacs-undercover))
@@ -4136,16 +4189,16 @@ in the center.")
 (define-public emacs-undo-tree
   (package
     (name "emacs-undo-tree")
-    (version "0.8.1")
+    (version "0.8.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://gitlab.com/tsc25/undo-tree")
-             (commit (string-append "release/" version))))
+             (commit "42aab056e37e033816b2d192f9121b89410b958e"))) ; no 0.8.2 tag
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1khkwrrbwaimspc013n4k9mpv8g302r0zkrsqnza2x1d3qznn08y"))))
+        (base32 "1xvkxc078b4z5zqwndz6jcv4ga8yd2ci32v7l8pdvqjmz7fq7bfz"))))
     (build-system emacs-build-system)
     (propagated-inputs
      (list emacs-queue))
@@ -9845,10 +9898,10 @@ navigate code in a tree-like fashion.")
 (define-public emacs-lispy
   ;; No release since May 2019 and tons of fixes have landed on master.
   ;; https://github.com/abo-abo/lispy/issues/513
-  (let ((commit "38a7df4cbb16cfe3d62dc8ea98b50e2d9a572e58"))
+  (let ((commit "df1b7e614fb0f73646755343e8892ddda310f427"))
     (package
       (name "emacs-lispy")
-      (version (git-version "0.27.0" "2" commit))
+      (version (git-version "0.27.0" "3" commit))
       (home-page "https://github.com/abo-abo/lispy")
       (source (origin
                 (method git-fetch)
@@ -9857,7 +9910,7 @@ navigate code in a tree-like fashion.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1q3sgk8ffwajmh8l7c4p4fz36xw4fqds8yqblbi5kardaa8bs8cs"))
+                  "02pmnn9cqslahnvllqzawp2j5icmb3wgkrk4qrfxjds68jg7pjj4"))
                 (patches
                  (search-patches "emacs-lispy-fix-thread-last-test.patch"))
                 (file-name (git-file-name name version))))
@@ -11233,14 +11286,14 @@ of its name.")
 (define-public emacs-rainbow-mode
   (package
     (name "emacs-rainbow-mode")
-    (version "1.0.5")
+    (version "1.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
-                           "rainbow-mode-" version ".el"))
+                           "rainbow-mode-" version ".tar"))
        (sha256
-        (base32 "159fps843k5pap9k04a7ll1k3gw6d9c6w08lq4bbc3lqg78aa2l9"))))
+        (base32 "04v73cm1cap19vwc8lqsw0rmfr9v7r3swc4wgxnk9dnzxi9j2527"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/rainbow-mode.html")
     (synopsis "Colorize color names in buffers")
@@ -12826,7 +12879,7 @@ passive voice.")
 (define-public emacs-org
   (package
     (name "emacs-org")
-    (version "9.5.3")
+    (version "9.5.4")
     (source
      (origin
        (method git-fetch)
@@ -12835,7 +12888,7 @@ passive voice.")
              (commit (string-append "release_" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0h1n6gqxv3kj3y98n5547rhpw4qnp03lfar79npb4paqgpxf76wb"))))
+        (base32 "1an866kkn5r84933s04agm1c3197kza2pvk8lqp2xzpjd09ba394"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -18587,6 +18640,28 @@ files, allowing for actions to be performed based on search criteria.")
 Chinese to English.")
     (license license:gpl3+)))
 
+(define-public emacs-org-auto-tangle
+  (package
+    (name "emacs-org-auto-tangle")
+    (version "0.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/yilkalargaw/org-auto-tangle")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1zb7vcmhmjiqpbbhqrqci689rnpn10p985cs5jk9sgg66xsbrgs3"))))
+    (build-system emacs-build-system)
+    (propagated-inputs (list emacs-async))
+    (home-page "https://github.com/yilkalargaw/org-auto-tangle")
+    (synopsis "Automatically tangle code blocks on save")
+    (description
+     "@code{org-auto-tangle} allows you to automatically tangle code blocks
+whenever saving an @code{org-mode} file.")
+    (license license:bsd-2)))
+
 (define-public emacs-org-auto-expand
   (let ((commit "4938d5f6460e2f8f051ba9ac000b291bfa43ef62")
         (revision "1"))
@@ -19494,16 +19569,14 @@ or expressions with SVG rounded box labels that are fully customizable.")
 (define-public emacs-kind-icon
   (package
     (name "emacs-kind-icon")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "https://elpa.gnu.org/packages/kind-icon-"
-             version
-             ".tar"))
+       (uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
+                           version ".tar"))
        (sha256
-        (base32 "00pyvnq4dx51l2wbhvm6k6cx5xmy32j4h1lkr5kr8s3j5w83ip25"))))
+        (base32 "0qajj89vkgc9gbgff6akzll53jy0kgkv6c9jvwpl32rbg8v0wp63"))))
     (build-system emacs-build-system)
     (propagated-inputs (list emacs-svg-lib))
     (home-page "https://github.com/jdtsmith/kind-icon")
@@ -24857,45 +24930,53 @@ the standard @code{Dockerfile} file format.")
     (license license:asl2.0)))
 
 (define-public emacs-lsp-mode
-  (package
-    (name "emacs-lsp-mode")
-    (version "8.0.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/emacs-lsp/lsp-mode")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1a6jc9sxf9b8fj9h8xlv5k546bkzsy8j5nj19cfama389z0bzcsl"))))
-    (build-system emacs-build-system)
-    (arguments
-     `(#:emacs ,emacs  ;need libxml support
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'move-clients-libraries
-           ;; Move all clients libraries at top-level, as is done, e.g., in
-           ;; MELPA.
-           (lambda _
-             (for-each (lambda (f)
-                         (install-file f "."))
-                       (find-files "clients/" "\\.el$")))))))
-    (propagated-inputs
-     (list emacs-dash
-           emacs-f
-           emacs-ht
-           emacs-hydra
-           emacs-markdown-mode
-           emacs-spinner))
-    (home-page "https://emacs-lsp.github.io/lsp-mode/")
-    (synopsis "Emacs client and library for the Language Server Protocol")
-    (description
-     "LSP mode is a client and library implementation for the Language Server
-Protocol.  This mode creates an IDE-like experience by providing optional
-integration with other popular Emacs packages like Company, Flycheck, and
-Projectile.")
-    (license license:gpl3+)))
+  (let ((commit "4aafe25e03ab7470b8d3c1cb326affa3c5e9930e")
+        (revision "0"))
+    (package
+      (name "emacs-lsp-mode")
+      (version (git-version "8.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacs-lsp/lsp-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "01csz4vr3fg1q2py45mxj5j8bkvckn3daam1jafb2gg9gjc9bp7z"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:emacs ,emacs                 ;need libxml support
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'move-clients-libraries
+             ;; Move all clients libraries at top-level, as is done, e.g., in
+             ;; MELPA.
+             (lambda _
+               (for-each (lambda (f)
+                           (install-file f "."))
+                         (find-files "clients/" "\\.el$"))))
+           (add-before 'move-clients-libraries 'fix-patch-el-files
+             ;; /bin/ksh is only used on macOS, which we don't support, so we
+             ;; don't want to add it as input.
+             (lambda _
+               (substitute* '("clients/lsp-csharp.el" "clients/lsp-fsharp.el")
+                 (("/bin/ksh") "ksh")))))))
+      (propagated-inputs
+       (list emacs-dash
+             emacs-f
+             emacs-ht
+             emacs-hydra
+             emacs-markdown-mode
+             emacs-spinner))
+      (home-page "https://emacs-lsp.github.io/lsp-mode/")
+      (synopsis "Emacs client and library for the Language Server Protocol")
+      (description
+       "LSP mode is a client and library implementation for the Language
+Server Protocol.  This mode creates an IDE-like experience by providing
+optional integration with other popular Emacs packages like Company, Flycheck,
+and Projectile.")
+      (license license:gpl3+))))
 
 (define-public emacs-lsp-treemacs
   (package
@@ -27826,7 +27907,7 @@ Emacs that integrate with major modes like Org-mode.")
 (define-public emacs-modus-themes
   (package
     (name "emacs-modus-themes")
-    (version "2.4.0")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -27835,7 +27916,7 @@ Emacs that integrate with major modes like Org-mode.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ia6r68fqbv64r9jm92vmqypq15nl8yy07n18hqrfbp1fy47zds1"))))
+        (base32 "0b4y8dzyc9qwwaf2ngqiwyfcnhwlr49kxhc96laqk20lvjlfsrnx"))))
     (native-inputs (list texinfo))
     (build-system emacs-build-system)
     (arguments
@@ -27937,28 +28018,30 @@ and it should work well with 256 color terminals.")
     (license license:gpl3+)))
 
 (define-public emacs-dimmer
-  (package
-    (name "emacs-dimmer")
-    (version "0.4.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/gonewest818/dimmer.el")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0dw0qh5hm1x76s5cqxvylvmjgy0jwy11xm258g6kmx6w1k6r1d2l"))))
-    (build-system emacs-build-system)
-    (home-page "https://github.com/gonewest818/dimmer.el")
-    (synopsis "Visually highlights the selected buffer in Emacs")
-    (description "Dimmer provides a minor mode that indicates which buffer is
+  (let ((commit "2f915b100044e09dd647b22085e1696249c4b115")
+        (revision "1"))
+    (package
+      (name "emacs-dimmer")
+      (version (git-version "0.4.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gonewest818/dimmer.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00y6645zjary1sz7517qy5pjwfm5ipsc46sypmdygin65hbbc8wg"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/gonewest818/dimmer.el")
+      (synopsis "Visually highlights the selected buffer in Emacs")
+      (description "Dimmer provides a minor mode that indicates which buffer is
 currently active by dimming the faces in the other buffers.  It does this
 nondestructively, and computes the dimmed faces dynamically such that your
 overall color scheme is shown in a muted form without requiring you to define
 what is a \"dim\" version of every face.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-minibuffer-line
   (package
@@ -31512,6 +31595,59 @@ zoomable and moveable map display, display of tracks and POIs from GPX files,
 parallel fetching of tiles with cURL, and more.")
     (license license:gpl3+)))
 
+(define-public emacs-corfu-terminal
+  ;; Upstream does not tag releases, version taken from package header.
+  (let ((commit "7c5a8a1c07b6c1a41b358b083d5bf7773701d26b")
+        (revision "0"))
+    (package
+      (name "emacs-corfu-terminal")
+      (version (git-version "0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://codeberg.org/akib/emacs-corfu-terminal")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pk5vfcz8w4hiqrwzwpxdjzlbhla0bw7a1h6v0mqxad0j9y7v3nw"))))
+      (build-system emacs-build-system)
+      (propagated-inputs (list emacs-corfu emacs-popon))
+      (home-page "https://codeberg.org/akib/emacs-corfu-terminal/")
+      (synopsis "Replace corfu child frames with popups")
+      (description
+       "This package replaces the child frames @code{emacs-corfu} uses
+with popups, which also work in the terminal.")
+      (license license:gpl3+))))
+
+(define-public emacs-corfu-doc-terminal
+  ;; Upstream does not tag releases, version taken from package header.
+  (let ((commit "d8945c64b52d76e864b767b3048674f222daf80b")
+        (revision "0"))
+    (package
+      (name "emacs-corfu-doc-terminal")
+      (version (git-version "0.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://codeberg.org/akib/emacs-corfu-doc-terminal")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0j0dd8np5x93wic22bc5i9h7bq2gj700n4fh11dzzgsj14lv2r5k"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-corfu emacs-corfu-doc emacs-corfu-terminal emacs-popon))
+      (home-page "https://codeberg.org/akib/emacs-corfu-doc-terminal/")
+      (synopsis "Replace corfu docmentation child frames with popups")
+      (description
+       "This package replaces the child frames @code{emacs-corfu-doc} uses
+with popups, which also work in the terminal.")
+      (license license:gpl3+))))
+
 (define-public emacs-popon
   ;; Upstream does not tag releases.  The commit below matches the version
   ;; bump.
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 15a34d1557..31b5c04324 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages selinux)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages web)       ; for jansson
@@ -262,7 +263,6 @@
            ;; This is not needed for (modern) IMAP.
            mailutils
 
-           ;; TODO: Add the optional dependencies.
            gpm
            libx11
            gtk+
@@ -272,7 +272,9 @@
            libxft
            libtiff
            giflib
+           lcms
            libjpeg-turbo
+           libselinux
            acl
            jansson
            gmp
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 6b11fc54f0..190af4edfb 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1840,7 +1840,8 @@ an embedded event driven algorithm.")
     (arguments
      (substitute-keyword-arguments (package-arguments libngspice)
        ((#:configure-flags flags)
-        `(delete "--with-ngshared" ,flags))
+        `(cons "--with-readline=yes"
+               (delete "--with-ngshared" ,flags)))
        ((#:phases phases)
         `(modify-phases ,phases
            (add-after 'unpack 'delete-include-files
@@ -2430,111 +2431,106 @@ OpenSCAD code.  It supports syntax highlighting, indenting and refilling of
 comments.")))
 
 (define-public freecad
-  ;; FIXME: We use a commit directly because upstream has compatibility fixes
-  ;; that are not in a release yet for boost, opencascade-occt-7.6 and vtk-9.
-  ;; Switch back to a regular version (probably 0.20) when it is released.
-  (let ((commit "09a05a9cd0c4692a57a3e038268b4389b4657fc6")
-        (revision "0"))
-    (package
-      (name "freecad")
-      (version (git-version "0.19.3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/FreeCAD/FreeCAD")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0818basym0n44dsgix0yv1l00xgv9igrr7wkszd8x74lh1rr591r"))))
-      (build-system qt-build-system)
-      (native-inputs
-       (list doxygen
-             graphviz
-             qttools
-             pkg-config
-             python-pyside-2-tools
-             swig))
-      (inputs
-       (list boost
-             coin3D
-             double-conversion
-             eigen
-             fontconfig
-             freetype
-             gl2ps
-             glew
-             hdf5-1.10
-             jsoncpp
-             libarea
-             libjpeg-turbo
-             libmedfile
-             libspnav
-             libtheora
-             libtiff
-             libxi
-             libxml++
-             libxmu
-             lz4
-             netcdf
-             opencascade-occt
-             openmpi
-             proj
-             python-gitpython
-             python-matplotlib
-             python-pivy
-             python-ply
-             python-pyside-2
-             python-pyyaml
-             python-shiboken-2
-             python-wrapper
-             qtbase-5
-             qtdeclarative
-             qtsvg
-             qtwebchannel
-             qtwebengine
-             qtx11extras
-             qtxmlpatterns
-             sqlite
-             tbb-2020 ; Same version as opencascade-occt
-             vtk
-             xerces-c
-             zlib))
-      (arguments
-       `(#:tests? #f          ; Project has no tests
-         #:configure-flags
-         ,#~(list
-             "-DBUILD_QT5=ON"
-             "-DBUILD_FLAT_MESH:BOOL=ON"
-             "-DBUILD_ENABLE_CXX_STD:STRING=C++17"
-             (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib"))
-         #:phases
-         (modify-phases %standard-phases
-           (add-before 'configure 'restore-pythonpath
-             (lambda _
-               (substitute* "src/Main/MainGui.cpp"
-                 (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))))
-           (add-after 'install 'wrap-pythonpath
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (wrap-program (string-append out "/bin/FreeCAD")
-                   (list "GUIX_PYTHONPATH"
-                         'prefix (list (getenv "GUIX_PYTHONPATH"))))))))))
-      (home-page "https://www.freecadweb.org/")
-      (synopsis "Your Own 3D Parametric Modeler")
-      (description
-       "FreeCAD is a general purpose feature-based, parametric 3D modeler for
+  (package
+    (name "freecad")
+    (version "0.20")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/FreeCAD/FreeCAD")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14bn75bjh93f8k3hinqw913z1q0ywq7niklwbbd99hf5n342hsv4"))))
+    (build-system qt-build-system)
+    (native-inputs
+     (list doxygen
+           graphviz
+           qttools
+           pkg-config
+           python-pyside-2-tools
+           swig))
+    (inputs
+     (list boost
+           coin3D
+           double-conversion
+           eigen
+           fontconfig
+           freetype
+           gl2ps
+           glew
+           hdf5-1.10
+           jsoncpp
+           libarea
+           libjpeg-turbo
+           libmedfile
+           libspnav
+           libtheora
+           libtiff
+           libxi
+           libxml++
+           libxmu
+           lz4
+           netcdf
+           opencascade-occt
+           openmpi
+           proj
+           python-gitpython
+           python-matplotlib
+           python-pivy
+           python-ply
+           python-pyside-2
+           python-pyyaml
+           python-shiboken-2
+           python-wrapper
+           qtbase-5
+           qtdeclarative
+           qtsvg
+           qtwebchannel
+           qtwebengine
+           qtx11extras
+           qtxmlpatterns
+           sqlite
+           tbb-2020                     ; Same version as opencascade-occt
+           vtk
+           xerces-c
+           zlib))
+    (arguments
+     `(#:tests? #f                      ; Project has no tests
+       #:configure-flags
+       ,#~(list
+           "-DBUILD_QT5=ON"
+           "-DBUILD_FLAT_MESH:BOOL=ON"
+           "-DBUILD_ENABLE_CXX_STD:STRING=C++17"
+           (string-append "-DCMAKE_INSTALL_LIBDIR=" #$output "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'restore-pythonpath
+           (lambda _
+             (substitute* "src/Main/MainGui.cpp"
+               (("_?putenv\\(\"PYTHONPATH=\"\\);") ""))))
+         (add-after 'install 'wrap-pythonpath
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/FreeCAD")
+                 (list "GUIX_PYTHONPATH"
+                       'prefix (list (getenv "GUIX_PYTHONPATH"))))))))))
+    (home-page "https://www.freecadweb.org/")
+    (synopsis "Your Own 3D Parametric Modeler")
+    (description
+     "FreeCAD is a general purpose feature-based, parametric 3D modeler for
 CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and
 product design but also fits a wider range of uses in engineering, such as
 architecture or other engineering specialties.  It is 100% Open Source (LGPL2+
 license) and extremely modular, allowing for very advanced extension and
 customization.")
-      (license
-       (list
-        license:lgpl2.1+
-        license:lgpl2.0+
-        license:gpl3+
-        license:bsd-3)))))
+    (license
+     (list
+      license:lgpl2.1+
+      license:lgpl2.0+
+      license:gpl3+
+      license:bsd-3))))
 
 (define-public libmedfile
   (package
@@ -2740,21 +2736,19 @@ export filters.")
 (define-public meshlab
   (package
     (name "meshlab")
-    (version "2020.06")
+    (version "2022.02")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/cnr-isti-vclab/meshlab")
-                    (commit (string-append "Meshlab-" version))
+                    (commit (string-append "MeshLab-" version))
                     (recursive? #t)))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
+               (base32 "0dkh9qw9z2160s6gjiv0a601kp6hvl66cplvi8rfc892zcykgiwd"))))
     (build-system cmake-build-system)
     (inputs
      (list qtbase-5
-           qtscript
-           qtxmlpatterns
            mesa
            glu
            glew
@@ -2764,34 +2758,29 @@ export filters.")
            libfreenect
            lib3ds
            openctm
-           ;; FIXME: Compilation fails with system qhull:
-           ;; https://github.com/cnr-isti-vclab/meshlab/issues/678
-           ;; ("qhull" ,qhull)
-           ))
+           qhull))
     (arguments
-     `(#:tests? #f                                ; Has no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'go-to-source-dir
-           (lambda _ (chdir "src") #t))
-         (add-after 'install 'move-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((lib (string-append (assoc-ref outputs "out")
-                                       "/lib")))
-               (rename-file
-                (string-append lib "/meshlab/libmeshlab-common.so")
-                (string-append lib "/libmeshlab-common.so"))
-               #t))))))
+     (list #:tests? #f                  ; Has no tests
+           #:configure-flags
+           #~(list (string-append "-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab")
+                   (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab")
+                   (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath="
+                                  #$output "/lib/meshlab"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'go-to-source-dir
+                 (lambda _ (chdir "src"))))))
     (synopsis "3D triangular mesh processing and editing software")
     (home-page "https://www.meshlab.net/")
-    (description "MeshLab is a system for the processing and
-editing of unstructured large 3D triangular meshes.  It is aimed to help the
-processing of the typical not-so-small unstructured models arising in 3D
-scanning, providing a set of tools for editing, cleaning, healing, inspecting,
-rendering and converting this kind of meshes.  These tools include MeshLab
-proper, a versatile program with a graphical user interface, and meshlabserver,
-a program that can perform mesh processing tasks in batch mode, without a
-GUI.")
+    (description "MeshLab is a system for the processing and editing of large,
+unstructured, 3D triangular meshes.  It is aimed to help the processing of the
+typical, not-so-small unstructured models arising in 3D scanning, providing a
+set of tools for editing, cleaning, healing, inspecting, rendering and
+converting this kind of meshes.  These tools include MeshLab proper, a
+versatile program with a graphical user interface, and @samp{meshlabserver}, a
+program that can perform mesh processing tasks in batch mode, without a GUI.")
     (license license:gpl3+)))
 
 (define-public poke
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 779024cbeb..53b58aec60 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Nikita <nikita@n0.is>
+;;; Copyright © 2020-2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Oskar Köök <oskar@maatriks.ee>
 ;;; Copyright © 2021 Cees de Groot <cg@evrl.com>
 ;;;
@@ -26,6 +27,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system emacs)
+  #:use-module (guix build-system rebar)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -35,6 +37,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages wxwidgets))
 
@@ -203,3 +206,493 @@ built-in support for concurrency, distribution and fault tolerance.")
      "This package provides an Emacs major mode for editing Erlang source
 files.")
     (license license:asl2.0)))
+
+(define-public erlang-bbmustache
+  (package
+    (name "erlang-bbmustache")
+    (version "1.12.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "bbmustache" version))
+       (sha256
+        (base32 "0fvvaxdpziygxl30j59g98qkh2n47xlb7w5dfpsm2bfcsnj372v8"))))
+    (build-system rebar-build-system)
+    (inputs
+     (list erlang-getopt rebar3-git-vsn
+           erlang-edown))  ; for building the docs
+    (arguments
+     `(#:tests? #f ;; requires mustache specification file
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'build-more
+           (lambda _
+             (invoke "rebar3" "as" "dev" "escriptize")))
+         (add-after 'install 'install-escript
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (install-file "_build/dev/bin/bbmustache"
+                             (string-append out "/bin"))))))))
+    (home-page "https://github.com/soranoba/bbmustache/")
+    (synopsis "Binary pattern match Based Mustache template engine for Erlang")
+    (description "This Erlang library provides a Binary pattern match Based
+Mustache template engine")
+    (license license:expat)))
+
+(define-public erlang-certifi
+  (package
+    (name "erlang-certifi")
+    (version "2.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "certifi" version))
+       (sha256
+        (base32 "0ha6vmf5p3xlbf5w1msa89frhvfk535rnyfybz9wdmh6vdms8v96"))))
+    (build-system rebar-build-system)
+    (arguments
+     `(#:tests? #f)) ;; have not been updated for latest cert bundle
+    (home-page "https://github.com/certifi/erlang-certifi/")
+    (synopsis "Erlang CA certificate bundle")
+    (description "This Erlang library contains a CA bundle that you can
+reference in your Erlang application.  This is useful for systems that do not
+have CA bundles that Erlang can find itself, or where a uniform set of CAs is
+valuable.
+
+This an Erlang specific port of certifi.  The CA bundle is derived from
+Mozilla's canonical set.")
+    (license license:bsd-3)))
+
+(define-public erlang-cf
+  (package
+    (name "erlang-cf")
+    (version "0.3.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "cf" version))
+       (sha256
+        (base32 "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/project-fifo/cf")
+    (synopsis "Terminal colour helper for Erlang io and io_lib")
+    (description "This package provides a helper library for termial colour
+printing extending the io:format syntax to add colours.")
+    (license license:expat)))
+
+(define-public erlang-covertool
+  (package
+    (name "erlang-covertool")
+    (version "2.0.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "covertool" version))
+       (sha256
+        (base32 "1p0c1n3nl4063xwi1sv176l1x68xqf07qwvj444a5z888fx6i5aw"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/covertool/covertool")
+    (synopsis "Convert code-coverage data generated by @code{cover} into
+Cobertura XML reports")
+    (description "This package provides a build tool and plugin to convert
+exported Erlang @code{cover} data sets into Cobertura XML reports, which can
+then be feed to the Jenkins Cobertura plug-in.
+
+On @emph{hex.pm}, this plugin was previously called @code{rebar_covertool}.")
+    (license license:bsd-2)))
+
+(define-public erlang-cth-readable
+  (package
+    (name "erlang-cth-readable")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "cth_readable" version))
+       (sha256
+        (base32 "104xgybb6iciy6i28pyyrarqzliddi8kjyq43ajaav7y5si42rb8"))))
+    (build-system rebar-build-system)
+    (propagated-inputs
+     (list erlang-cf))
+    (arguments
+     `(#:tests? #f)) ;; no test-suite in hex-pm package
+    (home-page "https://github.com/ferd/cth_readable")
+    (synopsis "Common Test hooks for more readable logs for Erlang")
+    (description "This package provides an OTP library to be used for CT log
+outputs you want to be readable around all that noise they contain.")
+    (license license:bsd-3)))
+
+(define-public erlang-edown
+  (package
+    (name "erlang-edown")
+    (version "0.8.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hexpm-uri "edown" version))
+        (sha256
+          (base32 "0ij47gvgs6yfqphj0f54qjzj18crj8y1dsjjlzpp3dp8pscqzbqw"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/uwiger/edown")
+    (synopsis "Markdown extension for EDoc")
+    (description "This package provides an extension for EDoc for generating
+Markdown.")
+    (license license:asl2.0)))
+
+(define-public erlang-erlware-commons
+  (package
+    (name "erlang-erlware-commons")
+    (version "1.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "erlware_commons" version))
+       (sha256
+        (base32 "18qam9xdzi74wppb0cj4zc8161i0i8djr79z8662m6d276f2jz5m"))))
+    (build-system rebar-build-system)
+    (propagated-inputs
+     (list erlang-cf))
+    (native-inputs
+     (list git-minimal/fixed))  ;; Required for tests
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'check-setup
+           (lambda _
+             (setenv "TERM" "xterm")))))) ; enable color in logs
+    (home-page "http://erlware.github.io/erlware_commons/")
+    (synopsis "Additional standard library for Erlang")
+    (description "Erlware Commons is an Erlware project focused on all aspects
+of reusable Erlang components.")
+    (license license:expat)))
+
+(define-public erlang-eunit-formatters
+  (package
+    (name "erlang-eunit-formatters")
+    (version "0.5.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "eunit_formatters" version))
+       (sha256
+        (base32 "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/seancribbs/eunit_formatters")
+    (synopsis "Better output for eunit suites")
+    (description "This package provides a better output for Erlang eunits.")
+    (license license:asl2.0)))
+
+(define-public erlang-getopt
+  (package
+    (name "erlang-getopt")
+    (version "1.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "getopt" version))
+       (sha256
+        (base32 "09pasi7ki1rivw9sl7xndj5qgjbdqvcscxk83yk85yr28gm9l0m0"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/jcomellas/getopt")
+    (synopsis "Command-line options parser for Erlang")
+    (description "This package provides an Erlang module to parse command line
+arguments using the GNU getopt syntax.")
+    (license license:bsd-3)))
+
+(define-public erlang-hex-core
+  (package
+    (name "erlang-hex-core")
+    (version "0.8.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "hex_core" version))
+       (sha256
+        (base32 "06p65hlm29ky03vs3fq3qz6px2ylwp8b0f2y75wdf5cm0kx2332b"))))
+    (build-system rebar-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "rebar3" "as" "test" "proper")))))))
+    (inputs
+     (list erlang-proper rebar3-proper))
+    (home-page "https://github.com/hexpm/hex_core")
+    (synopsis "Reference implementation of Hex specifications")
+    (description "This package provides the reference implementation of Hex
+specifications.")
+    (license license:asl2.0)))
+
+(define-public erlang-jsone
+  (package
+    (name "erlang-jsone")
+    (version "1.7.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hexpm-uri "jsone" version))
+        (sha256
+          (base32 "1gaxiw76syjp3s9rygskm32y9799b917q752rw8bxj3bxq93g8x3"))))
+    (build-system rebar-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-covertool
+           ;; no need to generate a coverage report
+           (lambda _
+             (substitute* "rebar.config"
+               (("\\{project_plugins, \\[covertool\\]\\}\\." _) "")))))))
+    (home-page "https://github.com/sile/jsone/")
+    (synopsis "Erlang JSON Library")
+    (description "An Erlang library for encoding and decoding JSON data.")
+    (license license:expat)))
+
+(define-public erlang-parse-trans
+  (package
+    (name "erlang-parse-trans")
+    (version "3.4.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "parse_trans" version))
+       (sha256
+        (base32 "16p4c2xjrvz16kzpr9pmcvi6nxq6rwckqi9fp0ksibaxwxn402k2"))))
+    (build-system rebar-build-system)
+    (inputs
+     (list erlang-getopt))
+    (home-page "https://github.com/uwiger/parse_trans")
+    (synopsis "Parse transform utilities for Erlang")
+    (description "This package captures some useful patterns in parse
+transformation and code generation for Erlang.
+
+For example generating standardized accessor functions for records or
+evaluating an expression at compile-time and substitute the result as a
+compile-time constant.")
+    (license license:asl2.0)))
+
+(define-public erlang-proper
+  (package
+    (name "erlang-proper")
+    (version "1.4.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hexpm-uri "proper" version))
+        (sha256
+          (base32 "1fwcas4a9kz3w3z1jqdk9lw8822srfjk9lcpvbxkxlsv3115ha0q"))))
+    (build-system rebar-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-covertool
+           ;; no need to generate a coverage report
+           (lambda _
+             (substitute* "rebar.config"
+               (("\\{plugins, \\[covertool\\]\\}\\." _) "")))))))
+    (home-page "https://proper-testing.github.io/")
+    (synopsis "QuickCheck-inspired property-based testing tool for Erlang")
+    (description "PropEr is a tool for the automated, semi-random,
+property-based testing of Erlang programs.  It is fully integrated with
+Erlang's type language, and can also be used for the model-based random
+testing of stateful systems.")
+    (license license:gpl3+)))
+
+(define-public erlang-providers
+  (package
+    (name "erlang-providers")
+    (version "1.9.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "providers" version))
+       (sha256
+        (base32 "05y0kz3xgx77hzn1l05byaisvmk8bgds7c22hrh0a5ba81sfi1yj"))))
+    (build-system rebar-build-system)
+    (propagated-inputs
+     (list erlang-erlware-commons erlang-getopt))
+    (home-page "https://github.com/tsloughter/providers")
+    (synopsis "Erlang providers library")
+    (description "This package provides an Erlang providers library.")
+    (license license:asl2.0)))
+
+(define-public erlang-relx
+  (package
+    (name "erlang-relx")
+    (version "4.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "relx" version))
+       (sha256
+        (base32 "02gmfx1vxg9m3mq4njsqhs4972l4nb8m5p1pdcf64g09ccf17y1g"))))
+    (build-system rebar-build-system)
+    (propagated-inputs
+     (list erlang-bbmustache))
+    (home-page "https://erlware.github.io/relx/")
+    (synopsis "Release assembler for Erlang/OTP Releases")
+    (description "Relx assembles releases for an Erlang/OTP release.  Given a
+release specification and a list of directories in which to search for OTP
+applications it will generate a release output.  That output depends heavily on
+what plugins available and what options are defined, but usually it is simply
+a well configured release directory.")
+    (license license:asl2.0)))
+
+(define-public erlang-ssl-verify-fun
+  (package
+    (name "erlang-ssl-verify-fun")
+    (version "1.1.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "ssl_verify_fun" version))
+       (sha256
+        (base32 "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/deadtrickster/ssl_verify_fun.erl")
+    (synopsis "SSL verification functions for Erlang")
+    (description "This package provides SSL verification functions for
+Erlang.")
+    (license license:expat)))
+
+(define-public rebar3
+  (package
+    (name "rebar3")
+    (version "3.18.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/erlang/rebar3")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "09648hzc2mnjwf9klm20cg4hb5rn2xv2gmzcg98ffv37p5yfl327"))))
+    (build-system gnu-build-system)
+    ;; TODO: remove vendored modules, install man-page, install lib(?)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'bootstrap)
+         (add-after 'unpack 'unpack-dependency-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (for-each
+              (lambda (pkgname)
+                (let* ((src (string-append pkgname "-source"))
+                       (input (assoc-ref inputs src))
+                       (checkouts-dir (string-append "_checkouts/" pkgname))
+                       (lib-dir (string-append "_build/default/lib/" pkgname)))
+                  (mkdir-p checkouts-dir)
+                  (invoke "tar" "-xf" input "-C" checkouts-dir)
+                  (invoke "tar" "-xzf"
+                          (pk (string-append checkouts-dir "/contents.tar.gz"))
+                          "-C" checkouts-dir)
+                  (mkdir-p lib-dir)
+                  (copy-recursively checkouts-dir lib-dir)))
+              (list "bbmustache" "certifi" "cf" "cth_readable"
+                    "eunit_formatters" "getopt" "hex_core" "erlware_commons"
+                    "parse_trans" "relx" "ssl_verify_fun" "providers"))))
+         (delete 'configure)
+         (replace 'build
+           (lambda _
+             (setenv "HOME" (getcwd))
+             (invoke "./bootstrap")))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (install-file "rebar3" (string-append out "/bin")))))
+         (delete 'check))))
+    (native-inputs
+     (list erlang))
+    (inputs
+     `(("bbmustache-source" ,(package-source erlang-bbmustache))
+       ("certifi-source" ,(package-source erlang-certifi))
+       ("cf-source" ,(package-source erlang-cf))
+       ("cth_readable-source" ,(package-source erlang-cth-readable))
+       ("erlware_commons-source" ,(package-source erlang-erlware-commons))
+       ("eunit_formatters-source" ,(package-source erlang-eunit-formatters))
+       ("getopt-source" ,(package-source erlang-getopt))
+       ("hex_core-source" ,(package-source erlang-hex-core))
+       ("parse_trans-source" ,(package-source erlang-parse-trans))
+       ("relx-source" ,(package-source erlang-relx))
+       ("ssl_verify_fun-source" ,(package-source erlang-ssl-verify-fun))
+       ("providers-source" ,(package-source erlang-providers))))
+    (home-page "https://rebar3.org/")
+    (synopsis "Sophisticated build-tool for Erlang projects that follows OTP
+principles")
+    (description "@code{rebar3} is an Erlang build tool that makes it easy to
+compile and test Erlang applications, port drivers and releases.
+
+@code{rebar3} is a self-contained Erlang script, so it's easy to distribute or
+even embed directly in a project.  Where possible, rebar uses standard
+Erlang/OTP conventions for project structures, thus minimizing the amount of
+build configuration work.  @code{rebar3} also provides dependency management,
+enabling application writers to easily re-use common libraries from a variety
+of locations (git, hg, etc).")
+    (license license:asl2.0)))
+
+(define-public rebar3-raw-deps
+  (package
+    (name "rebar3-raw-deps")
+    (version "2.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (hexpm-uri "rebar3_raw_deps" version))
+       (sha256
+        (base32 "1pzmm3m8gb2s9jn8fp6shzgfmy4mvh2vdci0z6nsm74ma3ffh1i3"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/soranoba/rebar3_raw_deps")
+    (synopsis "Rebar3 plugin for supporting \"raw\" dependencies")
+    (description "This plugin provides support for handling non-OTP
+applications as a dependent libraries.")
+    (license license:expat)))
+
+(define-public rebar3-git-vsn
+  (package
+    (name "rebar3-git-vsn")
+    (version "1.1.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hexpm-uri "rebar3_git_vsn" version))
+        (sha256
+          (base32 "1dfz56034pa25axly9vqdzv3phkn8ll0qwrkws96pbgcprhky1hx"))))
+    (build-system rebar-build-system)
+    (inputs
+     (list git-minimal/fixed))
+    (arguments
+     `(;; Running the tests require binary artifact (tar-file containing
+       ;; samples git repos)  TODO: remove these from the source
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((git (assoc-ref inputs "git-minimal")))
+               (substitute* "src/rebar3_git_vsn.erl"
+                 (("rebar_utils:sh\\(\"git " _)
+                  (string-append "rebar_utils:sh(\"" git "/bin/git ")))))))))
+    (home-page "https://github.com/soranoba/rebar3_git_vsn")
+    (synopsis "Rebar3 plugin for generating the version from git")
+    (description "This plugin adds support for generating the version from
+a git checkout.")
+    (license license:expat)))
+
+(define-public rebar3-proper
+  (package
+    (name "rebar3-proper")
+    (version "0.12.1")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (hexpm-uri "rebar3_proper" version))
+        (sha256
+          (base32 "1f174fb6h2071wr7qbw9aqqvnglzsjlylmyi8215fhrmi38w94b6"))))
+    (build-system rebar-build-system)
+    (home-page "https://github.com/ferd/rebar3_proper")
+    (synopsis "Rebar3 PropEr plugin")
+    (description "This plugin allows running PropEr test suites from within
+rebar3.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index b63ad63749..291696b5c8 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -366,131 +367,125 @@ coreboot.")
                    ;; cpl with a linking exception.
                    license:cpl1.0))))
 
-;; OVMF is part of the edk2 source tree.
-(define edk2-commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
-(define edk2-version (git-version "20170116" "1" edk2-commit))
-(define edk2-origin
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "https://github.com/tianocore/edk2")
-          (commit edk2-commit)))
-    (file-name (git-file-name "edk2" edk2-version))
-    (sha256
-     (base32
-      "1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm948b"))))
-
 (define-public ovmf
-  (package
-    (name "ovmf")
-    (version edk2-version)
-    (source edk2-origin)
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("acpica" ,acpica)
-       ("gcc@5" ,gcc-5)
-       ("nasm" ,nasm)
-       ("python-2" ,python-2)
-       ("util-linux" ,util-linux "lib")))
-    (arguments
-     `(#:tests? #f ; No check target.
-       #:phases
-       (modify-phases %standard-phases
-         ;; Hide the default GCC from CPLUS_INCLUDE_PATH to prevent it from
-         ;; shadowing the version of GCC provided in native-inputs.
-         (add-after 'set-paths 'hide-gcc7
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((gcc (assoc-ref inputs "gcc")))
-               (setenv "CPLUS_INCLUDE_PATH"
-                       (string-join
-                        (delete (string-append gcc "/include/c++")
-                                (string-split (getenv "CPLUS_INCLUDE_PATH")
-                                              #\:))
-                        ":"))
-               #t)))
-         (replace 'configure
-           (lambda _
-             (let* ((cwd (getcwd))
-                    (tools (string-append cwd "/BaseTools"))
-                    (bin (string-append tools "/BinWrappers/PosixLike")))
-               (setenv "WORKSPACE" cwd)
-               (setenv "EDK_TOOLS_PATH" tools)
-               (setenv "PATH" (string-append (getenv "PATH") ":" bin))
-               ; FIXME: The below script errors out. When using 'invoke' instead
-               ; of 'system*' this causes the build to fail.
-               (system* "bash" "edksetup.sh")
-               (substitute* "Conf/target.txt"
-                 (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
-                 (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
-                  (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
-                          (number->string (parallel-job-count)))))
-               ;; Build build support.
-               (setenv "BUILD_CC" "gcc")
-               (invoke "make" "-C" tools)
-               #t)))
-         (replace 'build
-           (lambda _
-             (invoke "build" "-a" "IA32" "-t" "GCC49"
-                     "-p" "OvmfPkg/OvmfPkgIa32.dsc")))
-         ,@(if (string=? "x86_64-linux" (%current-system))
-             '((add-after 'build 'build-x64
-                (lambda _
-                  (invoke "build" "-a" "X64" "-t" "GCC49"
-                          "-p" "OvmfPkg/OvmfPkgX64.dsc"))))
-             '())
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (fmw (string-append out "/share/firmware")))
-               (mkdir-p fmw)
-               (copy-file "Build/OvmfIa32/RELEASE_GCC49/FV/OVMF.fd"
-                          (string-append fmw "/ovmf_ia32.bin"))
-               ,@(if (string=? "x86_64-linux" (%current-system))
-                   '((copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd"
-                                (string-append fmw "/ovmf_x64.bin")))
-                   '()))
-             #t)))))
-    (supported-systems '("x86_64-linux" "i686-linux"))
-    (home-page "https://www.tianocore.org")
-    (synopsis "UEFI firmware for QEMU")
-    (description "OVMF is an EDK II based project to enable UEFI support for
+  (let ((commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
+        (revision "1"))
+    (package
+      (name "ovmf")
+      (version (git-version "20170116" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      ;; OVMF is part of the edk2 source tree.
+                      (url "https://github.com/tianocore/edk2")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm948b"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:tests? #f                     ; No check target.
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; Hide the default GCC from CPLUS_INCLUDE_PATH to prevent it from
+            ;; shadowing the version of GCC provided in native-inputs.
+            (add-after 'set-paths 'hide-implicit-gcc
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let ((gcc (assoc-ref inputs "gcc")))
+                  (setenv "CPLUS_INCLUDE_PATH"
+                          (string-join
+                           (delete (string-append gcc "/include/c++")
+                                   (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                 #\:))
+                           ":")))))
+            (add-after 'unpack 'patch-source
+              (lambda _
+                (substitute* "edksetup.sh"
+                  (("^return \\$\\?")
+                   "exit $?"))))
+            (replace 'configure
+              (lambda _
+                (let* ((cwd (getcwd))
+                       (tools (string-append cwd "/BaseTools"))
+                       (bin (string-append tools "/BinWrappers/PosixLike")))
+                  (setenv "WORKSPACE" cwd)
+                  (setenv "EDK_TOOLS_PATH" tools)
+                  (setenv "PATH" (string-append (getenv "PATH") ":" bin))
+                  (invoke "bash" "edksetup.sh")
+                  (substitute* "Conf/target.txt"
+                    (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
+                    (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
+                     (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
+                             (number->string (parallel-job-count)))))
+                  ;; Build build support.
+                  (setenv "BUILD_CC" "gcc")
+                  (invoke "make" "-C" tools))))
+            (replace 'build
+              (lambda _
+                (invoke "build" "-a" "IA32" "-t" "GCC49"
+                        "-p" "OvmfPkg/OvmfPkgIa32.dsc")))
+            #$@(if (string=? "x86_64-linux" (%current-system))
+                   #~((add-after 'build 'build-x64
+                        (lambda _
+                          (invoke "build" "-a" "X64" "-t" "GCC49"
+                                  "-p" "OvmfPkg/OvmfPkgX64.dsc"))))
+                   #~())
+            (replace 'install
+              (lambda _
+                (let ((fmw (string-append #$output "/share/firmware")))
+                  (mkdir-p fmw)
+                  (copy-file "Build/OvmfIa32/RELEASE_GCC49/FV/OVMF.fd"
+                             (string-append fmw "/ovmf_ia32.bin"))
+                  #$@(if (string=? "x86_64-linux" (%current-system))
+                         '((copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd"
+                                      (string-append fmw "/ovmf_x64.bin")))
+                         '())))))))
+      (native-inputs
+       `(("acpica" ,acpica)
+         ("gcc@5" ,gcc-5)
+         ("nasm" ,nasm)
+         ("python-2" ,python-2)
+         ("util-linux" ,util-linux "lib")))
+      (supported-systems '("x86_64-linux" "i686-linux"))
+      (home-page "https://www.tianocore.org")
+      (synopsis "UEFI firmware for QEMU")
+      (description "OVMF is an EDK II based project to enable UEFI support for
 Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
-    (license (list license:expat
-                   license:bsd-2 license:bsd-3 license:bsd-4))))
+      (license (list license:expat
+                     license:bsd-2 license:bsd-3 license:bsd-4)))))
 
 (define-public ovmf-aarch64
   (package
     (inherit ovmf)
     (name "ovmf-aarch64")
     (native-inputs
-     `(,@(package-native-inputs ovmf)
-       ,@(if (not (string-prefix? "aarch64" (%current-system)))
-           `(("cross-gcc" ,(cross-gcc "aarch64-linux-gnu"))
-             ("cross-binutils" ,(cross-binutils "aarch64-linux-gnu")))
-           '())))
+     (append (package-native-inputs ovmf)
+             (if (not (string-prefix? "aarch64" (%current-system)))
+                 `(("cross-gcc" ,(cross-gcc "aarch64-linux-gnu"))
+                   ("cross-binutils" ,(cross-binutils "aarch64-linux-gnu")))
+                 '())))
     (arguments
      (substitute-keyword-arguments (package-arguments ovmf)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'configure 'set-env
-             (lambda _
-               ,@(if (not (string-prefix? "aarch64" (%current-system)))
-                     `((setenv "GCC49_AARCH64_PREFIX" "aarch64-linux-gnu-"))
-                     '())
-               #t))
-           (replace 'build
-             (lambda _
-               (invoke "build" "-a" "AARCH64" "-t" "GCC49"
-                       "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
-           (delete 'build-x64)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (fmw (string-append out "/share/firmware")))
-                 (mkdir-p fmw)
-                 (copy-file "Build/ArmVirtQemu-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd"
-                            (string-append fmw "/ovmf_aarch64.bin"))
-                 #t)))))))
+        #~(modify-phases #$phases
+            (add-before 'configure 'set-env
+              (lambda _
+                #$@(if (not (string-prefix? "aarch64" (%current-system)))
+                       #~((setenv "GCC49_AARCH64_PREFIX" "aarch64-linux-gnu-"))
+                       #~())))
+            (replace 'build
+              (lambda _
+                (invoke "build" "-a" "AARCH64" "-t" "GCC49"
+                        "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
+            (delete 'build-x64)
+            (replace 'install
+              (lambda _
+                (let ((fmw (string-append #$output "/share/firmware")))
+                  (mkdir-p fmw)
+                  (copy-file "Build/ArmVirtQemu-AARCH64/RELEASE_GCC49/FV/QEMU_EFI.fd"
+                             (string-append fmw "/ovmf_aarch64.bin")))))))))
     (supported-systems %supported-systems)))
 
 (define-public ovmf-arm
@@ -498,34 +493,31 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
     (inherit ovmf)
     (name "ovmf-arm")
     (native-inputs
-     `(,@(package-native-inputs ovmf)
-       ,@(if (not (string-prefix? "armhf" (%current-system)))
-           `(("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"))
-             ("cross-binutils" ,(cross-binutils "arm-linux-gnueabihf")))
-           '())))
+     (append (package-native-inputs ovmf)
+             (if (not (string-prefix? "armhf" (%current-system)))
+                 `(("cross-gcc" ,(cross-gcc "arm-linux-gnueabihf"))
+                   ("cross-binutils" ,(cross-binutils "arm-linux-gnueabihf")))
+                 '())))
     (arguments
      (substitute-keyword-arguments (package-arguments ovmf)
        ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'configure 'set-env
-             (lambda _
-               ,@(if (not (string-prefix? "armhf" (%current-system)))
-                     `((setenv "GCC49_ARM_PREFIX" "arm-linux-gnueabihf-"))
-                     '())
-               #t))
-           (replace 'build
-             (lambda _
-               (invoke "build" "-a" "ARM" "-t" "GCC49"
-                       "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
-           (delete 'build-x64)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (fmw (string-append out "/share/firmware")))
-                 (mkdir-p fmw)
-                 (copy-file "Build/ArmVirtQemu-ARM/RELEASE_GCC49/FV/QEMU_EFI.fd"
-                            (string-append fmw "/ovmf_arm.bin"))
-                 #t)))))))
+        #~(modify-phases #$phases
+            (add-before 'configure 'set-env
+              (lambda _
+                #$@(if (not (string-prefix? "armhf" (%current-system)))
+                       #~((setenv "GCC49_ARM_PREFIX" "arm-linux-gnueabihf-"))
+                       #~())))
+            (replace 'build
+              (lambda _
+                (invoke "build" "-a" "ARM" "-t" "GCC49"
+                        "-p" "ArmVirtPkg/ArmVirtQemu.dsc")))
+            (delete 'build-x64)
+            (replace 'install
+              (lambda _
+                (let ((fmw (string-append #$output "/share/firmware")))
+                  (mkdir-p fmw)
+                  (copy-file "Build/ArmVirtQemu-ARM/RELEASE_GCC49/FV/QEMU_EFI.fd"
+                             (string-append fmw "/ovmf_arm.bin")))))))))
     (supported-systems %supported-systems)))
 
 (define* (make-arm-trusted-firmware platform #:optional (arch "aarch64"))
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 764fc9b422..08300cb860 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -217,56 +218,48 @@ firmware from it.")
     (license license:gpl2+)))
 
 (define-public teensy-loader-cli
-  ;; The repo does not tag versions nor does it use releases, but a commit
-  ;; message says "Importing 2.1", while the sourcce still says "2.0". So pin
-  ;; to a fixed commit.
-  (let ((commit "f289b7a2e5627464044249f0e5742830e052e360"))
-    (package
-      (name "teensy-loader-cli")
-      (version (git-version "2.1" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-                (url "https://github.com/PaulStoffregen/teensy_loader_cli")
-                (commit commit)))
-         (sha256 (base32 "0sssim56pwsxp5cp5dlf6mi9h5fx2592m6j1g7abnm0s09b0lpdx"))
-         (file-name (git-file-name name version))
-         (modules '((guix build utils)))
-         (snippet
-          `(begin
-             ;; Remove example flash files and teensy rebooter flash binaries.
-             (for-each delete-file (find-files "." "\\.(elf|hex)$"))
-             ;; Fix the version
-             (substitute* "teensy_loader_cli.c"
-               (("Teensy Loader, Command Line, Version 2.0\\\\n")
-                (string-append "Teensy Loader, Command Line, " ,version "\\n")))
-             #t))
+  (package
+    (name "teensy-loader-cli")
+    (version "2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/PaulStoffregen/teensy_loader_cli")
+             (commit version)))
+       (sha256 (base32 "12n8ifz4gph1anhwd8if3j1kw0wc3yxf48abbyxl8071l9vj3m0b"))
+       (file-name (git-file-name name version))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           ;; Remove example flash files and teensy rebooter flash binaries.
+           (for-each delete-file (find-files "." "\\.(elf|hex)$"))
+           #t))
        (patches (search-patches "teensy-loader-cli-help.patch"))))
-      (build-system gnu-build-system)
-      (arguments
-       '(#:tests? #f ;; Makefile has no test target
-         #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin")))
-                 (install-file "teensy_loader_cli" bin)
-                 #t))))))
-      (inputs
-       (list libusb-compat))
-      (synopsis "Command line firmware uploader for Teensy development boards")
-      (description
-       "The Teensy loader program communicates with your Teensy board when the
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;; Makefile has no test target
+       #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin")))
+               (install-file "teensy_loader_cli" bin)
+               #t))))))
+    (inputs
+     (list libusb-compat))
+    (synopsis "Command line firmware uploader for Teensy development boards")
+    (description
+     "The Teensy loader program communicates with your Teensy board when the
 HalfKay bootloader is running, so you can upload new programs and run them.
 
 You need to add the udev rules to make the Teensy update available for
 non-root users.")
-      (home-page "https://www.pjrc.com/teensy/loader_cli.html")
-      (license license:gpl3))))
+    (home-page "https://www.pjrc.com/teensy/loader_cli.html")
+    (license license:gpl3)))
 
 (define-public rkflashtool
   (let ((commit "8966c4e277de8148290554aaaa4146a3a84a3c53")
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 5308eb8bcc..36b792ccf0 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
-;;; Copyright © 2015-2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2017, 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
 ;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
@@ -851,35 +851,6 @@ GNOME Shell.  The @command{localectl} command-line tool allows you to interact
 with localed.  This package is extracted from the broader systemd package.")
     (license license:lgpl2.1+)))
 
-(define-public seatd
-  (package
-    (name "seatd")
-    (version "0.5.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://git.sr.ht/~kennylevinsen/seatd")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297"))))
-    (build-system meson-build-system)
-    (arguments
-     `(#:configure-flags '("-Dlogind=enabled")))
-    (native-inputs
-     (list pkg-config scdoc))
-    (propagated-inputs
-     (list elogind))
-    (home-page "https://sr.ht/~kennylevinsen/seatd")
-    (synopsis "Seat management daemon and library")
-    (description
-     "This package provides a minimal seat management daemon whose task is to
-mediate access to shared devices, such as graphics and input, for applications
-that require it.  It also provides a universal seat management library that
-allows applications to use whatever seat management is available.")
-    (license license:expat)))
-
 (define-public packagekit
   (package
     (name "packagekit")
@@ -1050,6 +1021,9 @@ functionality not available in the Wayland core protocol.  Such protocols either
 add completely new functionality, or extend the functionality of some other
 protocol either in Wayland core, or some other protocol in wayland-protocols.")
     (home-page "https://wayland.freedesktop.org")
+    (properties
+     '((release-monitoring-url
+        . "https://wayland.freedesktop.org/releases.html")))
     (license license:expat)))
 
 (define-public waylandpp
@@ -2271,7 +2245,7 @@ fallback to generic Systray support if none of those are available.")
 (define-public xdg-desktop-portal
   (package
     (name "xdg-desktop-portal")
-    (version "1.10.1")
+    (version "1.14.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2279,7 +2253,7 @@ fallback to generic Systray support if none of those are available.")
                     version "/xdg-desktop-portal-" version ".tar.xz"))
               (sha256
                (base32
-                "199lqr2plsy9qqnxx5a381ml8ygcbz4nkjla5pvljjcrwzlqsygd"))))
+                "0wqc9x3k7lf3mig53i4rjazi0xi8bcykwaaw7r7prvnscnd1k405"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -2290,7 +2264,8 @@ fallback to generic Systray support if none of those are available.")
        ("which" ,which)
        ("gettext" ,gettext-minimal)))
     (inputs
-     `(("glib" ,glib)
+     `(("gdk-pixbuf" ,gdk-pixbuf)
+       ("glib" ,glib)
        ("flatpak" ,flatpak)
        ("fontconfig" ,fontconfig)
        ("json-glib" ,json-glib)
@@ -2298,17 +2273,20 @@ fallback to generic Systray support if none of those are available.")
        ("dbus" ,dbus)
        ("geoclue" ,geoclue)
        ("pipewire" ,pipewire-0.3)
-       ("fuse" ,fuse)))
+       ("fuse" ,fuse-3)))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list "--with-systemd=no")
+       #: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)))))
+                       (find-files "po" "\\.po$"))))
+         (add-after 'unpack 'set-home-directory
+           (lambda _ (setenv "HOME" "/tmp"))))))
     (native-search-paths
      (list (search-path-specification
             (variable "XDG_DESKTOP_PORTAL_DIR")
@@ -2330,7 +2308,7 @@ and others.")
 (define-public xdg-desktop-portal-gtk
   (package
     (name "xdg-desktop-portal-gtk")
-    (version "1.10.0")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2338,7 +2316,7 @@ and others.")
                     version "/xdg-desktop-portal-gtk-" version ".tar.xz"))
               (sha256
                (base32
-                "0nlbnd6qvs92fanrmmn123vy0y2ml0v3ndxyk5x0cpfbnmxpa2f8"))))
+                "0m29b4hm7lq06gcavxw7gdlgqiiy3vgv3v4yjqfq5kx92q3j28gn"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 4c1b97f041..04f2b061fc 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -48,6 +48,7 @@
   #:use-module (ice-9 match)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
+  #:use-module (guix gexp)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix svn-download)
@@ -94,6 +95,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages qt)
@@ -1207,26 +1209,24 @@ to create fully featured games and multimedia programs in the python language.")
                    license:lgpl2.1+))))
 
 (define-public python-pygame-sdl2
+  ;; Using latest git commit as of 2022-06-17, because there is no tagged
+  ;; release for renpy 8.
+  ;; Revert back to URLs once renpy 8 is released!
   (let ((real-version "2.1.0")
-        (renpy-version "7.4.11"))
+        ;;(renpy-version "8.0.0")
+        (commit "1705c6e3004dcb1daf859560bcd52eb093e97d45"))
     (package
       (inherit python-pygame)
       (name "python-pygame-sdl2")
-      (version (string-append real-version "-for-renpy-" renpy-version))
+      (version (git-version real-version "0" commit))
       (source
        (origin
-         (method url-fetch)
-         (uri (string-append "https://www.renpy.org/dl/" renpy-version
-                             "/pygame_sdl2-" version ".tar.gz"))
-         (sha256 (base32 "0nxvca16299jx6sp0ys29rqixcs21ymhqwjfkbchhss0yar7qjgz"))
-         (modules '((guix build utils)))
-         (snippet
-          '(begin
-             ;; drop generated sources
-             (delete-file-recursively "gen")
-             (delete-file-recursively "gen3")
-             (delete-file-recursively "gen-static")
-             #t))))
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/renpy/pygame_sdl2")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256 (base32 "1g0arhpd59zypspk36sgajf1kzavppfkv766vifvxar60968rrjn"))))
       (build-system python-build-system)
       (arguments
        `(#:tests? #f                ; tests require pygame to be installed first
@@ -1257,16 +1257,21 @@ While it aims to be used as a drop-in replacement, it appears to be
 developed mainly for Ren'py.")
       (license (list license:lgpl2.1 license:zlib)))))
 
-(define-public renpy
+;; Using nightly from 2022-06-16.
+;; Revert back to URLs once renpy 8 is released!
+(define %renpy-commit "3e854bc7cb1642ca18b061a0c6e349f168965c43")
+(define-public python-renpy
   (package
-    (name "renpy")
-    (version "7.4.11")
+    (name "python-renpy")
+    (version (git-version "7.99.99" "0" %renpy-commit))
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append "https://www.renpy.org/dl/" version
-                           "/renpy-" version "-source.tar.bz2"))
-       (sha256 (base32 "0zkhg2sd2hglm9dkansf4h8sq7lm7iqslzl763ambp4kyfdvd07q"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/renpy/renpy")
+             (commit %renpy-commit)))
+       (file-name (git-file-name name version))
+       (sha256 (base32 "11g7hqhw4gbkx5ib2wsawrznmjbn8r9zkgf2sg39z56h96y8wfbn"))
        (modules '((guix build utils)))
        (patches
         (search-patches
@@ -1342,6 +1347,170 @@ the launcher and common Ren'py code provided by the @code{renpy} package and
 are only used to bootstrap it.")
     (license license:expat)))
 
+(define-public renpy
+  (package
+    (inherit python-renpy)
+    (name "renpy")
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:tests? #f ; see python-renpy
+      #:modules '((srfi srfi-1)
+                  (guix build python-build-system)
+                  (guix build utils))
+      #:imported-modules `((srfi srfi-1) ,@%python-build-system-modules)
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-commands
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (substitute* "launcher/game/choose_directory.rpy"
+                (("/usr/bin/python")
+                 (search-input-file inputs "/bin/python3")))
+              (substitute* "launcher/game/front_page.rpy"
+                (("xdg-open")
+                 (search-input-file inputs "/bin/xdg-open")))
+              (substitute* "launcher/game/project.rpy"
+                (("cmd = \\[ executable, \"-EO\", sys.argv\\[0\\] \\]")
+                 (string-append "cmd = [ \"" (assoc-ref outputs "out")
+                                "/bin/renpy\" ]"))
+                ;; Projects are still created in the usual style, so we need
+                ;; to adjust the path.
+                (("cmd.append\\(self.path\\)")
+                 "cmd.append(self.path + \"/game\")"))))
+          (add-after 'unpack 'drop-game-from-paths
+            (lambda _
+              (substitute* (list "launcher/game/gui7.rpy"
+                                 "launcher/game/gui7/images.py")
+                ((", \"game\",") ","))
+              #t))
+          (add-before 'build 'start-xserver
+            (lambda* (#:key inputs native-inputs #:allow-other-keys)
+              (let ((Xvfb (search-input-file (or native-inputs inputs)
+                                             "/bin/Xvfb")))
+                (setenv "HOME" (getcwd))
+                (system (format #f "~a :1 &" Xvfb))
+                (setenv "DISPLAY" ":1"))))
+          (replace 'build
+            (lambda _
+              (invoke "python" "renpy.py" "launcher" "quit")
+              (invoke "python" "renpy.py" "the_question" "quit")
+              (invoke "python" "renpy.py" "tutorial" "quit")))
+          (replace 'install
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              ;; Here we install our custom renpy program.
+              ;; After finishing this step, "out" will have the following:
+              ;; |-- bin/renpy
+              ;; `-- share/renpy ; i.e. path_to_renpy_base()
+              ;;     |-- common
+              ;;     `-- gui
+              ;;
+              ;; Note that common shares the source files that would be installed
+              ;; by python2-renpy (which are instead deleted from that package),
+              ;; but also contains their byte-compiled versions.
+              ;; On other systems, renpy_base would point to site-packages or
+              ;; even somewhere in /opt.
+              ;; The former approach is not as straightforward as it seems
+              ;; -- it causes renpy to load files twice for some weird reason --
+              ;; and the latter is impossible on Guix. Hence the detour through
+              ;; share/renpy and the custom renpy program.
+              ;;
+              ;; As a convention, other games should be installed as
+              ;; subdirectories of share/renpy in their respective outputs as
+              ;; well. This differs from the traditional layout, which is
+              ;; roughly the following:
+              ;; `-- Super Awesome Game
+              ;;     |-- game       ; <- the folder we actually want
+              ;;     |-- lib        ; compiled renpy module and dependencies
+              ;;     |-- renpy      ; yet another copy of Ren'py's code
+              ;;     |   |-- common ; the common folder from above
+              ;;     |   `-- ...    ; Python code (source + compiled)
+              ;;     |-- Super Awesome Game.py
+              ;;     `-- Super Awesome Game.sh
+              (let* ((out (assoc-ref outputs "out"))
+                     (bin/renpy (string-append out "/bin/renpy")))
+                (copy-recursively "renpy/common"
+                                  (string-append out "/share/renpy/common"))
+                (copy-recursively "gui"
+                                  (string-append out "/share/renpy/gui"))
+
+                (mkdir-p (string-append out "/bin"))
+                (copy-file #$(local-file (search-auxiliary-file "renpy/renpy.in"))
+                           bin/renpy)
+                (substitute* bin/renpy
+                  (("@PYTHON@") (search-input-file inputs "bin/python3"))
+                  (("@RENPY_BASE@") (string-append out "/share/renpy")))
+                (chmod bin/renpy #o755))))
+
+          (add-after 'install 'install-games
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (define renpy (assoc-ref outputs "out"))
+              ;; TODO: We should offer a renpy-build-system to make the
+              ;; installation of Ren'py games easier.
+              (define* (install-renpy-game #:key output game name (renpy renpy)
+                                           #:allow-other-keys)
+                (let* ((name (or name (basename game)))
+                       (launcher (string-append output "/bin/renpy-" name))
+                       (share (string-append output "/share/renpy/" name)))
+                  (copy-recursively (string-append game "/game") share)
+                  (mkdir-p (string-append output "/bin"))
+                  (with-output-to-file launcher
+                    (lambda ()
+                      (format #t
+                              "#!~a~%~a ~a \"$@\""
+                              (search-input-file inputs "/bin/bash")
+                              (string-append renpy "/bin/renpy")
+                              share)))
+                  (chmod launcher #o755)))
+
+              (install-renpy-game #:output (assoc-ref outputs "out")
+                                  #:game "launcher")
+
+              (install-renpy-game #:output (assoc-ref outputs "the-question")
+                                  #:game "the_question"
+                                  #:name "the-question")
+
+              (install-renpy-game #:output (assoc-ref outputs "tutorial")
+                                  #:game "tutorial")))
+          (replace 'wrap
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out"))
+                    (site (string-append "/lib/python"
+                                         (python-version
+                                          (assoc-ref inputs "python"))
+                                         "/site-packages")))
+                (wrap-program (string-append out "/bin/renpy")
+                  `("GUIX_PYTHONPATH" =
+                    (,@(delete-duplicates
+                        (map
+                         (lambda (store-path)
+                           (string-append store-path site))
+                         (cons (assoc-ref outputs "out")
+                               (map cdr
+                                    (filter
+                                     (lambda (input)
+                                       (string-prefix? "python" (car input)))
+                                     inputs))))))))))))))
+    (inputs (list bash-minimal
+                  python
+                  python-pefile
+                  python-requests
+                  python-renpy
+                  python-six
+                  `(,python "tk")
+                  xdg-utils))
+    (propagated-inputs '())
+    (native-inputs (list xorg-server-for-tests))
+    (outputs (list "out" "tutorial" "the-question"))
+    (home-page "https://www.renpy.org/")
+    (synopsis "Visual Novel Engine")
+    (description "Ren'Py is a visual novel engine that helps you use words,
+images, and sounds to tell interactive stories that run on computers and
+mobile devices.  These can be both visual novels and life simulation games.
+The easy to learn script language allows anyone to efficiently write large
+visual novels, while its Python scripting is enough for complex simulation
+games.")
+    (license license:expat)))
+
 (define-public python-pyxel
   (package
     (name "python-pyxel")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index c011622f8e..8e6ab03530 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2200,7 +2200,7 @@ Every puzzle has a complete solution, although there may be more than one.")
    (license license:gpl2+)))
 
 (define-public retux
-  (let ((release "1.5")
+  (let ((release "1.6.1")
         (revision 0))
     (package
       (name "retux")
@@ -2216,7 +2216,7 @@ Every puzzle has a complete solution, although there may be more than one.")
                                     release "-src.zip"))
                 (sha256
                  (base32
-                  "1yima7s36hn2kh5h08lczc5iid8jbdxk7x1g5ms6knaznzj7rll3"))))
+                  "1bkyfm0h4kys0x7c1340fnkhgnmcrf4j2xjm250r5w8q6l7v2wj4"))))
       (build-system python-build-system)
       (arguments
        `(#:tests? #f                    ; no check target
@@ -2237,12 +2237,11 @@ Every puzzle has a complete solution, although there may be more than one.")
                     (string-append "\"" data "\",")))
 
                  (copy-file "retux.py" (string-append bin "/retux"))
-                 (copy-recursively "data" data)
-                 #t))))))
+                 (copy-recursively "data" data)))))))
       (native-inputs
        (list unzip))
       (inputs
-       (list python-sge python-six python-xsge))
+       (list python-sge python-xsge))
       (home-page "https://retux-game.github.io/")
       (synopsis "Action platformer game")
       (description
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index ea7483f16f..7b29c55088 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019, 2021 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;; Copyright © 2019, 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2020, 2021, 2022 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
@@ -2715,35 +2715,40 @@ using third-party geocoders and other data sources.")
 (define-public gplates
   (package
     (name "gplates")
-    (version "2.3.0")
+    ;; Note: use a pre-release to cope with newer Boost, ref
+    ;; https://discourse.gplates.org/t/compilation-error-with-boost-1-77/452/3
+    (version "2.3.01-beta.3")
     (source (origin
               (method url-fetch)
-              (uri "https://www.earthbyte.org/download/8421/")
-              (file-name (string-append name "-" version ".tar.bz2"))
+              (uri "https://cloudstor.aarnet.edu.au/plus/s\
+/ojsYNOyUYE3evNp/download?path=%2F&files=gplates_2.3.1-beta.3_src.zip")
+              (file-name (string-append name "-" version ".zip"))
               (sha256
                (base32
-                "0lrcmcxc924ixddii8cyglqlwwxvk7f00g4yzbss5i3fgcbh8n96"))))
+                "06i87dfab0cq9gdi5mh6sf9wigawpp0d05zbyslv910443i26gwv"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBoost_NO_BOOST_CMAKE=ON")
-       #:tests? #f)) ;no test target
+       #:tests? #f))                    ;no test target
+    (native-inputs
+     (list unzip))                      ;for the beta
     (inputs
-     `(("boost" ,boost)
-       ("cgal" ,cgal)
-       ("gdal" ,gdal)
-       ("glew" ,glew)
-       ("glu" ,glu)
-       ("gmp" ,gmp)
-       ("mesa" ,mesa)
-       ("mpfr" ,mpfr)
-       ("proj" ,proj)
-       ("python-3" ,python-3)
-       ("python-numpy" ,python-numpy)
-       ("qt" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtxmlpatterns" ,qtxmlpatterns)
-       ("qwt" ,qwt)
-       ("zlib" ,zlib)))
+     (list boost
+           cgal
+           gdal
+           glew
+           glu
+           gmp
+           mesa
+           mpfr
+           proj
+           python-3
+           python-numpy
+           qtbase-5
+           qtsvg
+           qtxmlpatterns
+           qwt
+           zlib))
     (home-page "https://www.gplates.org")
     (synopsis "Plate tectonics simulation program")
     (description "GPlates is a plate tectonics program.  Manipulate
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 1bf396670e..a2a991ba4c 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -175,7 +175,7 @@ of a larger interface.")
 (define-public babl
   (package
     (name "babl")
-    (version "0.1.88")
+    (version "0.1.92")
     (source (origin
               (method url-fetch)
               (uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -189,7 +189,7 @@ of a larger interface.")
                                         "/babl-" version ".tar.xz")))
               (sha256
                (base32
-                "0fbh2ss1dy3sba4xjmfm4vxxjmx9a6rzgba9ycjygchbm957y3ag"))))
+                "1hd2i1s7fng33msxiafavk3zb4zb9jk61w8qmmsn6jwl51876rzn"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -215,7 +215,7 @@ provided, as well as a framework to add new color models and data types.")
 (define-public gegl
   (package
     (name "gegl")
-    (version "0.4.34")
+    (version "0.4.36")
     (source
      (origin
        (method url-fetch)
@@ -229,7 +229,7 @@ provided, as well as a framework to add new color models and data types.")
                                  (version-major+minor version)
                                  "/gegl-" version ".tar.xz")))
        (sha256
-        (base32 "1amazk6g9dk76rxwaqa81j87ql5vgz539n6xk88wccdllnyg0qzg"))))
+        (base32 "19ic3fv0j8ysxxw7bx7gy3l8l8l9ldrvbzxfmmc24w67vh68mmbg"))))
     (build-system meson-build-system)
     (arguments
      `(#:configure-flags
@@ -288,7 +288,7 @@ buffers.")
 (define-public gimp
   (package
     (name "gimp")
-    (version "2.10.30")
+    (version "2.10.32")
     (source
      (origin
        (method url-fetch)
@@ -296,7 +296,7 @@ buffers.")
                            (version-major+minor version)
                            "/gimp-" version ".tar.bz2"))
        (sha256
-        (base32 "1p375gaw2daip6aiv1icrlpws5m1my5kalxkxrvl4zgdfsm5v0c8"))))
+        (base32 "09csp2d8bzf012n7hvbbwngwr9phv3rnip768qdwqpdgah2wf59z"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                  ; 9 MiB of gtk-doc HTML
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 4609f6c796..c740c087dd 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -261,7 +261,7 @@ also known as DXTn or DXTC) for Mesa.")
 (define-public mesa
   (package
     (name "mesa")
-    (version "21.3.7")
+    (version "21.3.8")
     (source
       (origin
         (method url-fetch)
@@ -273,7 +273,7 @@ also known as DXTn or DXTC) for Mesa.")
                                   version "/mesa-" version ".tar.xz")))
         (sha256
          (base32
-          "0ggw3s514z6szasbiy4dv5mdi689121yy2xly2g21gv1mavrvyml"))
+          "19wx5plk6z0hhi0zdzxjx8ynl3lhlc5mbd8vhwqyk92kvhxjf3g7"))
         (patches
          (search-patches "mesa-skip-tests.patch"))))
     (build-system meson-build-system)
@@ -288,26 +288,28 @@ also known as DXTn or DXTC) for Mesa.")
             libxxf86vm
             xorgproto))
     (inputs
-      `(("expat" ,expat)
-        ("libelf" ,elfutils)  ;required for r600 when using llvm
-        ("libva" ,(force libva-without-mesa))
-        ("libxml2" ,libxml2)
-        ("libxrandr" ,libxrandr)
-        ("libxvmc" ,libxvmc)
-        ;; Note: update the 'clang' input of mesa-opencl when bumping this.
-        ("llvm" ,llvm-11)
-        ("wayland" ,wayland)
-        ("wayland-protocols" ,wayland-protocols)))
+     (append (list expat
+                   elfutils                 ;libelf required for r600 when using llvm
+                   (force libva-without-mesa)
+                   libxml2
+                   libxrandr
+                   libxvmc
+                   wayland
+                   wayland-protocols)
+             ;; TODO: Resort alphabetically.
+             ;; Note: update the 'clang' input of mesa-opencl when bumping this.
+             (list llvm-11)))
     (native-inputs
-      `(("bison" ,bison)
-        ("flex" ,flex)
-        ("gettext" ,gettext-minimal)
-        ("glslang" ,glslang)
-        ("pkg-config" ,pkg-config)
-        ("python" ,python-wrapper)
-        ("python-libxml2", python-libxml2) ;for OpenGL ES 1.1 and 2.0 support
-        ("python-mako" ,python-mako)
-        ("which" ,(@ (gnu packages base) which))))
+     (append (list bison
+                   flex
+                   gettext-minimal
+                   pkg-config
+                   python-wrapper
+                   python-libxml2                  ;for OpenGL ES 1.1 and 2.0 support
+                   python-mako
+                   (@ (gnu packages base) which))
+             ;; TODO: Resort alphabetically.
+             (list glslang)))
     (outputs '("out" "bin"))
     (arguments
      `(#:configure-flags
@@ -510,11 +512,11 @@ from software emulation to complete hardware acceleration for modern GPUs.")
        ((#:configure-flags flags)
         `(cons "-Dgallium-opencl=standalone" ,flags))))
     (inputs
-     `(("libclc" ,libclc)
-       ,@(package-inputs mesa)))
+     (modify-inputs (package-inputs mesa)
+       (prepend libclc)))
     (native-inputs
-     `(("clang" ,clang-11)
-       ,@(package-native-inputs mesa)))))
+     (modify-inputs (package-native-inputs mesa)
+       (prepend clang-11)))))
 
 (define-public mesa-opencl-icd
   (package/inherit mesa-opencl
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 95839a856d..df33374276 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@@ -176,6 +176,38 @@ or through unencrypted TCP/IP suitable for use behind a firewall with
 shared NFS home directories.")
     (license license:gpl2+)))                     ; or Academic Free License 2.1
 
+;;; This variant is used for the Jami service: it provides an entry point to
+;;; further customize the configuration of the D-Bus instance run by the
+;;; jami-dbus-session service.
+(define-public dbus-for-jami
+  (hidden-package
+   (package/inherit dbus
+     (name "dbus-for-jami")
+     (arguments
+      (substitute-keyword-arguments (package-arguments dbus)
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'customize-config
+              (lambda _
+                (substitute* "bus/session.conf.in"
+                  (("@SYSCONFDIR_FROM_PKGDATADIR@/dbus-1/session-local.conf")
+                   "/var/run/jami/session-local.conf")))))))))))
+
+;;; The reason this is not enabled in the regular dbus package is because it
+;;; impacts the performance of D-Bus (including its library) as a whole, even
+;;; when the DBUS_VERBOSE environment variable is not set.
+(define-public dbus-verbose
+  (package/inherit dbus
+    (name "dbus-verbose")
+    (arguments (substitute-keyword-arguments (package-arguments dbus)
+                 ((#:configure-flags flags '())
+                  `(cons "--enable-verbose-mode" ,flags))))
+    (synopsis "D-Bus with verbose mode enabled for debugging")
+    (description "This variant D-Bus package is built with verbose mode, which
+eases debugging of D-Bus services by printing various debug information when
+the @code{DBUS_VERBOSE} environment variable is set to @samp{1}.  For more
+information, refer to the @samp{dbus-daemon(1)} man page.")))
+
 (define glib
   (package
     (name "glib")
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index e143d5378c..9e5d319291 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -10,12 +10,13 @@
 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
 ;;; Copyright © 2020 Ellis Kenyo <me@elken.dev>
 ;;; Copyright © 2020 Stefan Reichör <stefan@xsteve.at>
-;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml>
 ;;; Copyright © 2021, 2022 Justin Veilleux <terramorpha@cock.li>
 ;;; Copyright © 2021 Attila Lendvai <attila@lendvai.name>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -37,6 +38,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system python)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -50,6 +52,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -58,6 +61,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
@@ -217,6 +221,86 @@ simple and consistent.")
 and a few extra features.")
     (license license:gpl3)))
 
+(define-public gnome-plots
+  (package
+    (name "gnome-plots")
+    (version "0.6.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/alexhuntley/Plots")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "168wcsrkmvq79xmwvbq615msd4q0rg7f57xqicidnr78jx4x37rd"))))
+    (build-system python-build-system)
+    (inputs
+     (list bash-minimal                 ; for wrap-program
+           gtk+
+           pango
+           python-freetype-py
+           python-jinja2
+           python-lark-parser
+           python-numpy
+           python-pycairo
+           python-pyglm
+           python-pygobject
+           python-pyopengl))
+    (native-inputs
+     (list python-pytest))
+    (arguments
+     (list
+      #:imported-modules `((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+      #:modules '((guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils)
+                  (ice-9 match))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'adjust-lark-requirement
+            (lambda _
+              (substitute* "setup.py"
+                (("lark") "lark-parser"))))
+          (add-after 'install 'install-more
+            (lambda _
+              (let* ((datadir (string-append #$output "/share"))
+                     (help (string-append datadir "/help"))
+                     (icons (string-append datadir "/icons/hicolor")))
+                (map (lambda (filename)
+                       (match (string-split filename #\/)
+                         ((_ lang dir ... name)
+                          (install-file filename
+                                        (string-join (cons* help lang "plots" dir)
+                                                     "/")))))
+                     (find-files "help"))
+                (install-file "res/com.github.alexhuntley.Plots.desktop"
+                              (string-append datadir "/applications/"))
+                (install-file "res/com.github.alexhuntley.Plots.svg"
+                              (string-append icons "/scalable/apps/"))
+                (install-file "res/com.github.alexhuntley.Plots-symbolic.svg"
+                              (string-append icons "/symbolic/apps/")))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv"))))
+          (add-after 'wrap 'gi-wrap
+            (lambda _
+              (let ((prog (string-append #$output "/bin/plots")))
+                (wrap-program prog
+                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
+          (add-after 'wrap 'glib-or-gtk-wrap
+            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+    (home-page "https://apps.gnome.org/app/com.github.alexhuntley.Plots/")
+    (synopsis "Simple graph plotting")
+    (description "Plots makes it easy to visualise mathematical formulae.  In
+addition to basic arithmetic operations, it supports trigonometric,
+hyperbolic, exponential, and logarithmic functions, as well as arbitrary sums
+and products.  Plots is designed to integrate well with the GNOME desktop and
+takes advantage of modern hardware using OpenGL.")
+    (license license:gpl3+)))
+
 (define-public gnome-shell-extension-appindicator
   (package
     (name "gnome-shell-extension-appindicator")
@@ -1170,7 +1254,7 @@ extended file attributes.  It also functions as a standalone command.")
 (define-public markets
   (package
     (name "markets")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
       (origin
         (method git-fetch)
@@ -1180,7 +1264,7 @@ extended file attributes.  It also functions as a standalone command.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "0sfdmz7cp8i2bymippp8jyxsidxjn69v9cqm40q77j81kfm84bfv"))))
+          "0ch6dfmdcpw32r23s58riv8agnyw0f1cqd1y6j7zkx5sb3zyn3zy"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f778068821..0cde3caebd 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -71,6 +71,7 @@
 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
+;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -6694,7 +6695,7 @@ a secret password store, an adblocker, and a modern UI.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "41.2")
+    (version "42.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/epiphany/"
@@ -6702,65 +6703,61 @@ a secret password store, an adblocker, and a modern UI.")
                                   "epiphany-" version ".tar.xz"))
               (sha256
                (base32
-                "0k7b22zq3z1kllzqxgwsvwb1lp0j6rjb3k1hvhna3i573wc4mpji"))
-              (patches
-               (search-patches "epiphany-update-libportal-usage.patch"))))
+                "0b8rhns3b58f8dnp83mm1g933aqf88d8wrfyyp7jq3fihvw2rh4j"))))
     (build-system meson-build-system)
     (arguments
-     `(#:glib-or-gtk? #t
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'skip-gtk-update-icon-cache
-           ;; Don't create 'icon-theme.cache'.
-           (lambda _
-             (substitute* "post_install.py"
-               (("gtk-update-icon-cache") "true"))))
-         (add-after 'unpack 'disable-failing-tests
-           (lambda _
-             (substitute* "tests/meson.build"
-               ;; embed_shell fails, because webkitgtk apparently no longer
-               ;; supports overriding the ftp schema web_app_utils fails due
-               ;; to missing network access.
-               (("(embed_shell|web_app_utils)_test,")
-                "find_program('sh'), args: ['-c', 'exit 77'],"))))
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; Tests require a running X server.
-             (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1"))))
-       #:configure-flags
-       ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
-       (list (string-append "-Dc_link_args=-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/epiphany"))))
-    (propagated-inputs
-     (list dconf))
-    (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
-       ("glib:bin" ,glib "bin") ; for glib-mkenums
-       ("intltool" ,intltool)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)
-       ("xorg-server" ,xorg-server-for-tests)))
-    (inputs
-     `(("avahi" ,avahi)
-       ("gcr" ,gcr)
-       ("librsvg" ,librsvg) ; for loading SVG files
-       ("glib-networking" ,glib-networking)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("json-glib" ,json-glib)
-       ("iso-codes" ,iso-codes)
-       ("libarchive" ,libarchive)
-       ("libdazzle" ,libdazzle)
-       ("libhandy" ,libhandy)
-       ("libnotify" ,libnotify)
-       ("libportal" ,libportal)
-       ("libsecret" ,libsecret)
-       ("libxslt" ,libxslt)
-       ("nettle" ,nettle) ; for hogweed
-       ("sqlite" ,sqlite)
-       ("webkitgtk" ,webkitgtk-with-libsoup2)))
+     (list
+      #:glib-or-gtk? #t
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'skip-gtk-update-icon-cache
+            ;; Don't create 'icon-theme.cache'.
+            (lambda _
+              (substitute* "post_install.py"
+                (("gtk-update-icon-cache") "true"))))
+          (add-after 'unpack 'disable-failing-tests
+            (lambda _
+              (substitute* "tests/meson.build"
+                ;; embed_shell fails, because webkitgtk apparently no longer
+                ;; supports overriding the ftp schema web_app_utils fails due
+                ;; to missing network access.
+                (("(embed_shell|web_app_utils)_test,")
+                 "find_program('sh'), args: ['-c', 'exit 77'],"))))
+          (add-before 'check 'pre-check
+            (lambda _
+              ;; Tests require a running X server.
+              (system "Xvfb :1 &")
+              (setenv "DISPLAY" ":1"))))
+      #:configure-flags
+      ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
+      #~(list (string-append "-Dc_link_args=-Wl,-rpath="
+                             #$output "/lib/epiphany"))))
+    (propagated-inputs (list dconf))
+    (native-inputs (list desktop-file-utils ; for update-desktop-database
+                         `(,glib "bin") ; for glib-mkenums
+                         intltool
+                         itstool
+                         pkg-config
+                         libxml2
+                         xorg-server-for-tests))
+    (inputs (list avahi
+                  gcr
+                  librsvg ; for loading SVG files
+                  glib-networking
+                  gnome-desktop
+                  gsettings-desktop-schemas
+                  json-glib
+                  iso-codes
+                  libarchive
+                  libdazzle
+                  libhandy
+                  libnotify
+                  libportal
+                  libsecret
+                  libxslt
+                  nettle ; for hogweed
+                  sqlite
+                  webkitgtk-with-libsoup2))
     (home-page "https://wiki.gnome.org/Apps/Web")
     (synopsis "GNOME web browser")
     (description
@@ -11018,7 +11015,7 @@ functionality.")
 (define-public gthumb
   (package
     (name "gthumb")
-    (version "3.12.0")
+    (version "3.12.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/gthumb/"
@@ -11026,7 +11023,7 @@ functionality.")
                                   "gthumb-" version ".tar.xz"))
               (sha256
                (base32
-                "0grqiq6v26z8avl7mj24xy4i9bl1niwpqhqw6rblprl40c1zrvrx"))))
+                "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -12310,7 +12307,7 @@ profiler via Sysprof, debugging support, and more.")
 (define-public komikku
   (package
     (name "komikku")
-    (version "0.38.0")
+    (version "0.39.0")
     (source
      (origin
        (method git-fetch)
@@ -12320,7 +12317,7 @@ profiler via Sysprof, debugging support, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1khf51r8001j0cvjja5rkqi07v08nqyz97hx8fjyi7p3l5b5vkwc"))))
+         "1g765kbgimfpvma67j1gscj046n2q9a9nr2pczlw65qwlm0418c5"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -12579,45 +12576,43 @@ Document Analysis and Recognition program.")
     (license license:gpl3+)))
 
 (define-public libadwaita
-  (let ((commit "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe")
-        (revision "1"))
-    (package
-      (name "libadwaita")
-      (version (git-version "0.0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.gnome.org/GNOME/libadwaita.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"))))
-      (build-system meson-build-system)
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-before 'check 'pre-check
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Tests require a running X server.
-               (system "Xvfb :1 &")
-               (setenv "DISPLAY" ":1"))))))
-      (native-inputs
-       `(("sassc" ,sassc)
-         ("glib:bin" ,glib "bin")
-         ("gtk-doc" ,gtk-doc/stable)
-         ("pkg-config" ,pkg-config)
-         ("vala" ,vala)
-         ("xvfb" ,xorg-server-for-tests)))
-      (inputs
-       (list gtk gobject-introspection libportal))
-      (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
-      (synopsis "Building blocks for GNOME applications")
-      (description
-       "@code{libadwaita} offers widgets and objects to build GNOME
+  (package
+    (name "libadwaita")
+    (version "1.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/libadwaita/"
+                                  (version-major+minor version) "/"
+                                  "libadwaita-" version ".tar.xz"))
+              (sha256
+               (base32
+                "03h14mrm453bn03f48rmpf85pvg5cnzzab27cs1c43417s09ixdg"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Tests require a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1"))))))
+    (native-inputs
+     `(("sassc" ,sassc)
+       ("glib:bin" ,glib "bin")
+       ("gtk-doc" ,gtk-doc/stable)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("xvfb" ,xorg-server-for-tests)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     (list gtk gobject-introspection libportal))
+    (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
+    (synopsis "Building blocks for GNOME applications")
+    (description
+     "@code{libadwaita} offers widgets and objects to build GNOME
 applications scaling from desktop workstations to mobile phones.  It is the
 successor of @code{libhandy} for GTK4.")
-      (license license:lgpl2.1+))))
+    (license license:lgpl2.1+)))
 
 (define-public gnome-power-manager
   (package
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 60ba76b2ea..296f0b8b07 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -53,6 +53,7 @@
 (define-module (gnu packages golang)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
+  #:use-module (guix memoization)
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -626,7 +627,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
   (package
     (inherit go-1.16)
     (name "go")
-    (version "1.17.8")
+    (version "1.17.9")
     (source
      (origin
        (method git-fetch)
@@ -636,7 +637,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "05qfs17wddxmmi349g9ci12w9fjb5vbss6qpjc4qzgqzznqf0ycy"))))
+         "02l6gxn738kam1niy2nl2wpsbzl4x87h2wik6hd3py19kq4z2flw"))))
     (outputs '("out" "tests")) ; 'tests' contains distribution tests.
     (arguments
      `(#:modules ((ice-9 match)
@@ -840,35 +841,43 @@ in the style of communicating sequential processes (@dfn{CSP}).")
 
 (define-public go go-1.17)
 
-(define-public (make-go-std go)
-  "Return a package which builds the standard library for Go compiler GO."
-  (package
-    (name (string-append (package-name go) "-std"))
-    (version (package-version go))
-    (source #f)
-    (build-system go-build-system)
-    (arguments
-     `(#:import-path "std"
-       #:build-flags `("-pkgdir" "pkg") ; "Install" to build directory.
-       #:allow-go-reference? #t
-       #:substitutable? #f ; Faster to build than download.
-       #:tests? #f ; Already tested in the main Go build.
-       #:go ,go
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'unpack)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (out-cache (string-append out "/var/cache/go/build")))
-               (copy-recursively (getenv "GOCACHE") out-cache)
-               (delete-file (string-append out-cache "/trim.txt"))
-               (delete-file (string-append out-cache "/README")))))
-         (delete 'install-license-files))))
-    (home-page (package-home-page go))
-    (synopsis "Cached standard library build for Go")
-    (description (package-description go))
-    (license (package-license go))))
+(define make-go-std
+  (mlambdaq (go)
+    "Return a package which builds the standard library for Go compiler GO."
+    (package
+      (name (string-append (package-name go) "-std"))
+      (version (package-version go))
+      (source #f)
+      (build-system go-build-system)
+      (arguments
+       `(#:import-path "std"
+         #:build-flags `("-pkgdir" "pkg")      ; "Install" to build directory.
+         #:allow-go-reference? #t
+         #:substitutable? #f            ; Faster to build than download.
+         #:tests? #f                    ; Already tested in the main Go build.
+         #:go ,go
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'unpack)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (out-cache (string-append out "/var/cache/go/build")))
+                 (copy-recursively (getenv "GOCACHE") out-cache)
+                 (delete-file (string-append out-cache "/trim.txt"))
+                 (delete-file (string-append out-cache "/README")))))
+           (delete 'install-license-files))))
+      (home-page (package-home-page go))
+      (synopsis "Cached standard library build for Go")
+      (description (package-description go))
+      (license (package-license go)))))
+
+(export make-go-std)
+
+;; Make those public so they have a corresponding Cuirass job.
+(define-public go-std-1.14 (make-go-std go-1.14))
+(define-public go-std-1.16 (make-go-std go-1.16))
+(define-public go-std-1.17 (make-go-std go-1.17))
 
 (define-public go-0xacab-org-leap-shapeshifter
   (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474")
@@ -9775,3 +9784,62 @@ Features:
      "@code{go-github-com-go-chi-chi-v5} is an HTTP router that lets the user
 decompose request handling into many smaller layers.")
     (license license:expat)))
+
+(define-public go-sigs-k8s-io-yaml
+  (package
+    (name "go-sigs-k8s-io-yaml")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/kubernetes-sigs/yaml")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qxs0ppqwqrfqs4aywyn1h28xh1qlj5ds4drmygaz1plrxj02dqn"))))
+    (build-system go-build-system)
+    (arguments '(#:import-path "sigs.k8s.io/yaml"))
+    (propagated-inputs (list go-gopkg-in-yaml-v2 go-github-com-davecgh-go-spew))
+    (home-page "https://sigs.k8s.io/yaml")
+    (synopsis "YAML marshaling and unmarshaling support for Go")
+    (description
+     "This package provides a Go library that first converts YAML to JSON
+using @code{go-yaml} and then uses @code{json.Marshal} and
+@code{json.Unmarshal} to convert to or from the struct. This means that
+it effectively reuses the JSON struct tags as well as the custom JSON
+methods @code{MarshalJSON} and @code{UnmarshalJSON} unlike
+@code{go-yaml}.
+
+kubernetes-sigs/yaml is a permanent fork of
+@url{https://github.com/ghodss/yaml,ghodss/yaml}.")
+    (license (list license:expat license:bsd-3))))
+
+(define-public go-github-com-google-go-jsonnet
+  (package
+    (name "go-github-com-google-go-jsonnet")
+    (version "0.18.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/google/go-jsonnet")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1dghqygag123zkgh2vrnq82cdag5z0p03v3489pwhs06r5g27wm3"))))
+    (build-system go-build-system)
+    (arguments
+     '(#:import-path "github.com/google/go-jsonnet/cmd/jsonnet"
+       #:unpack-path "github.com/google/go-jsonnet"))
+    (propagated-inputs (list go-sigs-k8s-io-yaml go-gopkg-in-yaml-v2
+                             go-github-com-sergi-go-diff
+                             go-github-com-fatih-color))
+    (home-page "https://github.com/google/go-jsonnet")
+    (synopsis "Go implementation of Jsonnet")
+    (description
+     "This package provides an implementation of the @url{http://jsonnet.org/,
+Jsonnet} data templating language in Go.  It is a feature-complete,
+production-ready implementation, compatible with the original Jsonnet C++
+implementation.")
+    (license license:asl2.0)))
diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm
index 47a7441e70..a18b93c179 100644
--- a/gnu/packages/gps.scm
+++ b/gnu/packages/gps.scm
@@ -170,7 +170,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
 (define-public gpxsee
   (package
     (name "gpxsee")
-    (version "10.3")
+    (version "11.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -179,7 +179,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1i1diha617il0s2j9108xlw3vn10m6lc59r8r2fn48wmfzcj79dc"))))
+                "1klpjiqsvpvhlg5hsfjaszsyqr817hig9r7y7w4cp0kyn8z5fzfj"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
@@ -194,7 +194,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
                      (string-append "PREFIX="
                                     (assoc-ref outputs "out"))))))))
     (inputs
-     (list qtbase-5 qtlocation))
+     (list qtbase-5 qtlocation qtsvg))
     (native-inputs
      (list qttools))
     (home-page "https://www.gpxsee.org")
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 0b8e76f676..3dc6eac33a 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
-;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2020 Alexander Krotov <krotov@iitp.ru>
@@ -143,7 +143,7 @@ more.")
   (package
     (inherit igraph)
     (name "python-igraph")
-    (version "0.9.10")
+    (version "0.9.11")
     (source (origin
               (method git-fetch)
               ;; The PyPI archive lacks tests.
@@ -153,7 +153,7 @@ more.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06qvwmiw2klk3bg8g5af0ppjwrm9kzy4595w5d06qh2v3gq0svbk"))))
+                "1xlr0cnf3a1vs9n2psvgrmjhld4n1xr79kkjqzby4pxxyzk1bydn"))))
     (build-system python-build-system)
     (arguments
      (list
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 64286bf68d..0b66d9442f 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1990,7 +1990,7 @@ Some feature highlights:
 (define-public openxr
   (package
     (name "openxr")
-    (version "1.0.22")
+    (version "1.0.23")
     (source
      (origin
        (method git-fetch)
@@ -2004,7 +2004,7 @@ Some feature highlights:
            ;; Delete bundled jsoncpp.
            (delete-file-recursively "src/external/jsoncpp")))
        (sha256
-        (base32 "1l6wygazgvd8lbhqk60iim2l2h35gxpsn0y9a9f8q72sqpfianky"))))
+        (base32 "11w5a2ny30r8jghd5jwdxi5b2c84m21fmkp0lhpicbrwr98xgpj3"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 757c4f876b..bf88930b9c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2016 Patrick Hetu <patrick.hetu@auf.org>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2018, 2020 Arun Isaac <arunisaac@systemreboot.net>
@@ -1562,14 +1562,14 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
 (define-public cairomm
   (package
     (name "cairomm")
-    (version "1.16.0")
+    (version "1.16.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.cairographics.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ya4y7qa000cjawqwswbqv26y5icfkmhs5iiiil4dxgrqn91923y"))))
+                "1im2yjzvjfx8s7cal9kwq23z936kppfmyag2zsnbim4dx7c60q3g"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -1587,18 +1587,17 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
                (mkdir-p (string-append doc "/share"))
                (rename-file
                 (string-append out "/share/doc")
-                (string-append doc "/share/doc"))
-               #t))))))
+                (string-append doc "/share/doc"))))))))
     (native-inputs
-     `(("boost" ,boost)
-       ("dot" ,graphviz)
-       ("doxygen" ,doxygen)
-       ("mm-common" ,mm-common)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("xsltproc" ,libxslt)))
+     (list boost
+           doxygen
+           graphviz
+           mm-common
+           perl
+           pkg-config
+           libxslt))
     (inputs
-     `(("fontconfig" ,fontconfig)))
+     (list fontconfig))
     (propagated-inputs
      (list libsigc++ cairo))
     (home-page "https://cairographics.org/")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c6f73a38e9..2ed6617fd2 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -41,6 +41,7 @@
 ;;; Copyright © 2021, 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -83,6 +84,7 @@
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages haskell-xyz)         ;pandoc
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
@@ -5019,3 +5021,85 @@ consists of a set of Guile modules providing some of Clojure's functionality
 in two different guises.")
       ;; Dual license: LGPLv2.1+ or EPLv1.0+ at the user's option.
       (license (list license:lgpl2.1+ license:epl1.0)))))
+
+(define-public guile-tap
+  (package
+    (name "guile-tap")
+    (version "0.4.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ft/guile-tap")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "04ip5cbvsjjcicsri813f4711yh7db6fvc2px4788rl8p1iqvi6x"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'configure
+                 (lambda _
+                   (substitute* "Makefile"
+                     (("PREFIX = /usr/local") (string-append "PREFIX="
+                                                             #$output)))))
+               (replace 'build
+                 (lambda _
+                   (invoke "make")
+                   (invoke "make" "-C" "doc" "man")
+                   (invoke "make" "install")))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "make" "test")))))))
+    (native-inputs (list guile-3.0 pandoc))
+    (home-page "https://github.com/ft/guile-tap")
+    (synopsis "Guile test framework that emits TAP output")
+    (description
+     "guile-tap is a library for GNU Guile that implements a framework for
+specifying test cases that emit output that adheres to the Test Anything
+Protocol (TAP).  It comes with an experimental harness (tap-harness).")
+    (license license:bsd-2)))
+
+(define-public guile-termios
+  (package
+    (name "guile-termios")
+    (version "0.6.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ft/guile-termios")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "020p3c84z09wyyb6gfzj2x6q2rfmvas7c92fcm2hhg8z1q60sqkg"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'configure
+                 (lambda _
+                   (substitute* "Makefile"
+                     (("CC = cc") (string-append "CC="
+                                                 #$(cc-for-target)))
+                     (("PREFIX = /usr/local") (string-append "PREFIX="
+                                                             #$output)))))
+               (replace 'build
+                 (lambda _
+                   (invoke "make")
+                   (invoke "make" "-C" "doc" "man")
+                   (invoke "make" "install")))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "make" "test")))))))
+    (native-inputs (list guile-3.0 guile-tap pandoc perl perl-io-tty))
+    (home-page "https://github.com/ft/guile-termios")
+    (synopsis "POSIX termios interface for GNU Guile")
+    (description
+     "To query and change settings of serial devices on POSIX systems, the
+termios API is used.  GNU Guile doesn't have an interface for that built in.
+This module implements this interface by use of Guile's dynamic FFI.")
+    (license license:bsd-2)))
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index d4e43feb06..1471c28fa2 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -377,8 +377,10 @@ human-readable format and checks if it conforms to the standards.")
       (license license:expat))))
 
 (define-public h-client
-  (let ((commit "63ff4a3bf9c3c3b6297091e08192d34991465431")
-        (revision "0"))
+  ;; The Python 3 port hasn't yet been integrated into the main branch
+  ;; (currently lives in the 'python3-port' branch).
+  (let ((commit "e6c78b16e034ccf78ae9cb4c29268c2f57a30bfc")
+        (revision "1"))
     (package
       (name "h-client")
       (version (git-version "0.0a0" revision commit))
@@ -386,14 +388,11 @@ human-readable format and checks if it conforms to the standards.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               ;; Use this Python 3 fork until the changes have been reviewed
-               ;; and integrated into the official Savannah repository (in
-               ;; progress).
-               (url "https://git.sr.ht/~apteryx/h-client")
+               (url "https://git.savannah.gnu.org/git/h-client.git")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0c6s96a1zmsnn7bnfhm790c1fr8sid0zdyh9mwig4y6ffn83czh5"))))
+          (base32 "0hm86d51kj5r3yxq4c23aa57cs8igz3wrkbjn20z4frx75rpf46m"))))
       (build-system python-build-system)
       (inputs
        (list gdk-pixbuf
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index f4bf1724b4..0c25b41dad 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -435,7 +435,16 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
        ((#:configure-flags flags)
         ;; Otherwise, the build would fail with: "error: invalid conversion
         ;; from ‘const char*’ to ‘char*’ [-fpermissive]".
-        `(cons "-DCMAKE_CXX_FLAGS=-fpermissive" ,flags))))))
+        `(cons "-DCMAKE_CXX_FLAGS=-fpermissive" ,flags))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (add-after 'unpack 'remove-kernel-version
+              ;; Avoid embedding the kernel version for reproducible builds
+              (lambda _
+                (substitute*
+                    "ThirdParty/hdf5/vtkhdf5/config/cmake/libhdf5.settings.cmake.in"
+                  (("Host system: \\@CMAKE_HOST_SYSTEM\\@")
+                   "Host system: @CMAKE_SYSTEM_NAME@"))))))))))
 
 (define-public opencv
   (package
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 8ecb4a1e12..5a13ce56b3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2017, 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
@@ -987,31 +987,31 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
 (define-public imlib2
   (package
     (name "imlib2")
-    (version "1.7.1")
+    (version "1.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://sourceforge/enlightenment/imlib2-src/" version
-                    "/imlib2-" version ".tar.bz2"))
+                    "/imlib2-" version ".tar.xz"))
               (sha256
                (base32
-                "01y45cdml2dr9cqgybrgxr86sd77d1qfa1gzclzy1j6bkminlfh3"))))
+                "0l662h74i3mzl5ligj1352rf8bf48drasj97wygr2037gk5fijas"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list "--disable-static")))
     (native-inputs
-     `(("pkgconfig" ,pkg-config)))
+     (list pkg-config))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("freetype" ,freetype)
-       ("giflib" ,giflib)
-       ("libid3tag" ,libid3tag)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libwebp" ,libwebp)))
+     (list bzip2
+           freetype
+           giflib
+           libid3tag
+           libjpeg-turbo
+           libpng
+           libtiff
+           libx11
+           libxext
+           libwebp))
     (home-page "https://sourceforge.net/projects/enlightenment/")
     (synopsis
      "Loading, saving, rendering and manipulating image files")
@@ -1027,6 +1027,19 @@ This is a complete rewrite over the Imlib 1.x series.  The architecture is
 more modular, simple, and flexible.")
     (license license:imlib2)))
 
+(define-public imlib2-1.7
+  (package
+    (inherit imlib2)
+    (version "1.7.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/enlightenment/imlib2-src/" version
+                    "/imlib2-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "01y45cdml2dr9cqgybrgxr86sd77d1qfa1gzclzy1j6bkminlfh3"))))))
+
 (define-public giblib
   (package
     (name "giblib")
@@ -1049,7 +1062,9 @@ more modular, simple, and flexible.")
                 "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
     (build-system gnu-build-system)
     (inputs
-     (list libx11 imlib2))
+     (list libx11
+           ;; Needs an old imlib2 with the 'imlib2-config' program.
+           imlib2-1.7))
     (home-page
      ;; This vanished page is universally accepted as giblib's home despite not
      ;; mentioning the package once.
diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm
index 2db21aef1b..4e23e9bed4 100644
--- a/gnu/packages/instrumentation.scm
+++ b/gnu/packages/instrumentation.scm
@@ -215,7 +215,9 @@ with the script @command{flamegraph.pl} and many stackcollapse scripts.")
                 "1p7d94r275yvby6zqfxaswdl1q46zxbc8x5rkhnjxrp1d41byrsn"))))
     (build-system gnu-build-system)
     (inputs
-     (list liburcu numactl))
+     (list numactl))
+    (propagated-inputs
+     (list liburcu))          ;headers of liburcu are used by headers of lttng
     (native-inputs
      (list python-3 pkg-config))
     (home-page "https://lttng.org/")
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 37d58f5d6b..8c484efb2d 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022 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>
@@ -151,7 +151,7 @@ irssi, but graphical.")
 (define-public irssi
   (package
     (name "irssi")
-    (version "1.2.3")
+    (version "1.4.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/irssi/irssi/"
@@ -159,7 +159,7 @@ irssi, but graphical.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "17vninwcdfxw39xl2q55qircckckjk2xlvkvlwgj5lhlxppvyix6"))))
+                "00bmwkpzhqqnsajakk7dviap1i8s89375kwpdyxg65ms3ds94xka"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -172,8 +172,7 @@ irssi, but graphical.")
                        (string-append "--prefix=" out)
                        (string-append "--enable-true-color")
                        (string-append "--with-proxy")
-                       (string-append "--with-socks")
-                       (string-append "--with-bot")))))
+                       (string-append "--with-socks")))))
          (add-before 'check 'set-home
            (lambda _
              (setenv "HOME" (getcwd)))))))
@@ -182,10 +181,14 @@ irssi, but graphical.")
     (native-inputs
      (list pkg-config))
     (home-page "https://irssi.org/")
-    (synopsis "Terminal-based IRC client")
+    (synopsis "Extensible terminal-based IRC client")
     (description
-     "Irssi is a terminal based IRC client for UNIX systems.  It also supports
-SILC and ICB protocols via plugins.")
+     "Irssi is a text terminal-based @acronym{IRC, Internet relay chat} client.
+It is completely themable and extensible through Perl scripts, of which many
+have already been written by the community.
+
+Plug-ins add support for other protocols like @acronym{SILC, Secure Internet Live
+Conferencing} and @acronym{ICB, Internet Citizen's Band}.")
     (license license:gpl2+)))
 
 (define-public weechat
@@ -261,7 +264,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
 (define-public srain
   (package
     (name "srain")
-    (version "1.3.2")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -270,7 +273,7 @@ using a mouse.  It is customizable and extensible with plugins and scripts.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "16nsxicixp7194bkiiyj7zrg05lhcp0xblqsbv6dq1lxd5wd3i96"))))
+        (base32 "113nvai3nr2c8mrr5q56fb7smg5awgb2f243sib4k1zj437v9q51"))))
     (build-system meson-build-system)
     (arguments
      `(#:tests? #f ;there are no tests
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 336e84e3e5..7b0507d93c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2017, 2019, 2021 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2017-2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2017-2022 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
 ;;; Copyright © 2017, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -18,6 +18,7 @@
 ;;; Copyright © 2021 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4371,6 +4372,14 @@ from source tags and class annotations.")))
              (copy-recursively "src/main/resources"
                                "build/classes/")
              #t))
+         (add-before 'build 'fix-jdom
+           (lambda _
+             ;; The newer version of jdom now sets multiple features by default
+             ;; that are not supported.
+             ;; Skip these features
+             (substitute* "src/main/java/org/codehaus/plexus/metadata/merge/MXParser.java"
+               (("throw new XmlPullParserException\\(\"unsupporte feature \"\\+name\\);")
+                "// skip"))))
          (add-before 'build 'reinstate-cli
            ;; The CLI was removed in 2.1.0, but we still need it to build some
            ;; maven dependencies, and some parts of maven itself. We can't use
@@ -4537,6 +4546,14 @@ from source tags and class annotations.")))
              (copy-recursively "src/main/resources"
                                "build/classes/")
              #t))
+         (add-before 'build 'fix-jdom
+           (lambda _
+             ;; The newer version of jdom now sets multiple features by default
+             ;; that are not supported.
+             ;; Skip these features
+             (substitute* "src/main/java/org/codehaus/plexus/metadata/merge/MXParser.java"
+               (("throw new XmlPullParserException\\(\"unsupporte feature \"\\+name\\);")
+                "// skip"))))
          (add-before 'check 'fix-test-location
            (lambda _
              (substitute* '("src/test/java/org/codehaus/plexus/metadata/DefaultComponentDescriptorWriterTest.java"
@@ -5452,6 +5469,18 @@ including java-asm.")
     (inputs
      (list java-asm-8 java-asm-analysis-8 java-asm-tree-8))))
 
+(define-public java-asm-commons-8
+  (package
+    (inherit java-asm-8)
+    (name "java-asm-commons")
+    (arguments
+     (list #:jar-name "asm-commons8.jar"
+           #:source-dir "asm-commons/src/main/java"
+           #:test-dir "asm-commons/src/test"
+           ;; tests depend on junit5
+           #:tests? #f))
+    (inputs (list java-asm-8 java-asm-analysis-8 java-asm-tree-8))))
+
 (define-public java-cglib
   (package
     (name "java-cglib")
@@ -6190,14 +6219,16 @@ included:
 (define-public java-commons-lang3
   (package
     (name "java-commons-lang3")
-    (version "3.9")
+    (version "3.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://apache/commons/lang/source/"
                            "commons-lang3-" version "-src.tar.gz"))
        (sha256
-        (base32 "0s4ffbvsyl16c90l45ximsg4dwd8hmz7wsza3p308fw43h6mwhb6"))))
+        (base32 "09dcv1pkdx3hpf06py8p9511f1wkin6jpacdll0c8vxpbi3yfwzv"))
+       (patches
+        (search-patches "java-commons-lang-fix-dependency.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "commons-lang3.jar"
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 028b5c4391..666a0aa421 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -313,6 +313,63 @@ be able to view it naturally and easily.")))
     (description (package-description js-mathjax))
     (license license:asl2.0)))
 
+(define-public js-mathjax-for-r-mathjaxr
+  (package
+    (inherit js-mathjax-3)
+    (name "js-mathjax")
+    (version "3.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/mathjax/MathJax-src")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0kqcb6pl0zfs4hf8zqb4l50kkfq7isv35vpy05m0lg0yr9w0w4ai"))
+       (patches (search-patches "mathjax-disable-webpack.patch"
+                                "mathjax-3.1.2-no-a11y.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments js-mathjax-3)
+       ((#:phases phases '%standard-phases)
+        `(modify-phases ,phases
+           (replace 'prepare-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; All a11y components depend on speech-rule-engine, which cannot be
+               ;; built from source. Since this only affects accessibility, remove them.
+               (delete-file-recursively "ts/a11y")
+               (delete-file-recursively "components/src/a11y")
+               (delete-file-recursively "components/src/sre")
+               (delete-file-recursively "components/src/node-main")
+
+               ;; Copy sources of dependencies, so we can create symlinks.
+               (mkdir-p "node_modules")
+               (with-directory-excursion "node_modules"
+                 (for-each
+                  (lambda (p)
+                    (copy-recursively (assoc-ref inputs (string-append "node-" p)) p))
+                  '("mj-context-menu")))
+
+               ;; Make sure esbuild can find imports. This way we don’t have to rewrite files.
+               (symlink "ts" "js")
+               (symlink "ts" "node_modules/mj-context-menu/js")))))))
+    (native-inputs
+     `(("esbuild" ,esbuild)
+       ("node" ,node-lts)
+       ("node-mj-context-menu"
+        ,(let ((name "context-menu")
+               (version "0.6.1"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                    (url "https://github.com/zorkow/context-menu.git")
+                    (commit (string-append "v" version))))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "1q063l6477z285j6h5wvccp6iswvlp0jmb96sgk32sh0lf7nhknh")))))))))
+
 (define-public js-commander
   (package
     (name "js-commander")
@@ -771,22 +828,31 @@ Javascript and a small built-in standard library with C library wrappers.")
                 "19szwxzvl2g65fw95ggvb8h0ma5bd9vvnnccn59hwnc4dida1x4n"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; No tests.
-       #:make-flags (list "-f" "Makefile.sharedlibrary"
-                          (string-append "INSTALL_PREFIX=" %output))
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         ;; At least another major GNU/Linux distribution carries their own
-         ;; .pc file with this package.
-         (add-after 'install 'install-pkg-config
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (pkg-config-dir (string-append out "/lib/pkgconfig")))
-               (mkdir-p pkg-config-dir)
-               (with-output-to-file (string-append pkg-config-dir "/duktape.pc")
-                 (lambda _
-                   (format #t "prefix=~@*~a~@
+     (list #:tests? #f                  ; No tests.
+           #:make-flags
+           #~(list "-f" "Makefile.sharedlibrary"
+                   (string-append "INSTALL_PREFIX="
+                                  ;; XXX Replace with #$output on core-updates.
+                                  #$(if (%current-target-system)
+                                        #~#$output
+                                        #~%output))
+                   ;; XXX Unconditionally set to CC-FOR-TARGET on core-updates.
+                   #$@(if (%current-target-system)
+                          #~((string-append "CC=" #$(cc-for-target)))
+                          #~()))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               ;; At least another major GNU/Linux distribution carries their own
+               ;; .pc file with this package.
+               (add-after 'install 'install-pkg-config
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (pkg-config-dir (string-append out "/lib/pkgconfig")))
+                     (mkdir-p pkg-config-dir)
+                     (with-output-to-file (string-append pkg-config-dir "/duktape.pc")
+                       (lambda _
+                         (format #t "prefix=~@*~a~@
                                libdir=${prefix}/lib~@
                                includedir=${prefix}/include~@
 
@@ -795,7 +861,7 @@ Javascript and a small built-in standard library with C library wrappers.")
                                Version: ~a~@
                                Libs: -L${libdir} -lduktape~@
                                Cflags: -I${includedir}~%"
-                           out ,version)))))))))
+                                 out #$version)))))))))
     (home-page "https://duktape.org/")
     (synopsis "Small embeddable Javascript engine")
     (description "Duktape is an embeddable Javascript engine, with a focus on
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index e914499541..9f957692cb 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -87,7 +87,7 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.70.0")
+    (version "5.91.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -96,7 +96,7 @@
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "10c5xs5shk0dcshpdxg564ay5y8hgmvfvmlhmhjf0dy79kcah3c3"))))
+                "0k65rvxh926ya6qahzk2ns7g1fya1429648mlx7iipxa61g8h5wp"))))
     (build-system cmake-build-system)
     (native-inputs
      ;; Add test dependency, except on armhf where building it is too
@@ -104,39 +104,55 @@
      (if (and (not (%current-target-system))
               (string=? (%current-system) "armhf-linux"))
          '()
-         `(("qtbase" ,qtbase-5))))                ;for tests (needs qmake)
+         (list qtbase-5)))               ;for tests (needs qmake)
     (arguments
-     `(#:tests? ,(and (not (%current-target-system))
-                      (not (null? (package-native-inputs this-package))))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-lib-path
-           (lambda _
-             ;; Always install into /lib and not into /lib64.
-             (substitute* "kde-modules/KDEInstallDirs.cmake"
-               (("\"lib64\"") "\"lib\"")
-               ;; TODO: Base the following on values taken from Qt
-               ;; Install plugins into lib/qt5/plugins
-               ;; TODO: Check if this is okay for Android, too
-               ;; (see comment in KDEInstallDirs.cmake)
-               (("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"")
-                "_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt5/plugins\"")
-               ;; Install imports into lib/qt5/imports
-               (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"")
-                "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"")
-               ;; Install qml-files into lib/qt5/qml
-               (("_define_relative\\(QMLDIR LIBDIR \"qml\"")
-                "_define_relative(QMLDIR LIBDIR \"qt5/qml\""))
-             (substitute* "modules/ECMGeneratePriFile.cmake"
-               ;; Install pri-files into lib/qt5/mkspecs
-               (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules")
-                "set(ECM_MKSPECS_INSTALL_DIR lib/qt5/mkspecs/modules"))
-             #t))
-         ;; install and check phase are swapped to prevent install from failing
-         ;; after testsuire has run
-         (add-after 'install 'check-post-install
-           (assoc-ref %standard-phases 'check))
-         (delete 'check))))
+     (list
+      #:tests? (and (not (%current-target-system))
+                    (not (null? (package-native-inputs this-package))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-lib-path
+            (lambda _
+              ;; Always install into /lib and not into /lib64.
+              (substitute* "kde-modules/KDEInstallDirsCommon.cmake"
+                (("\"lib64\"") "\"lib\""))
+
+              ;; Determine the install path by the major version of Qt.
+              ;; TODO: Base the following on values taken from Qt
+              ;; Install plugins into lib/qt5/plugins
+              ;; TODO: Check if this is okay for Android, too
+              ;; (see comment in KDEInstallDirs.cmake)
+              (substitute* '("kde-modules/KDEInstallDirs5.cmake"
+                             "kde-modules/KDEInstallDirs6.cmake")
+                ;; Fix the installation path of Qt plugins.
+                (("_define_relative\\(QTPLUGINDIR \"\\$\\{_pluginsDirParent}\" \"plugins\"")
+                 "_define_relative(QTPLUGINDIR \"${_pluginsDirParent}\" \"qt${QT_MAJOR_VERSION}/plugins\"")
+                ;; Fix the installation path of QML files.
+                (("_define_relative\\(QMLDIR LIBDIR \"qml\"")
+                 "_define_relative(QMLDIR LIBDIR \"qt${QT_MAJOR_VERSION}/qml\""))
+
+              ;; Qt Quick Control 1 is no longer available in Qt 6.
+              (substitute* '("kde-modules/KDEInstallDirs5.cmake")
+                (("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"")
+                 "_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\""))
+
+              (substitute* "modules/ECMGeneratePriFile.cmake"
+                ;; Install pri-files into lib/qt${QT_MAJOR_VERSION}/mkspecs
+                (("set\\(ECM_MKSPECS_INSTALL_DIR mkspecs/modules")
+                 "set(ECM_MKSPECS_INSTALL_DIR lib/qt${QT_MAJOR_VERSION}/mkspecs/modules"))))
+          ;; Work around for the failed test KDEFetchTranslations.
+          ;; It complains that the cmake project name is not
+          ;; "frameworks/extra-cmake-modules".
+          ;; TODO: Fix it upstream.
+          (add-after 'unpack 'fix-test
+            (lambda _
+              (substitute* "tests/KDEFetchTranslations/CMakeLists.txt"
+                (("frameworks/extra-cmake-modules") "extra-cmake-modules"))))
+          ;; install and check phase are swapped to prevent install from failing
+          ;; after testsuire has run
+          (add-after 'install 'check-post-install
+            (assoc-ref %standard-phases 'check))
+          (delete 'check))))
     ;; optional dependencies - to save space, we do not add these inputs.
     ;; Sphinx > 1.2:
     ;;   Required to build Extra CMake Modules documentation in Qt Help format.
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 53b341d7c6..e17e1ef42d 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -160,6 +160,7 @@
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages groff)
   #:use-module (gnu packages selinux)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
   #:use-module (guix platform)
   #:use-module (guix build-system cmake)
@@ -351,17 +352,17 @@ 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.17-version "5.17.12")
+(define-public linux-libre-5.17-version "5.17.15")
 (define-public linux-libre-5.17-gnu-revision "gnu")
 (define deblob-scripts-5.17
   (linux-libre-deblob-scripts
    linux-libre-5.17-version
    linux-libre-5.17-gnu-revision
    (base32 "08ip5g827f30qzb3j2l19zkbdqv00sij46nbrjg75h5kkasdbfgr")
-   (base32 "1zd4ds6ha4a2acqnalp234r2m9rz9p30qmy1aqri78i06aw7flwn")))
+   (base32 "1654fibbwnbcgnikn1qqa5igd2j90kslbb3pshph5wpj052cvgjy")))
 (define-public linux-libre-5.17-pristine-source
   (let ((version linux-libre-5.17-version)
-        (hash (base32 "0yr8xfds5l1s3lk8qk67mgy0l4yh2jfvjc7xwrfws3ci020ss9a2")))
+        (hash (base32 "0a5n1lb43nhnhwjwclkk3dqp2nxsx5ny7zfl8idvzshf94m9472a")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.17)))
@@ -369,37 +370,37 @@ 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.15-version "5.15.44")
+(define-public linux-libre-5.15-version "5.15.47")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
    linux-libre-5.15-version
    linux-libre-5.15-gnu-revision
    (base32 "1n57mz5agvf1d0ggbg080d7hvx8p9y0iqxkq4ypg10a7n96zy7y5")
-   (base32 "0gs92qbpvirwd02rpwwnja7771z2azbiy9ppy9ynpr14lxmzxnnh")))
+   (base32 "17xsn91h0c2d8igpzgmjm1g58nfpihlhgg9wm8zbfyd5g4airs8f")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1p1jz0lxmzyj0c51afqghylg9kblk8zmlw92zq6bsn37wlwbrylv")))
+        (hash (base32 "1700js21yimx8rz4bsglszry564l2ycmmcr36rdqspzbmlx5w8wb")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.119")
+(define-public linux-libre-5.10-version "5.10.122")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
    linux-libre-5.10-version
    linux-libre-5.10-gnu-revision
    (base32 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf")
-   (base32 "1xyhz0dyrkg2avz382ly3dzpa5v89x49gfzx80c1drpwsk7jg6gp")))
+   (base32 "1ryfc8fppigssrzz5lfbqgli49cgs3lmf0yh46lpi2k0j2x30qcc")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "04952zaz2kfwf7agy4laz50f9sl3mrnpqlbwbj84q1xpl9akwd9y")))
+        (hash (base32 "0h0gfi3p1dd4p8xxklrl8sc3rv4xd08q7nv0i4m166w8188v62wj")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.196")
+(define-public linux-libre-5.4-version "5.4.198")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -409,12 +410,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1x5irgki792f21hm5146xary0260cl9r475kvw8vm9w32vyx18ig")))
+        (hash (base32 "0wvscr5wia2xdiqfxxdwl8kxf1s085qdj5h4423mraj7dh6l0ihh")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.245")
+(define-public linux-libre-4.19-version "4.19.247")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -424,12 +425,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1s58qci6xhmss12glzkqk41kp60pqmzh4d84kyz4m4nf4xhdvzcr")))
+        (hash (base32 "136gmsmvgb2nid4by2ld003w06lsr7hgn9ajx0wfziag7pfnjsv2")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.281")
+(define-public linux-libre-4.14-version "4.14.283")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
@@ -439,12 +440,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "0pivb1m2cwqnlm8bhd4ccnlq9pwp2r5lmn77gp91k6vbjv3gkqis")))
+        (hash (base32 "191gybhnck4mh9yjzwgv1crrbxjc90p12bcif721rbs6xzszmxzh")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.316")
+(define-public linux-libre-4.9-version "4.9.318")
 (define-public linux-libre-4.9-gnu-revision "gnu1")
 (define deblob-scripts-4.9
   (linux-libre-deblob-scripts
@@ -454,7 +455,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "05yd7djm6dcxv3vaylhmj3p0yml421azv8qabmhv4ric1f99idjp")))
+        (hash (base32 "09czsc0ynyw068yczs9qx4cliqmrh5hvz93c77lhh014wn02pba4")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
@@ -3694,7 +3695,7 @@ for systems using the Linux kernel.  This includes commands such as
 (define-public inotify-tools
   (package
     (name "inotify-tools")
-    (version "3.20.11.0")
+    (version "3.22.6.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3703,7 +3704,7 @@ for systems using the Linux kernel.  This includes commands such as
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1m8avqccrhm38krlhp88a7v949f3hrzx060bbrr5dp5qw2nmw9j2"))))
+                "1j9j8k5zjp8m4cl53zjncnll9z4dnvzr4ygmfcjk0ci81i59b18i"))))
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake libtool))
@@ -5575,7 +5576,7 @@ and copy/paste text in the console and in xterm.")
 (define-public btrfs-progs
   (package
     (name "btrfs-progs")
-    (version "5.15.1")
+    (version "5.18.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -5583,7 +5584,7 @@ and copy/paste text in the console and in xterm.")
                                   "btrfs-progs-v" version ".tar.xz"))
               (sha256
                (base32
-                "085rg9p7kifhh8kjyyhs38y86srwk820s6v07min5gb177rzhc32"))))
+                "0mbj3j2fpjds9i9gm8kk8a20yjacc562ibd1v9a96bpmrxfag63f"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "static"))      ; static versions of the binaries in "out"
@@ -5628,21 +5629,19 @@ and copy/paste text in the console and in xterm.")
               ("zstd" ,zstd "lib")
               ("zstd:static" ,zstd "static")))
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("asciidoc" ,asciidoc)
-                     ("python" ,python)
-                     ("xmlto" ,xmlto)
                      ;; For building documentation.
-                     ("libxml2" ,libxml2)
-                     ("docbook-xsl" ,docbook-xsl)
+                     ("python-sphinx" ,python-sphinx)
                      ;; For tests.
                      ("acl" ,acl)
-                     ("which" ,which)
                      ("dmsetup" ,lvm2)
-                     ;; The tests need 'grep' with perl regexp support.
-                     ("grep" ,grep)))
+                     ("grep" ,grep)     ; need Perl regexp support
+                     ("libaio" ,libaio)
+                     ("liburing" ,liburing)
+                     ("util-linux" ,util-linux) ; for fallocate
+                     ("which" ,which)))
     (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page")
     (synopsis "Create and manage btrfs copy-on-write file systems")
-    (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux
+    (description "Btrfs is a @acronym{CoW, copy-on-write} file system for Linux
 aimed at implementing advanced features while focusing on fault tolerance,
 repair and easy administration.")
     ;; GPL2+: crc32.c, radix-tree.c, raid6.c, rbtree.c.
@@ -6343,7 +6342,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
   (package
     (name "rng-tools")
     (home-page "https://github.com/nhorman/rng-tools")
-    (version "6.14")
+    (version "6.15")
     (source (origin
               (method git-fetch)
               (uri (git-reference (url home-page)
@@ -6351,7 +6350,7 @@ The collection contains a set of bandwidth and latency benchmark such as:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1hrbm4y7fbzkg5j2f7vpj19ri2ff2lp77al17fhi4mv0bvdfjd9m"))))
+                "0i00if7xknpm0dhkrm60rxzyyvq0vdibq7dvsd2ncm9pg098qvwj"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Disable support for various hardware entropy sources as they need
@@ -6359,12 +6358,19 @@ The collection contains a set of bandwidth and latency benchmark such as:
        ;; increase closure size.
        #:configure-flags '("--without-nistbeacon"
                            "--without-pkcs11"
-                           "--without-rtlsdr")))
+                           "--without-rtlsdr")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             (substitute* "tests/Makefile"
+               ;; This test requires a hwrng, rdrand, or tpm device.
+               ;; Worse, it appears to fail if that isn't sufficiently random.
+               (("\\brngtestjitter\\.sh\\b") " ")))))))
     (native-inputs
      (list autoconf automake pkg-config))
     (inputs
-     `(("libsysfs" ,sysfsutils)
-       ("openssl" ,openssl)))
+     (list sysfsutils openssl))
     (synopsis "Random number generator daemon")
     (description
      "Monitor a hardware random number generator, and supply entropy
@@ -7247,14 +7253,14 @@ re-use code and to avoid re-inventing the wheel.")
 (define-public libnftnl
   (package
     (name "libnftnl")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://netfilter.org/libnftnl/"
                            "libnftnl-" version ".tar.bz2"))
        (sha256
-        (base32 "0z4khm2mnys9mcl8ckwf19cw20jgrv8650nfncy3xcgs2k2aa23m"))))
+        (base32 "02kdxp4l1ds5lpkw6rxv6f7icc70am6ik3p9z5l8v48mkm7h1z4y"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
@@ -7289,7 +7295,7 @@ used by nftables.")
 (define-public nftables
   (package
     (name "nftables")
-    (version "1.0.2")
+    (version "1.0.4")
     (source
      (origin
        (method url-fetch)
@@ -7298,9 +7304,7 @@ used by nftables.")
                   (string-append "https://www.nftables.org/projects/nftables"
                                  "/files/nftables-" version ".tar.bz2")))
        (sha256
-        (base32 "00jcjn1pl7qyqpg8pd4yhlkys7wbj4vkzgg73n27nmplzips6a0b"))
-       (patches
-        (search-patches "nftables-fix-makefile.patch"))))
+        (base32 "0ddsdj6zs78hndffl3iikpa1wzjxcpmr3xqcq4la71gnl7zb2zwj"))))
     (build-system gnu-build-system)
     (arguments `(#:configure-flags
                  '("--disable-static"
@@ -9095,7 +9099,7 @@ kernel side implementation.")
 (define-public erofs-utils
   (package
     (name "erofs-utils")
-    (version "1.4")
+    (version "1.5")
     (source
      (origin
        (method git-fetch)
@@ -9104,7 +9108,7 @@ kernel side implementation.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ygaw69pfz2hfzw9cqzg9rfnjzrdbfkwsiinz6qs2h56dssjz0y9"))))
+        (base32 "0rgkw3b924xdg49v3qi8a10w41zfk276wb6fp71lb9q9cfc81idw"))))
     (build-system gnu-build-system)
     (inputs
      (list lz4
@@ -9203,7 +9207,7 @@ older system-wide @file{/sys} interface.")
 (define-public libtree
   (package
     (name "libtree")
-    (version "3.0.2")
+    (version "3.1.1")
     (source
      (origin
        (method git-fetch)
@@ -9212,7 +9216,7 @@ older system-wide @file{/sys} interface.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "072624anz9g01mp5vfkahfmzy0nb7axg5rwk3n1yrdm4hr3d4zrb"))))
+        (base32 "1jbc60cslzcfxk9jwva51ncr1zl1nz0fkgfjdckgv81is11nswmb"))))
     (arguments
      (list #:make-flags
            ;; NOTE: Official documentation recommends to build libtree with
@@ -9221,6 +9225,15 @@ older system-wide @file{/sys} interface.")
                    (string-append "PREFIX=" #$output))
            #:phases
            #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-tests
+                 ;; XXX: '08_nodeflib' fails as 'libtree' returns a non-zero
+                 ;; code in one of the tests.
+                 ;;
+                 ;; See <https://github.com/haampie/libtree/issues/80>).
+                 (lambda _
+                   (substitute* "tests/08_nodeflib/Makefile"
+                     (("! ../../libtree -vvv exe_b")
+                      "../../libtree -vvv exe_b"))))
                (delete 'configure))))
     (build-system gnu-build-system)
     (home-page "https://github.com/haampie/libtree")
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 3b8591fb4a..a88f19e28e 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -3401,7 +3401,7 @@ is a library for creating graphical user interfaces.")
 (define-public sbcl-cl-webkit
   (package
     (name "sbcl-cl-webkit")
-    (version "3.5.1")
+    (version "3.5.3")
     (source
      (origin
        (method git-fetch)
@@ -3411,7 +3411,7 @@ is a library for creating graphical user interfaces.")
        (file-name (git-file-name "cl-webkit" version))
        (sha256
         (base32
-         "1zfqwr6vmdd9a2nx3j3ihf8y9sah354wi2rgpq7dy4dkc6wxxd48"))))
+         "076lqj8ns9s7z980g3p2llw3k6hgsqnsvw8vjjslbpas2jzf26nr"))))
     (build-system asdf-build-system/sbcl)
     (inputs
      `(("cffi" ,sbcl-cffi)
@@ -4457,7 +4457,7 @@ addition, removal, and random selection.")
 (define-public sbcl-quri
   (package
     (name "sbcl-quri")
-    (version "0.4.0")
+    (version "0.5.0")
     (source
      (origin
        (method git-fetch)
@@ -4466,7 +4466,7 @@ addition, removal, and random selection.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0ka5haq3g72hvaz4hdv7y1d6df9ncmx029wwixn4r413gll5yxy7"))))
+        (base32 "0zpwjhs2zz9832wsjs00kbkjjl4bcs96krlnq9y75gi4f34fxj1x"))))
     (build-system asdf-build-system/sbcl)
     (arguments
      ;; Test system must be loaded before, otherwise tests fail with:
@@ -4481,7 +4481,7 @@ addition, removal, and random selection.")
     (synopsis "Yet another URI library for Common Lisp")
     (description
      "QURI (pronounced \"Q-ree\") is yet another URI library for Common
-Lisp. It is intended to be a replacement of PURI.")
+Lisp.  It is intended to be a replacement of PURI.")
     (license license:bsd-3)))
 
 (define-public cl-quri
@@ -6056,12 +6056,12 @@ cookie headers, cookie creation, cookie jar creation and more.")
   (sbcl-package->ecl-package sbcl-cl-cookie))
 
 (define-public sbcl-dexador
-  (let ((commit "953090f04c4d1a9ee6632b90133cdc297b68badc")
+  (let ((commit "74a233edb0ebf2b8c696fb8db984ac568fbcc4e5")
         (revision "1"))
     (package
       (name "sbcl-dexador")
       (build-system asdf-build-system/sbcl)
-      (version "0.9.14" )
+      (version (git-version "0.9.15" revision commit))
       (home-page "https://github.com/fukamachi/dexador")
       (source
        (origin
@@ -6069,36 +6069,35 @@ cookie headers, cookie creation, cookie jar creation and more.")
          (uri (git-reference
                (url home-page)
                (commit commit)))
-         (file-name (git-file-name name version))
+         (file-name (git-file-name "cl-dexador" version))
          (sha256
-          (base32
-           "0w18fz3301rpmwc3kwb810czcd24mbf7r1z8vdyc0v5crjfpw3mn"))))
+          (base32 "14cbykd9j8klm8sz3siq5zk78a0ljd6rdwfq12fi4h1ih50apyfi"))))
       (inputs
-       `(("trivial-gray-streams" ,sbcl-trivial-gray-streams)
-         ("babel" ,sbcl-babel)
-         ("usocket" ,sbcl-usocket)
-         ("fast-http" ,sbcl-fast-http)
-         ("quri" ,sbcl-quri)
-         ("fast-io" ,sbcl-fast-io)
-         ("chunga" ,sbcl-chunga)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("cl-cookie" ,sbcl-cl-cookie)
-         ("trivial-mimes" ,sbcl-trivial-mimes)
-         ("chipz" ,sbcl-chipz)
-         ("cl-base64" ,sbcl-cl-base64)
-         ("cl-reexport" ,sbcl-cl-reexport)
-         ("cl+ssl" ,sbcl-cl+ssl)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("alexandria" ,sbcl-alexandria)))
+       (list sbcl-alexandria
+             sbcl-babel
+             sbcl-bordeaux-threads
+             sbcl-chipz
+             sbcl-chunga
+             sbcl-cl+ssl
+             sbcl-cl-base64
+             sbcl-cl-cookie
+             sbcl-cl-ppcre
+             sbcl-cl-reexport
+             sbcl-fast-http
+             sbcl-fast-io
+             sbcl-quri
+             sbcl-trivial-gray-streams
+             sbcl-trivial-mimes
+             sbcl-usocket))
       (native-inputs
-       `(("prove" ,sbcl-prove)
-         ("lack" ,sbcl-lack)
-         ("clack" ,sbcl-clack)
-         ("babel" ,sbcl-babel)
-         ("alexandria" ,sbcl-alexandria)
-         ("cl-ppcre" ,sbcl-cl-ppcre)
-         ("local-time" ,sbcl-local-time)
-         ("trivial-features" ,sbcl-trivial-features)))
+       (list sbcl-alexandria
+             sbcl-babel
+             sbcl-cl-ppcre
+             sbcl-clack
+             sbcl-lack
+             sbcl-local-time
+             sbcl-prove
+             sbcl-trivial-features))
       (arguments
        ;; TODO: Circular dependency: tests depend on clack-test which depends on dexador.
        `(#:tests? #f
@@ -6242,6 +6241,42 @@ can and/or provide reasonable defaults.")
 (define-public ecl-introspect-environment
   (sbcl-package->ecl-package sbcl-introspect-environment))
 
+(define-public sbcl-compiler-macro
+  (let ((commit "7796bda64aec5af3ca175170ad3565167868789c")
+        (revision "0"))
+    (package
+      (name "sbcl-compiler-macro")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Bike/compiler-macro")
+               (commit commit)))
+         (file-name (git-file-name "cl-compiler-macro" version))
+         (sha256
+          (base32 "13sswps7s0qy6939mvj8q57hkx0qkga6rl6xjhjr7pk7by0xdsjq"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       (list sbcl-fiveam))
+      (inputs
+       (list sbcl-introspect-environment))
+      (home-page "https://github.com/Bike/compiler-macro")
+      (synopsis "Common Lisp compiler macro utilities")
+      (description "This library is a collection of utilities for writing
+compiler macros.  It is intended to make it possible to make compiler macros
+much more useful, by granting them access to lexical type information, making
+the protocol for declining expansion more convenient, and establishing some
+information for signaling optimization advice to programmers.  Some utilities
+to support this, especially for reasoning on types, are also included.")
+      (license license:cc0))))
+
+(define-public cl-compiler-macro
+  (sbcl-package->cl-source-package sbcl-compiler-macro))
+
+(define-public ecl-compiler-macro
+  (sbcl-package->ecl-package sbcl-compiler-macro))
+
 (define-public sbcl-type-i
   (let ((commit "d34440ab4ebf5a46a58deccb35950b15670e3667")
         (revision "2"))
@@ -7504,8 +7539,8 @@ implementation specific equivalent.")
   (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
 
 (define-public sbcl-serapeum
-  (let ((commit "c29a52ff0c5f6e60b09919c3a0daa8df7599ddb9")
-        (revision "6"))
+  (let ((commit "d2150c6fb75c16f2ee0abd145a1089d0019e7f7e")
+        (revision "7"))
     (package
       (name "sbcl-serapeum")
       (version (git-version "0.0.0" revision commit))
@@ -7518,34 +7553,34 @@ implementation specific equivalent.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0vij9jhji09way1rpd0r5sgjnh5amm3f2ymppnqkw0c6nnk2p0kd"))))
+          (base32 "1czs771nyqz45ndd09iiva2swvazy1b2z0k6h4qqdd839vnjcs06"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("alexandria" ,sbcl-alexandria)
-         ("trivia" ,sbcl-trivia)
-         ("split-sequence" ,sbcl-split-sequence)
-         ("string-case" ,sbcl-string-case)
-         ("parse-number" ,sbcl-parse-number)
-         ("trivial-garbage" ,sbcl-trivial-garbage)
-         ("bordeaux-threads" ,sbcl-bordeaux-threads)
-         ("named-readtables" ,sbcl-named-readtables)
-         ("fare-quasiquote" ,sbcl-fare-quasiquote)
-         ("parse-declarations-1.0" ,sbcl-parse-declarations)
-         ("global-vars" ,sbcl-global-vars)
-         ("trivial-file-size" ,sbcl-trivial-file-size)
-         ("trivial-macroexpand-all" ,sbcl-trivial-macroexpand-all)))
+       (list sbcl-alexandria
+             sbcl-trivia
+             sbcl-split-sequence
+             sbcl-string-case
+             sbcl-parse-number
+             sbcl-trivial-garbage
+             sbcl-bordeaux-threads
+             sbcl-parse-declarations
+             sbcl-introspect-environment
+             sbcl-trivial-cltl2
+             sbcl-global-vars
+             sbcl-trivial-file-size
+             sbcl-trivial-macroexpand-all))
       (native-inputs
-       `(("fiveam" ,sbcl-fiveam)
-         ("local-time" ,sbcl-local-time)))
+       (list sbcl-atomics
+             sbcl-fiveam
+             sbcl-local-time))
       (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'disable-failing-tests
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "serapeum.asd"
-                 ;; Guix does not have Quicklisp, and probably never will.
-                 (("\\(:file \"quicklisp\"\\)") ""))
-               #t)))))
+       (list #:phases
+             #~(modify-phases %standard-phases
+                 (add-after 'unpack 'disable-failing-tests
+                   (lambda _
+                     (substitute* "serapeum.asd"
+                       ;; Guix does not have Quicklisp, and probably never will.
+                       (("\\(:file \"quicklisp\"\\)") "")))))))
       (synopsis "Common Lisp utility library beyond Alexandria")
       (description
        "Serapeum is a conservative library of Common Lisp utilities.  It is a
@@ -14329,10 +14364,10 @@ standard library.")
   (sbcl-package->cl-source-package sbcl-shlex))
 
 (define-public sbcl-cmd
-  (let ((commit "b0b79adf1214dbec082f3dd2274a72a0ff58efd7"))
+  (let ((commit "fda9e6bd9137ea806313151716fd87578cdbc882"))
     (package
       (name "sbcl-cmd")
-      (version (git-version "0.0.1" "5" commit))
+      (version (git-version "0.0.1" "6" commit))
       (source
        (origin
          (method git-fetch)
@@ -14341,7 +14376,7 @@ standard library.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0kk29vydmi1fyhpbwy3mrsg3bhvx0478r6r7jcsfkr3ci2h8w8a1"))))
+          (base32 "0j2yns565mp2rsiz8lc75psk7wws9qz8rh74n4vf9zdyrw16ckpf"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -15383,51 +15418,53 @@ return the CPU count of the current system.")
   (sbcl-package->cl-source-package sbcl-cl-cpus))
 
 (define-public sbcl-fof
-  (package
-    (name "sbcl-fof")
-    (version "0.2.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://gitlab.com/ambrevar/fof")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0j64b7p40h8bq33hqkpgakm3vs1607vyx6n48d7qg3287v1akk6m"))))
-    (build-system asdf-build-system/sbcl)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "ffprobe.lisp"
-               (("\\(defvar \\*ffprobe-command\\* \"ffprobe\"\\)")
-                (format #f "(defvar *ffprobe-command* \"~a/bin/ffprobe\")"
-                        (assoc-ref inputs "ffmpeg") )))
-             #t)))))
-    (inputs
-     `(("alexandria" ,sbcl-alexandria)
-       ("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
-       ("local-time" ,sbcl-local-time)
-       ("magicffi" ,sbcl-magicffi)
-       ("osicat" ,sbcl-osicat)
-       ("serapeum" ,sbcl-serapeum)
-       ("str" ,sbcl-cl-str)
-       ("trivia" ,sbcl-trivia)
-       ("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
-       ;; Non-CL deps:
-       ("ffmpeg" ,ffmpeg)))
-    (home-page "https://gitlab.com/ambrevar/fof")
-    (synopsis "File object finder library for Common Lisp")
-    (description
-     "This library enable rapid file search, inspection and manipulation
+  (let ((commit "522879e7da110ecf2e841998b197b34062c54b29")
+        (revision "1"))
+    (package
+      (name "sbcl-fof")
+      (version (git-version "0.2.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://gitlab.com/ambrevar/fof")
+               (commit commit)))
+         (file-name (git-file-name "cl-fof" version))
+         (sha256
+          (base32 "0ipy51q2fw03xk9rqcyzbq2b9c32npc1gl3c53rdjywpak7zwwg6"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "ffprobe.lisp"
+                 (("\\(defvar \\*ffprobe-command\\* \"ffprobe\"\\)")
+                  (format #f "(defvar *ffprobe-command* \"~a/bin/ffprobe\")"
+                          (assoc-ref inputs "ffmpeg")))))))))
+      (inputs
+       (list sbcl-alexandria
+             sbcl-cl-str
+             sbcl-hu.dwim.defclass-star
+             sbcl-local-time
+             sbcl-magicffi
+             sbcl-named-readtables
+             sbcl-osicat
+             sbcl-serapeum
+             sbcl-trivia
+             sbcl-trivial-package-local-nicknames
+             ;; Non-CL deps:
+             ffmpeg))
+      (home-page "https://gitlab.com/ambrevar/fof")
+      (synopsis "File object finder library for Common Lisp")
+      (description
+       "This library enable rapid file search, inspection and manipulation
 straight from the REPL.
 It aims at replacing Unix tools such as @code{find} or @code{du}.
 It also offers a replacement to the @code{pathname} Common Lisp API.
 Slot writers which commit changes to disk, e.g. permissions, modification
 time, etc.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public ecl-fof
   (sbcl-package->ecl-package sbcl-fof))
@@ -15463,6 +15500,36 @@ numbers in Common Lisp.")
 (define-public cl-computable-reals
   (sbcl-package->cl-source-package sbcl-computable-reals))
 
+(define-public sbcl-policy-cond
+  (let ((commit "eedb625520175bfdf44d385ff3b21039b7f75706")
+        (revision "0"))
+    (package
+      (name "sbcl-policy-cond")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stylewarning/policy-cond")
+               (commit commit)))
+         (file-name (git-file-name "cl-policy-cond" version))
+         (sha256
+          (base32 "0xj2a6lcg7i7g4038sc4f641din6m8vdiha8c5afz9fik80bshxk"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/stylewarning/policy-cond")
+      (synopsis "Insert code based on compiler policy")
+      (description "POLICY-COND provides tools to insert and execute code
+based on a compiler's OPTIMIZE policy.  It also contains a contract-like notion
+of expectations, which allow dynamic checking or inclusion of various things
+that should happen depending on compiler policy.")
+      (license license:bsd-3))))
+
+(define-public cl-policy-cond
+  (sbcl-package->cl-source-package sbcl-policy-cond))
+
+(define-public ecl-policy-cond
+  (sbcl-package->ecl-package sbcl-policy-cond))
+
 (define-public sbcl-html-template
   (package
     (name "sbcl-html-template")
@@ -20820,7 +20887,7 @@ access lexicographic data from WordNet.")
 (define-public sbcl-nfiles
   (package
    (name "sbcl-nfiles")
-   (version "0.4.1")
+   (version "0.4.2")
    (source
     (origin
      (method git-fetch)
@@ -20830,7 +20897,7 @@ access lexicographic data from WordNet.")
      (file-name (git-file-name "cl-nfiles" version))
      (sha256
       (base32
-       "05brlj99grcy2iz84dvl76inp10jxnvjyh2r262d1las112rlcrb"))))
+       "06cll4l5gbp98wrgdy04ar6z00sag0b46pr4dv4n6bs1ypfcgs01"))))
    (build-system asdf-build-system/sbcl)
    (inputs
     (list gnupg
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ca85cab2b9..c26da670ac 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -923,7 +923,7 @@ the HTML documentation of TXR.")
 (define-public txr
   (package
     (name "txr")
-    (version "274")
+    (version "277")
     (source
      (origin
        (method git-fetch)
@@ -932,7 +932,7 @@ the HTML documentation of TXR.")
              (commit (string-append "txr-" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0sz5wqqhmj2b9h9q95s8x4gb4cia6qddqp2mg29a5dpdh6jh3qyp"))))
+        (base32 "1w6q5inydz0cf4g3y8954msxfb2clf4nj4aqiiayp0z2y96b7bhk"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -991,7 +991,8 @@ the HTML documentation of TXR.")
            man-for-txr))
     (inputs
      (list bash-minimal
-           libffi))
+           libffi
+           zlib))
     (synopsis "General-purpose, multi-paradigm programming language")
     (description
      "TXR is a general-purpose, multi-paradigm programming language.  It
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 88b582d85b..32625385ff 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -23,6 +23,7 @@
 ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -53,6 +54,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages bootstrap)           ;glibc-dynamic-linker
@@ -541,10 +543,10 @@ output), and Binutils.")
               ("libc-static" ,glibc "static")))))
 
 (define %llvm-monorepo-hashes
-  '(("14.0.4" . "1y4yvx749cn3gkpc9kf48xbd2wc2lry8x5zdpk3sbrkqs8vrji4q")))
+  '(("14.0.5" . "1hdv020x4k5fp38hik3bxz8k2sr3gnyj9iym3yhjhwygzgwgxjh9")))
 
 (define %llvm-patches
-  '(("14.0.4" . ("clang-14.0-libc-search-path.patch"))))
+  '(("14.0.5" . ("clang-14.0-libc-search-path.patch"))))
 
 (define (llvm-monorepo version)
   (origin
@@ -559,7 +561,7 @@ output), and Binutils.")
 (define-public llvm-14
   (package
     (name "llvm")
-    (version "14.0.4")
+    (version "14.0.5")
     (source (llvm-monorepo version))
     (build-system cmake-build-system)
     (outputs '("out" "opt-viewer"))
@@ -577,9 +579,9 @@ output), and Binutils.")
          ;; These options are required for cross-compiling LLVM according
          ;; to <https://llvm.org/docs/HowToCrossCompileLLVM.html>.
          #$@(if (%current-target-system)
-                #~(,(string-append "-DLLVM_TABLEGEN="
-                                   #+(file-append this-package
-                                                  "/bin/llvm-tblgen"))
+                #~((string-append "-DLLVM_TABLEGEN="
+                                  #+(file-append this-package
+                                                 "/bin/llvm-tblgen"))
                    #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
                                     (%current-target-system))
                    #$(string-append "-DLLVM_TARGET_ARCH="
@@ -647,7 +649,7 @@ of programming tools as well as libraries with equivalent functionality.")
                                            (package-version llvm-14)))
                             (sha256
                              (base32
-                              "1vcgmvh0r28a1z87p3y4h2326zi8liq7l9mcfvmx22x9bmbcpfn8"))))))
+                              "1p9y5fbcw3ynb79nzyadirwdla03bq38k6d9nhv9x8z2q4ypsga4"))))))
     (package
       (inherit template)
       (arguments
@@ -740,6 +742,14 @@ of programming tools as well as libraries with equivalent functionality.")
        #:build-type "Release"
        #:phases
        (modify-phases %standard-phases
+         ,@(if (assoc "config" (package-native-inputs this-package))
+            `((add-after 'unpack 'update-config
+                (lambda* (#:key inputs native-inputs #:allow-other-keys)
+                  (let ((config.guess (search-input-file
+                                        (or inputs native-inputs)
+                                        "/bin/config.guess")))
+                    (copy-file config.guess "cmake/config.guess")))))
+            '())
          (add-before 'build 'shared-lib-workaround
            ;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
            ;; doesn't seem to get the correct rpath to be able to run
@@ -824,7 +834,14 @@ of programming tools as well as libraries with equivalent functionality.")
       (uri (llvm-uri "llvm" version))
       (sha256
        (base32
-        "1wydhbp9kyjp5y0rc627imxgkgqiv3dfirbqil9dgpnbaw5y7n65"))))))
+        "1wydhbp9kyjp5y0rc627imxgkgqiv3dfirbqil9dgpnbaw5y7n65"))))
+    (native-inputs
+     `(("python" ,python-wrapper)
+       ("perl"   ,perl)
+       ;; In llvm-11 riscv64 support was added manually to config.guess.
+       ,@(if (target-riscv64?)
+           `(("config" ,config))
+           '())))))
 
 (define-public clang-runtime-10
   (clang-runtime-from-llvm
@@ -1109,10 +1126,10 @@ of programming tools as well as libraries with equivalent functionality.")
 
 (define-public llvm-for-rocm
   (package
-    ;; Actually based on LLVM 13 as of v4.3, but llvm-12 works just fine.
-    (inherit llvm-12)
+    ;; Based on LLVM 14 as of v5.0.0
+    (inherit llvm-14)
     (name "llvm-for-rocm")
-    (version "4.3.0")                         ;this must match '%rocm-version'
+    (version "5.1.3")                         ;this must match '%rocm-version'
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1121,10 +1138,9 @@ of programming tools as well as libraries with equivalent functionality.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0p75nr1qpmy6crymdax5hm40wkimman4lnglz4x5cnbiqindya7s"))
+                "0j6ydfkwrxwskgnhxc3cmry42n5faqbnwf2747qgf7lz5id8h8g5"))
               (patches
-               (search-patches "llvm-roc-4.2.0-add_Object.patch"
-                               "llvm-roc-3.0.0-add_libraries.patch"
+               (search-patches "llvm-roc-5.0.0-linkdl.patch"
                                "llvm-roc-4.0.0-remove-isystem-usr-include.patch"))))
     (arguments
      (substitute-keyword-arguments (package-arguments llvm-12)
@@ -1141,7 +1157,7 @@ of programming tools as well as libraries with equivalent functionality.")
            "-DBUILD_SHARED_LIBS:BOOL=TRUE"
            "-DLLVM_VERSION_SUFFIX="))))
     (properties `((hidden? . #t)
-                  ,@(package-properties llvm-12)))))
+                  ,@(package-properties llvm-14)))))
 
 
 
@@ -1176,7 +1192,7 @@ of programming tools as well as libraries with equivalent functionality.")
 (define-public lld-14
   (package
     (name "lld")
-    (version "14.0.4")
+    (version "14.0.5")
     (source (llvm-monorepo version))
     (build-system cmake-build-system)
     (inputs
diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm
index 4391287d12..9e7cfe613a 100644
--- a/gnu/packages/logging.scm
+++ b/gnu/packages/logging.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
 ;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@@ -164,29 +164,40 @@ commands, displaying the results via a web interface.")
 (define-public multitail
   (package
     (name "multitail")
-    (version "6.5.0")
+    (version "6.5.2")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://vanheusden.com/multitail/multitail-"
-                          version ".tgz"))
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/halturin/multitail")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
       (sha256
-       (base32 "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj"))))
+       (base32 "17hg5qpangyx4m7hp2x4h56mp6w3wsaslg1il39qcpwsffh1rihc"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
        (list (string-append "CC=" ,(cc-for-target))
-             (string-append "PREFIX="
-                            (assoc-ref %outputs "out")))
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "SYSCONFDIR=$(PREFIX)/etc")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-curses-lib
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (substitute* "mt.h"
-                 (("ncursesw\\/panel.h") "panel.h")
-                 (("ncursesw\\/ncurses.h") "ncurses.h")))
-             #t))
+         (add-after 'unpack 'fix-broken-build
+           ;; With some luck, you might be able to remove this when updating…
+           (lambda _
+             (substitute* "Makefile"
+               ((" \\*\\.txt") "")
+               ((".*CONFIG_DIR.*") "")
+               (("^install: .*" match)
+                (string-append match
+                               "\t$(INSTALL_DIR) $(DESTDIR)$(SYSCONFDIR)\n")))
+             (substitute* "version"
+               (("(VERSION=).*" _ assign)
+                (string-append assign ,version)))))
+         (add-after 'unpack 'patch-curses-headers
+           (lambda _
+             (substitute* "mt.h"
+               (("ncursesw/") ""))))
          (delete 'configure))           ; no configure script
        #:tests? #f)) ; no test suite (make check just runs cppcheck)
     (inputs (list ncurses))
@@ -229,7 +240,7 @@ library.")
 (define-public rsyslog
   (package
     (name "rsyslog")
-    (version "8.2112.0")
+    (version "8.2204.1")
     (source
      (origin
        (method git-fetch)
@@ -238,8 +249,7 @@ library.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0bp124w2qv8hix5i0p04d8yvsipy18dhqm7zw8i6cwdgnhdadq96"))))
+        (base32 "0bsd1n3n4hvlkwf4g85g3fg37mnvkdmxsfdmg273gcachhyl5hbx"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -253,9 +263,8 @@ library.")
       ;; them for a full-featured build.
       '(list "--enable-kmsg"
              "--enable-liblogging_stdlog"
-             "--enable-mmanon"
-             "--enable-mmcount"
              "--enable-unlimited_select"
+             "--enable-usertools"
          
              ;; Input plugins
              "--enable-imbatchreport"
@@ -297,7 +306,9 @@ library.")
              "--enable-pmsnare"
 
              ;; Message Modification Modules
+             "--enable-mmanon"
              "--enable-mmaudit"
+             "--enable-mmcount"
              "--enable-mmdarwin"
              "--enable-mmdblookup"
              "--enable-mmfields"
@@ -324,9 +335,18 @@ library.")
              "--enable-snmp"
 
              ;; Function modules
-             "--enable-fmhash_xxhash")))
+             "--enable-fmhash_xxhash"
+
+             ;; Needed to build rscryutil.1.gz.
+             "--enable-generate-man-pages")))
     (native-inputs
-     (list autoconf automake bison flex libtool pkg-config))
+     (list autoconf
+           automake
+           bison
+           flex
+           libtool
+           pkg-config
+           python-docutils))            ; rst2man for man pages
     (inputs
      (list curl
            cyrus-sasl
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 509b9c7cdd..53d428bd4f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -570,21 +570,37 @@ sample proximities between pairs of cases.")
 (define-public openfst
   (package
     (name "openfst")
-    (version "1.7.9")
+    (version "1.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://www.openfst.org/twiki/pub/FST/"
                                   "FstDownload/openfst-" version ".tar.gz"))
               (sha256
                (base32
-                "1pmx1yhn2gknj0an0zwqmzgwjaycapi896244np50a8y3nrsw6ck"))))
+                "0hlbdmjjf1jgsvi3d2hwni5lz3l9a5bzj6ijpbawa8a7cbrpp66y"))))
     (build-system gnu-build-system)
+    (arguments '(#:configure-flags '("--enable-ngram-fsts")))
     (home-page "http://www.openfst.org")
     (synopsis "Library for weighted finite-state transducers")
     (description "OpenFst is a library for constructing, combining,
 optimizing, and searching weighted finite-state transducers (FSTs).")
     (license license:asl2.0)))
 
+;; This is a temporary addition to bypass upstream issues with the kaldi
+;; package.
+(define-public openfst-1.7.3
+  (package (inherit openfst)
+    (version "1.7.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.openfst.org/twiki/pub/FST/"
+                                  "FstDownload/openfst-" version ".tar.gz"))
+              (sha256
+               (base32
+                "038a60w7y8qnbxmcrsim9rafz9mihsny8xv50jpzlr7rl166pp5q"))))
+    (arguments '(#:configure-flags '("--enable-ngram-fsts" "CXXFLAGS=-std=c++14")
+                 #:make-flags '("CXXFLAGS=-std=c++14")))))
+
 (define-public shogun
   (package
     (name "shogun")
@@ -1465,8 +1481,9 @@ discrete, and conditional dimensions.")
 
 ;; There have been no proper releases yet.
 (define-public kaldi
-  (let ((commit "d4791c0f3fc1a09c042dac365e120899ee2ad21e")
-        (revision "2"))
+  (let ((commit "dd107fd594ac58af962031c1689abfdc10f84452")
+        (revision "0")
+        (openfst openfst-1.7.3)) ;; Temporary bypass for upstream issues
     (package
       (name "kaldi")
       (version (git-version "0" revision commit))
@@ -1478,7 +1495,7 @@ discrete, and conditional dimensions.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "07k80my6f19mhrkwbzhjsnpf9871wmrwkl0ym468i830w67qyjrz"))))
+                  "0iqbzgn7gzmgwvjfzifpbwwidxx887qmlgmsjkg7b1yzyfv00l21"))))
       (build-system gnu-build-system)
       (arguments
        `(#:test-target "test"
@@ -1502,6 +1519,8 @@ discrete, and conditional dimensions.")
                               "gst-plugin/Makefile")
                  (("../../tools/portaudio/install")
                   (assoc-ref inputs "portaudio")))
+               (substitute* "matrix/Makefile"     ;temporary test bypass
+                 (("matrix-lib-test sparse-matrix-test") ""))
 
                ;; This `configure' script doesn't support variables passed as
                ;; arguments, nor does it support "prefix".
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 53c7785020..15a53a337d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -47,6 +47,7 @@
 ;;; Copyright © 2022 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li>
 ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
+;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -87,6 +88,7 @@
   #:use-module (gnu packages django)
   #:use-module (gnu packages dns)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages docker)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages enchant)
@@ -1333,14 +1335,14 @@ invoking @command{notifymuch} from the post-new hook.")
 (define-public notmuch
   (package
     (name "notmuch")
-    (version "0.35")
+    (version "0.36")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://notmuchmail.org/releases/notmuch-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0fdc81m24xrbhfrhw00g12ak4b8hap4961sq7ap6q2pjqhac8cd8"))))
+        (base32 "0h6f6mh9m9vrijm638x5sbsl321b74a25cdasbxhx67x62w320hk"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -1474,8 +1476,7 @@ useful for email address completion.")
              (let ((notmuch (assoc-ref inputs "notmuch")))
                (substitute* "notmuch/globals.py"
                  (("libnotmuch\\.so\\.")
-                  (string-append notmuch "/lib/libnotmuch.so.")))
-               #t))))))
+                  (string-append notmuch "/lib/libnotmuch.so.")))))))))
     (home-page (package-home-page notmuch))
     (synopsis "Python bindings of the Notmuch mail indexing library")
     (description
@@ -1551,7 +1552,7 @@ pairs have previously synchronized.")
 (define-public getmail6
   (package
     (name "getmail6")
-    (version "6.18.6")
+    (version "6.18.9")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1560,7 +1561,7 @@ pairs have previously synchronized.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "08a5yw6ll1kmd1ardj8rzhsw4wl48zzdc87g5lh4p5snv8w2m4ja"))))
+                "1ch5hagkpybmkgg2wbb2mids3nbmjqgdqjhczzz7pvj4hx2m8fdb"))))
     (build-system python-build-system)
     (arguments (list #:tests? #f))      ;tests require docker
     (home-page "https://github.com/getmail6/getmail6")
@@ -1569,7 +1570,7 @@ pairs have previously synchronized.")
      "A flexible, extensible mail retrieval system with support for POP3,
 IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs, arbitrary
 message filtering, single-user and domain-mailboxes, and many other useful
-features.  This is a fork derived from getmali 5.14, aimed at Python 3
+features.  This is a fork derived from getmail 5.14, aimed at Python 3
 compatibility.")
     (license license:gpl2+)))           ;see docs/COPYING
 
@@ -1632,7 +1633,7 @@ compresses it.")
 (define-public claws-mail
   (package
     (name "claws-mail")
-    (version "4.0.0")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
@@ -1640,7 +1641,7 @@ compresses it.")
         (string-append "https://www.claws-mail.org/releases/claws-mail-"
                        version ".tar.xz"))
        (sha256
-        (base32 "0xg41rxxq2q5vhjzbh8p12s248kcljk6g7y0m6raq7nrllkbvwja"))))
+        (base32 "13ksh4iwr23zi86fwmiwxha94xqrr5zxq373i82rwaldvfh9q6hf"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -1670,7 +1671,7 @@ compresses it.")
                 (search-input-file inputs "/share/mime/globs"))))))))
     (native-inputs
      (list bison
-           ;;("docbook-utils" ,docbook-utils)
+           ;;docbook-utils
            flex
            gettext-minimal
            gobject-introspection
@@ -1890,7 +1891,7 @@ facilities for checking incoming mail.")
   (package
     (name "dovecot")
     ;; Also update dovecot-pigeonhole when updating to a new minor version.
-    (version "2.3.19")
+    (version "2.3.19.1")
     (source
      (origin
        (method url-fetch)
@@ -1898,7 +1899,7 @@ facilities for checking incoming mail.")
                            (version-major+minor version) "/"
                            "dovecot-" version ".tar.gz"))
        (sha256
-        (base32 "0ys3zq9b1rgj1cz6a0i9l421y6h2j3b5zak2ia5j9dj1sj9zcwq1"))))
+        (base32 "0lawd8grwxass1frlw9bdd49fpwwxsv2qnxllsg6a2bkgpcbqnnv"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config))
@@ -2423,21 +2424,29 @@ compatibility shims for the @command{sendmail}, @command{mailq}, and
 (define-public fdm
   (package
     (name "fdm")
-    (version "2.0")
+    (version "2.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/nicm/fdm/releases/download/"
                                  version "/fdm-" version ".tar.gz"))
              (sha256
-               (base32 "196fs1z8y7p12wmqn1bylzz94szl58yv2aby3p30nmwjnyv8rch6"))))
+               (base32 "1zxd5j5x2gp6m62j83xsjyfglw1p6gn4zk5qx10djdh8xzkg53c5"))))
     (build-system gnu-build-system)
     (inputs
      (list tdb openssl zlib))
     (home-page "https://github.com/nicm/fdm")
-    (synopsis "Mail Retrieval Agent (MRA) and Mail Delivery Agent (MDA)")
-    (description "fdm is a program designed to fetch mail from POP3
-or IMAP servers, or receive local mail from stdin, and
-deliver it in various ways.")
+    (synopsis
+     "@acronym{MRA, Mail Retrieval Agent} and @acronym{MDA, Mail Delivery Agent}")
+    (description "fdm fetches and delivers mail in various ways.
+
+Mail may be fetched from IMAP or POP3 servers, from local maildirs, or read
+from standard input.  It is then filtered based on regular expressions, its
+size or age, or the output of a (shell) command.  It can be rewritten by an
+external process, dropped, left on the server or delivered into maildirs,
+mboxes, to a file or pipe, or any combination.
+
+fdm is primarily designed for use by a single user, but can use privilege
+separation to safely deliver mail in multi-user setups.")
     (license
      ;; Why point to a source file?  Well, all the individual files have a
      ;; copy of this license in their headers, but there's no seprate file
@@ -3671,7 +3680,7 @@ operators and scripters.")
 (define-public alpine
   (package
     (name "alpine")
-    (version "2.25")
+    (version "2.26")
     (source
      (origin
        (method git-fetch)
@@ -3684,14 +3693,12 @@ operators and scripters.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0z6dp3cpz1dmbxw41ravsx1bxychafp0ij8gvj96mzz7rm9pdnq3"))
+        (base32 "1padh9kgn9blzjf0016i2f15c615fk17m8vg8kx301jhmc2r973h"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Remove pre-built binaries scattered across the source repository.
-           (for-each delete-file (find-files "." "\\.(dll|exe)"))))
-       (patches
-        (search-patches "alpine-fix-privacy-policy-crash.patch"))))
+           (for-each delete-file (find-files "." "\\.(dll|exe)"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
@@ -4087,10 +4094,16 @@ Git and exports them in maildir format or to an MDA through a pipe.")
              (sha256
               (base32
                "0xni1l54v1z3p0zb52807maay0yqabp8jgf5iras5zmhgjyk3swz"))
-             (file-name (git-file-name name version))))
+             (file-name (git-file-name name version))
+             (patches (search-patches "public-inbox-fix-spawn-test.patch"))))
     (build-system perl-build-system)
     (arguments
-     '(#:tests? #f
+     `(#:imported-modules (,@%perl-build-system-modules
+                           (guix build syscalls))
+       #:modules ((guix build perl-build-system)
+                  (guix build syscalls)
+                  (guix build utils)
+                  (ice-9 match))
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'qualify-paths
@@ -4099,18 +4112,45 @@ Git and exports them in maildir format or to an MDA through a pipe.")
              (substitute* "lib/PublicInbox/Xapcmd.pm"
                (("'xapian-compact'")
                 (format #f "'~a'" (search-input-file inputs
-                                                     "/bin/xapian-compact"))))))
+                                                     "/bin/xapian-compact"))))
+             (substitute* "lib/PublicInbox/TestCommon.pm"
+               ;; This is only used for tests, but get it from ‘inputs’ so
+               ;; that cross builds won't hold a reference to a package built
+               ;; for another architecture.
+               (("/bin/cp") (search-input-file inputs "/bin/cp")))))
          (add-before 'check 'pre-check
            (lambda _
-             (substitute* "t/spawn.t"
-               (("\\['env'\\]") (string-append "['" (which "env") "']")))
-             (substitute* "t/ds-leak.t"
-               (("/bin/sh") (which "sh")))
-             (invoke "./certs/create-certs.perl")
-             ;; XXX: This test fails due to zombie process is not reaped by
-             ;; the builder.
-             (substitute* "t/httpd-unix.t"
-               (("^SKIP: \\{") "SKIP: { skip('Guix');"))))
+             (invoke "./certs/create-certs.perl")))
+         (replace 'check
+           (lambda* (#:key target
+                     (tests? (not target)) (test-flags '())
+                     #:allow-other-keys)
+             (if tests?
+                 (match (primitive-fork)
+                   (0                     ;child process
+                    ;; lei tests build UNIX domain sockets in the temporary
+                    ;; directory, but the path of those sockets can be at most
+                    ;; 108 chars and Guix' default value for the variables
+                    ;; below already use 47 chars. Use the shortest temporary
+                    ;; path possible to avoid hitting the limit.
+                    (setenv "TEMP" "/tmp")
+                    (setenv "TEMPDIR" "/tmp")
+                    (setenv "TMP" "/tmp")
+                    (setenv "TMPDIR" "/tmp")
+
+                    ;; Use tini so that signals are properly handled and
+                    ;; doubly-forked processes get reaped; otherwise,
+                    ;; lei-daemon is kept as a zombie and the testsuite
+                    ;; fails thinking that it didn't quit as it should.
+                    (set-child-subreaper!)
+                    (apply execlp "tini" "--"
+                           "make" "check" test-flags))
+                   (pid
+                    (match (waitpid pid)
+                      ((_ . status)
+                       (unless (zero? status)
+                         (error "`make check' exited with status" status))))))
+                 (format #t "test suite not run~%"))))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -4129,7 +4169,7 @@ Git and exports them in maildir format or to an MDA through a pipe.")
                 (find-files (string-append out "/bin")))))))))
     (native-inputs
      (list ;; For testing.
-           lsof openssl))
+           lsof openssl tini))
     (inputs
      (list bash-minimal
            curl
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 1c408a1520..7259c046ef 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4474,7 +4474,7 @@ parts of it.")
 (define-public openblas
   (package
     (name "openblas")
-    (version "0.3.18")
+    (version "0.3.20")
     (source
      (origin
        (method git-fetch)
@@ -4484,7 +4484,7 @@ parts of it.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "17zdd8asylz2w71hczrz5y344p6d5ds1jn4901maw7zcp3dbk63g"))))
+         "0r4sz3rn68fyc2paq0a04pgfi7iszpm95f6ggbzxpvjzx9qxbcql"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -4543,14 +4543,14 @@ parts of it.")
            (lambda* (#:key inputs #:allow-other-keys)
              ;; Get libgfortran found when building in utest.
              (setenv "FEXTRALIB"
-                     (string-append "-L" (assoc-ref inputs "fortran-lib")
-                                    "/lib")))))))
+                     (string-append
+                      "-L"
+                      (dirname
+                       (search-input-file inputs "/lib/libgfortran.so")))))))))
     (inputs
-     `(("fortran-lib" ,gfortran "lib")))
+     (list `(,gfortran "lib")))
     (native-inputs
-     `(("cunit" ,cunit)
-       ("fortran" ,gfortran)
-       ("perl" ,perl)))
+     (list cunit gfortran perl))
     (home-page "https://www.openblas.net/")
     (synopsis "Optimized BLAS library based on GotoBLAS")
     (description
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 817fee1c71..e5831ee614 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3887,3 +3888,53 @@ reports in two different file formats, plain text and xml.")))
     (description "This plugin provides the capability to build jars.  If you
 would like to sign jars please use the Maven Jarsigner Plugin instead.")
     (license license:asl2.0)))
+
+(define-public maven-doxia-sink-api
+  (package
+    (name "maven-doxia-sink-api")
+    (version "2.0.0-M2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitbox.apache.org/repos/asf/maven-doxia.git")
+                    (commit (string-append "doxia-" version))))
+              (file-name (git-file-name "doxia" version))
+              (sha256
+               (base32
+                "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
+    (build-system ant-build-system)
+    (propagated-inputs
+     (list maven-doxia-parent-pom))
+    (arguments
+     `(#:jar-name "doxia-sink-api.jar"
+       #:source-dir "doxia-sink-api/src/main/java"
+       #:tests? #f ; no tests
+       #:phases (modify-phases %standard-phases
+                  (replace 'install
+                    (install-from-pom "doxia-sink-api/pom.xml")))))
+    (home-page "https://maven.apache.org/doxia/index.html")
+    (synopsis "Generic markup language interface")
+    (description
+     "The @code{Sink} interface is a generic markup language
+interface provided as a Java API.  It contains several methods that
+encapsulate common text syntax.  A start tag is denoted by @code{xxxx()}
+method and a end of tag by @code{xxxx_()} method.")
+    (license license:asl2.0)))
+
+(define maven-doxia-parent-pom
+  (package
+    (inherit maven-doxia-sink-api)
+    (name "maven-doxia-parent-pom")
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'build)
+                  (replace 'install
+                    (install-pom-file "pom.xml")))))
+    (propagated-inputs
+     (list maven-parent-pom-34))
+    (synopsis "Content generation framework")
+    (description "@samp{Doxia} is a content generation framework that provides
+powerful techniques for generating static and dynamic content, supporting a
+variety of markup languages.")))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index d361034721..4038ef0e49 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -1713,7 +1713,7 @@ instant messenger with audio and video chat capabilities.")
 (define-public qtox
   (package
     (name "qtox")
-    (version "1.17.4")
+    (version "1.17.6")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/qTox/qTox/releases"
@@ -1721,7 +1721,7 @@ instant messenger with audio and video chat capabilities.")
                                   "/v" version ".tar.gz"))
               (sha256
                (base32
-                "086hvm0q2vl2lq8zlp8s9sivlic6sg7ga5ixz01hbsyrashvil63"))
+                "1ml8z1xpp3qhip4vkr375jf7y5kc18g0apm91n5am6ricx37c01r"))
               (file-name (string-append name "-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (arguments
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index afd7ff40cf..60cb176320 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2018 nee <nee.git@hidamari.blue>
 ;;; Copyright © 2018, 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2018-2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
 ;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
@@ -2281,7 +2281,7 @@ perform creative live mixes with digital music files.")
 (define-public synthv1
   (package
     (name "synthv1")
-    (version "0.9.25")
+    (version "0.9.26")
     (source (origin
               (method url-fetch)
               (uri
@@ -2289,7 +2289,7 @@ perform creative live mixes with digital music files.")
                               "/synthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "1i16036f9wm52c5pxkllq7ir749jcknbh35i9wcxd5n88p6mzw02"))))
+                "1asikh341f3vblrl8l07yakza80ybs8sid3n2qpsrvigaz3iymcd"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -2299,7 +2299,8 @@ perform creative live mixes with digital music files.")
            alsa-lib
            new-session-manager
            liblo
-           qtbase-5))
+           qtbase-5
+           qtsvg))
     (native-inputs
      (list pkg-config qttools))
     (home-page "https://synthv1.sourceforge.io")
@@ -2312,7 +2313,7 @@ oscillators and stereo effects.")
 (define-public drumkv1
   (package
     (name "drumkv1")
-    (version "0.9.25")
+    (version "0.9.26")
     (source (origin
               (method url-fetch)
               (uri
@@ -2320,7 +2321,7 @@ oscillators and stereo effects.")
                               "/drumkv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0p50b4k4zldagiwxs0micmdbqib46ysipdj8lkxqdv0pysmd72fc"))))
+                "0j05xqgcb7kwnnsgl6i7vbdsfq26chzs4zyq6pl0ipcmw4d82j8i"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -2331,7 +2332,8 @@ oscillators and stereo effects.")
            alsa-lib
            new-session-manager
            liblo
-           qtbase-5))
+           qtbase-5
+           qtsvg))
     (native-inputs
      (list pkg-config qttools))
     (home-page "https://drumkv1.sourceforge.io")
@@ -2344,7 +2346,7 @@ effects.")
 (define-public samplv1
   (package
     (name "samplv1")
-    (version "0.9.25")
+    (version "0.9.26")
     (source (origin
               (method url-fetch)
               (uri
@@ -2352,7 +2354,7 @@ effects.")
                               "/samplv1-" version ".tar.gz"))
               (sha256
                (base32
-                "0d05b03knrwh1zr4p0kcyn58scy6a392f0xxm78cqf0gikd3bw5c"))))
+                "1rqz3hf39hk2m15ihrkn8f5cqgbkvz3rq6r2k35rvn7sgvcq1dli"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -2363,7 +2365,8 @@ effects.")
            alsa-lib
            new-session-manager
            liblo
-           qtbase-5))
+           qtbase-5
+           qtsvg))
     (native-inputs
      (list pkg-config qttools))
     (home-page "https://samplv1.sourceforge.io")
@@ -2376,7 +2379,7 @@ effects.")
 (define-public padthv1
   (package
     (name "padthv1")
-    (version "0.9.25")
+    (version "0.9.26")
     (source (origin
               (method url-fetch)
               (uri
@@ -2384,7 +2387,7 @@ effects.")
                               "/padthv1-" version ".tar.gz"))
               (sha256
                (base32
-                "11fa2794g7dqsiw674wr2m4k0xdw89imqwa8mgms0igskxxbvjka"))))
+                "02pg0g4i65j46hirkc3xn7m2clm8krrafrkwjc1v8rkcdj6q2gw1"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; there are no tests
@@ -2395,7 +2398,8 @@ effects.")
            new-session-manager
            liblo
            fftwf
-           qtbase-5))
+           qtbase-5
+           qtsvg))
     (native-inputs
      (list pkg-config qttools))
     (home-page "https://padthv1.sourceforge.io")
@@ -3858,7 +3862,7 @@ using the beets FetchArt plugin.")
      `(("alsa-lib" ,alsa-lib)
        ("lhasa" ,lhasa)
        ("jack" ,jack-1)
-       ("rtmidi" ,rtmidi)
+       ("rtmidi" ,rtmidi-4.0)
        ("sdl" ,sdl2)
        ("zlib" ,zlib)
        ("zziplib" ,zziplib)))
@@ -4778,7 +4782,7 @@ sample library.")
 (define-public muse-sequencer
   (package
     (name "muse-sequencer")
-    (version "4.0.0")
+    (version "4.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4787,24 +4791,23 @@ sample library.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1gamr9ln10l26wwyin1a4grrqy6h05qzcgp28wsp85yczkpsh02c"))))
+                "1iihjivpkvmdfqf20kcl9k0s1iwlv9p5vpna7c58lbw3573fiyr4"))))
     (build-system qt-build-system)
     (arguments
-     `(#:tests? #f ; there is no test target
-       #:configure-flags
-       (list "-DENABLE_VST_NATIVE=OFF"
-             (string-append "-DCMAKE_EXE_LINKER_FLAGS="
-                            "-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/muse-"
-                            ,(version-major+minor version) "/modules")
-             (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
-                            "-Wl,-rpath="
-                            (assoc-ref %outputs "out") "/lib/muse-"
-                            ,(version-major+minor version) "/modules"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _ (chdir "src"))))))
+     (list
+      #:tests? #f                       ; there is no test target
+      #:configure-flags
+      #~(list "-DENABLE_VST_NATIVE=OFF"
+              (string-append "-DCMAKE_EXE_LINKER_FLAGS="
+                             "-Wl,-rpath=" #$output "/lib/muse-"
+                             #$(version-major+minor version) "/modules")
+              (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
+                             "-Wl,-rpath=" #$output "/lib/muse-"
+                             #$(version-major+minor version) "/modules"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'chdir
+            (lambda _ (chdir "src"))))))
     (inputs
      (list alsa-lib
            dssi
@@ -4821,7 +4824,7 @@ sample library.")
            lrdf
            lv2
            pcre
-           pulseaudio ; required by rtaudio
+           pulseaudio                   ; required by rtaudio
            qtbase-5
            qtsvg
            rtaudio
@@ -6137,7 +6140,7 @@ and as an LV2 plugin.")
       ("pulseaudio" ,pulseaudio)
       ("reproc" ,reproc)
       ("rubberband" ,rubberband)
-      ("rtmidi" ,rtmidi)
+      ("rtmidi" ,rtmidi-4.0)
       ("sdl2" ,sdl2)
       ("xdg-utils" ,xdg-utils)
       ("zstd" ,zstd "lib")))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ffa6d5ae52..8476da0df9 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -49,6 +49,7 @@
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Simon South <simon@simonsouth.net>
 ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -114,6 +115,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages kerberos)
@@ -129,6 +131,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages polkit)
   #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
@@ -547,6 +550,54 @@ It also includes some SCTP-related helper utilities.")
 SCTP-aware kernel (most are).")
     (license license:lgpl2.1+)))
 
+(define-public kismet
+  (package
+    (name "kismet")
+    (version "2022-02")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://www.kismetwireless.net/git/kismet.git")
+                    (commit (string-append "kismet-" version "-R1"))))
+              (file-name (git-file-name name version))
+              (patches (search-patches "kismet-unbundle-boost.patch"))
+              (modules '((guix build utils)))
+              (snippet '(begin
+                          ;; Drop bundled libraries.
+                          (delete-file-recursively "boost")))
+              (sha256
+               (base32
+                "01q86hrgpai433sc65dlnqy91qd26w5dwyp37adszqxfb6d2an1r"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f ;no test suite
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-install
+                 (lambda* _
+                   (substitute* "Makefile.in"
+                     (("-o \\$\\(INSTUSR\\) -g \\$\\(SUIDGROUP\\)") "")
+                     (("-o \\$\\(INSTUSR\\) -g \\$\\(INSTGRP\\)") "")))))))
+    (home-page "https://www.kismetwireless.net/")
+    (native-inputs (list perl pkg-config python python-2))
+    (inputs (list boost
+                  libusb
+                  libpcap
+                  libwebsockets
+                  openssl
+                  protobuf
+                  protobuf-c
+                  sqlite
+                  zlib))
+    (synopsis "Wireless network and device detector")
+    (description
+     "This package provides a wireless network and device detector, sniffer,
+wardriving tool, and WIDS (wireless intrusion detection) framework.  Kismet
+works with Wi-Fi interfaces, Bluetooth interfaces, some SDR
+(software defined radio) hardware like the RTLSDR, and other specialized
+capture hardware")
+    (license license:gpl2+)))
+
 (define-public knockd
   (package
     (name "knockd")
@@ -2772,6 +2823,12 @@ updates to the zebra daemon.")
          #:tests? #f ; No test suite.
          #:phases
          (modify-phases %standard-phases
+           (add-after 'unpack 'use-source-date-epoch-in-manpages
+             ;; For reproducible builds
+             (lambda _
+               (substitute* "Makefile"
+                 (("date --iso-8601")
+                  "date --iso-8601 --utc --date=@$(SOURCE_DATE_EPOCH)"))))
            (delete 'configure) ; No ./configure script.
            (add-before 'build 'patch-paths
              (lambda _
@@ -3221,7 +3278,7 @@ Ethernet and TAP interfaces is supported.  Packet capture is also supported.")
 (define-public hcxtools
   (package
     (name "hcxtools")
-    (version "5.2.0")
+    (version "6.2.7")
     (source
      (origin
        (method git-fetch)
@@ -3229,19 +3286,22 @@ Ethernet and TAP interfaces is supported.  Packet capture is also supported.")
              (url "https://github.com/ZerBea/hcxtools")
              (commit version)))
        (sha256
-        (base32 "0k2qlq9hz5zc21nyc6yrnfqzga7hydn5mm0x3rpl2fhkwl81lxcn"))
+        (base32 "0460dxbc04w60l3g06rk007yyb6qprgyii59y2zdki0vy7q63m8b"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
-    (inputs
-     (list curl libpcap openssl zlib))
+    (native-inputs (list pkg-config))
+    (inputs (list curl libpcap openssl zlib))
     (arguments
-     `(#:make-flags
-       (list ,(string-append "CC=" (cc-for-target))
-             (string-append "INSTALLDIR=" (assoc-ref %outputs "out") "/bin"))
-       #:tests? #f                      ; no test suite
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     (list #:make-flags
+           #~(list (string-append "CC="
+                                  #$(cc-for-target)) "LDFLAGS+=-lcrypto"
+                   "LDFLAGS+=-lcurl" "LDFLAGS+=-lz"
+                   (string-append "PREFIX="
+                                  #$output))
+           #:tests? #f                            ;no test suite
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure))))
     (home-page "https://github.com/ZerBea/hcxtools")
     (synopsis "Capture wlan traffic to hashcat and John the Ripper")
     (description
@@ -3359,7 +3419,7 @@ communication over HTTP.")
 (define-public restinio
   (package
     (name "restinio")
-    (version "0.6.14")
+    (version "0.6.15")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3368,7 +3428,7 @@ communication over HTTP.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0j44mglsljwkw49583hcsrl5ck2g56n9srnm10kpbsz2dx5apx98"))))
+                "1f8d5nfm8jqhspzsslwb1b7j4glipz31i9vszrcnkx3clc39nj2n"))))
     (build-system cmake-build-system)
     (inputs                             ; TODO: Need to force-keep references on some inputs, e.g. boost.
      (list zlib
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 093835d370..4569c526ab 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3197,14 +3197,14 @@ OCaml code.")
 (define-public omake
   (package
     (name "omake")
-    (version "0.10.3")
+    (version "0.10.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://download.camlcity.org/download/"
                                   "omake-" version ".tar.gz"))
               (sha256
                (base32
-                "07bdg1h5i7qnlv9xq81ad5hfypl10hxm771h4rjyl5cn8plhfcgz"))
+                "1i7pcv53kqplrbdx9mllrhbv4j57zf87xwq18r16cvn1lbc6mqal"))
               (patches (search-patches "omake-fix-non-determinism.patch"))))
     (build-system ocaml-build-system)
     (arguments
@@ -3697,10 +3697,10 @@ writing to these structures, and they are accessed via the Bigarray module.")
     (description "Hex is a minimal library providing hexadecimal converters.")
     (license license:isc)))
 
-(define-public ocaml4.07-ezjsonm
+(define-public ocaml-ezjsonm
   (package
-    (name "ocaml4.07-ezjsonm")
-    (version "1.1.0")
+    (name "ocaml-ezjsonm")
+    (version "1.3.0")
     (source
      (origin
        (method git-fetch)
@@ -3709,20 +3709,13 @@ writing to these structures, and they are accessed via the Bigarray module.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "064j9pzy01p3dv947khqyn7fkjbs3jmrqsg8limb4abnlaqxxs2s"))))
+        (base32 "004knljxqxn9zq0rnq7q7wxl4nwlzydm8p9f5cqkl8il5yl5zkjm"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "ezjsonm"
-       #:test-target "."
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib
-       #:dune ,ocaml4.07-dune))
-    (native-inputs
-     `(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest))))
-    (propagated-inputs
-     `(("ocaml-hex" ,(package-with-ocaml4.07 ocaml-hex))
-       ("ocaml-jsonm" ,(package-with-ocaml4.07 ocaml-jsonm))
-       ("ocaml-sexplib" ,(package-with-ocaml4.07 ocaml-sexplib))))
+       #:test-target "."))
+    (native-inputs (list ocaml-alcotest js-of-ocaml node))
+    (propagated-inputs (list ocaml-jsonm ocaml-uutf ocaml-sexplib0 ocaml-hex))
     (home-page "https://github.com/mirage/ezjsonm/")
     (synopsis "Read and write JSON data")
     (description "Ezjsonm provides more convenient (but far less flexible) input
@@ -3800,7 +3793,7 @@ JSON.")
 (define-public ocaml-easy-format
   (package
     (name "ocaml-easy-format")
-    (version "1.3.3")
+    (version "1.3.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -3809,7 +3802,7 @@ JSON.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1dl5faibbb5nm3v70ix7k6208yib1954x20nmw3g56wff5vdlzid"))))
+                "0xap6az4yyb60vb1jfs640wl3cf4njv78p538x9ihhf9f6ij3nh8"))))
     (build-system dune-build-system)
     (arguments
      `(#:package "easy-format"
@@ -3828,9 +3821,9 @@ JSON.")
 Format module of the OCaml standard library.")
     (license license:bsd-3)))
 
-(define-public ocaml4.07-piqilib
+(define-public ocaml-piqilib
   (package
-    (name "ocaml4.07-piqilib")
+    (name "ocaml-piqilib")
     (version "0.6.15")
     (source
      (origin
@@ -3848,24 +3841,20 @@ Format module of the OCaml standard library.")
          (add-before 'configure 'fix-ocamlpath
            (lambda _
              (substitute* '("Makefile" "make/Makefile.ocaml")
-               (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):"))
-             #t))
+               (("OCAMLPATH := ") "OCAMLPATH := $(OCAMLPATH):"))))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (substitute* "make/OCamlMakefile"
                  (("/bin/sh") (which "bash")))
                (invoke "./configure" "--prefix" out "--ocaml-libdir"
-                       (string-append out "/lib/ocaml/site-lib")))
-             #t))
+                       (string-append out "/lib/ocaml/site-lib")))))
        (add-after 'build 'build-ocaml
          (lambda* (#:key outputs #:allow-other-keys)
-           (invoke "make" "ocaml")
-           #t))
+           (invoke "make" "ocaml")))
        (add-after 'install 'install-ocaml
          (lambda* (#:key outputs #:allow-other-keys)
-           (invoke "make" "ocaml-install")
-           #t))
+           (invoke "make" "ocaml-install")))
        (add-after 'install-ocaml 'link-stubs
          (lambda* (#:key outputs #:allow-other-keys)
            (let* ((out (assoc-ref outputs "out"))
@@ -3873,17 +3862,14 @@ Format module of the OCaml standard library.")
                   (lib (string-append out "/lib/ocaml/site-lib/piqilib")))
              (mkdir-p stubs)
              (symlink (string-append lib "/dllpiqilib_stubs.so")
-                      (string-append stubs "/dllpiqilib_stubs.so"))
-             #t))))
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+                      (string-append stubs "/dllpiqilib_stubs.so"))))))))
     (native-inputs
      (list which))
     (propagated-inputs
-     `(("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm))
-       ("ocaml-sedlex" ,(package-with-ocaml4.07 ocaml-sedlex))
-       ("ocaml-easy-format" ,(package-with-ocaml4.07 ocaml-easy-format))
-       ("ocaml-base64" ,(package-with-ocaml4.07 ocaml-base64))))
+     `(("ocaml-xmlm" ,ocaml-xmlm)
+       ("ocaml-sedlex" ,ocaml-sedlex)
+       ("ocaml-easy-format" ,ocaml-easy-format)
+       ("ocaml-base64" ,ocaml-base64)))
     (home-page "http://piqi.org")
     (synopsis "Data serialization and conversion library")
     (description "Piqilib is the common library used by the piqi command-line
@@ -3963,9 +3949,9 @@ and 4 (random based) according to RFC 4122.")
     (description "OCamlgraph is a generic graph library for OCaml.")
     (license license:lgpl2.1)))
 
-(define-public ocaml4.07-piqi
+(define-public ocaml-piqi
   (package
-    (name "ocaml4.07-piqi")
+    (name "ocaml-piqi")
     (version "0.7.7")
     (source (origin
               (method git-fetch)
@@ -3989,15 +3975,13 @@ and 4 (random based) according to RFC 4122.")
            (lambda _
              (for-each make-file-writable (find-files "."))
              #t))
-         (delete 'configure))
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
+         (delete 'configure))))
     (native-inputs
      (list which protobuf)) ; for tests
     (propagated-inputs
-     `(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num))
-       ("ocaml-piqilib" ,ocaml4.07-piqilib)
-       ("ocaml-stdlib-shims" ,(package-with-ocaml4.07 ocaml-stdlib-shims))))
+     `(("ocaml-num" ,ocaml-num)
+       ("ocaml-piqilib" ,ocaml-piqilib)
+       ("ocaml-stdlib-shims" ,ocaml-stdlib-shims)))
     (home-page "https://github.com/alavrik/piqi-ocaml")
     (synopsis "Protocol serialization system for OCaml")
     (description "Piqi is a multi-format data serialization system for OCaml.
@@ -4029,12 +4013,12 @@ XML and Protocol Buffers formats.")
       ("ocaml-bitstring" ,(package-with-ocaml4.07 ocaml-bitstring))
       ("ocaml-cmdliner" ,(package-with-ocaml4.07 ocaml-cmdliner))
       ("ocaml-core-kernel" ,ocaml4.07-core-kernel)
-      ("ocaml-ezjsonm" ,ocaml4.07-ezjsonm)
+      ("ocaml-ezjsonm" ,(package-with-ocaml4.07 ocaml-ezjsonm))
       ("ocaml-fileutils" ,(package-with-ocaml4.07 ocaml-fileutils))
       ("ocaml-frontc" ,(package-with-ocaml4.07 ocaml-frontc))
       ("ocaml-graph" ,(package-with-ocaml4.07 ocaml-graph))
       ("ocaml-ocurl" ,(package-with-ocaml4.07 ocaml-ocurl))
-      ("ocaml-piqi" ,ocaml4.07-piqi)
+      ("ocaml-piqi" ,(package-with-ocaml4.07 ocaml-piqi))
       ("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
       ("ocaml-utop" ,ocaml4.07-utop)
       ("ocaml-uuidm" ,(package-with-ocaml4.07 ocaml-uuidm))
@@ -4244,7 +4228,7 @@ instead of bindings to a C library.")
 (define-public ocaml-utop
   (package
     (name "ocaml-utop")
-    (version "2.9.1")
+    (version "2.9.2")
     (source
      (origin
        (method git-fetch)
@@ -4253,7 +4237,7 @@ instead of bindings to a C library.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1pmsmi0j4gb1vsd69j0bppkv79wbwz5xcffq78n1i2ibhff6r4j0"))))
+        (base32 "0z5anakgbndhyzbi570pfs2fy69bnmgq9jflgfbly2rhbhwa7wgj"))))
     (build-system dune-build-system)
     (arguments
      `(#:test-target "."))
@@ -4402,7 +4386,7 @@ OCaml projects that contain C stubs.")
 (define-public ocaml-tsdl
   (package
     (name "ocaml-tsdl")
-    (version "0.9.7")
+    (version "0.9.9")
     (home-page "https://erratique.ch/software/tsdl")
     (source (origin
               (method url-fetch)
@@ -4411,7 +4395,7 @@ OCaml projects that contain C stubs.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1zwv0ixkigh1gzk5n49rwvz2f2m62jdkkqg40j7dclg4gri7691f"))))
+                "1m565jgfanijjzp64c1rylahkpmrrb03ywj202j49n06nvwp788s"))))
     (build-system ocaml-build-system)
     (arguments
      `(#:build-flags '("build")
@@ -5024,11 +5008,17 @@ exclusion algorithms are typical examples of such systems.")
 (define-public ocaml-sexplib0
   (package
     (name "ocaml-sexplib0")
-    (version "0.15.0")
+    (version "0.15.1")
     (home-page "https://github.com/janestreet/sexplib0")
-    (source
-     (janestreet-origin "sexplib0" version
-                        "1fpg991n578m11r0ki4als4c76s3sp703b4khivx40v48402qill"))
+    (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
+                "05m93g4m4jhj1v8pazg3s2ydcfymr3h4476yjhdca5fm4sn35bg8"))))
     (build-system dune-build-system)
     (arguments `(#:tests? #f)) ;no tests
     (properties `((ocaml4.07-variant . ,(delay ocaml4.07-sexplib0))))
@@ -7996,7 +7986,7 @@ defined in OCaml 4.12.0.")
 (define-public ocamlformat
   (package
     (name "ocamlformat")
-    (version "0.21.0")
+    (version "0.22.4")
     (source
       (origin
         (method git-fetch)
@@ -8006,12 +7996,16 @@ defined in OCaml 4.12.0.")
         (file-name (git-file-name name version))
         (sha256
           (base32
-            "10vy102a0isd8cg94y61pm4qfgy74d6003dw0qn0bdmbd19r5071"))))
+            "171lq3vx4y8xj4by5zy93isx8nhg6ysxg1hxmkqkq16fdaiz8mnc"))))
     (build-system dune-build-system)
     (arguments
      '(#:package "ocamlformat"
        #:phases
        (modify-phases %standard-phases
+         ;; Tests related to other packages
+         (add-after 'unpack 'remove-unrelated-tests
+           (lambda _
+             (delete-file-recursively "test/rpc")))
          (add-after 'unpack 'fix-test-format
            (lambda _
              (substitute* "test/cli/repl_file_errors.t/run.t"
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index 4d146468a3..d579442902 100644
--- a/gnu/packages/orange.scm
+++ b/gnu/packages/orange.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -102,13 +102,13 @@ GUI based workflow.  It is primarily used in the Orange framework.")
 (define-public orange
   (package
     (name "orange")
-    (version "3.31.1")
+    (version "3.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "Orange3" version))
        (sha256
-        (base32 "0jqay46nysgfxldik7f6mfi8iylai2gwfpq60vklrfi1rhqf3pn6"))))
+        (base32 "0pxjwisc209cdgpqlqazc2vlmr0iqz8ry862w7jx95zic54d9p5l"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index ad3a6db9af..79f7eec384 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1650,8 +1650,8 @@ in an isolated environment, in separate namespaces.")
     (license license:gpl3+)))
 
 (define-public nar-herder
-  (let ((commit "a24fbd108f75c8f27d2f68f2d1a051e2f3f3e191")
-        (revision "7"))
+  (let ((commit "042f49e5fb52ea844ed5d29c17b26fbc8ad49f0e")
+        (revision "8"))
     (package
       (name "nar-herder")
       (version (git-version "0" revision commit))
@@ -1662,7 +1662,7 @@ in an isolated environment, in separate namespaces.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1jm6ks2sjcwih7j4wnp252qd73n8pydg7sd000ismpvg5p21l7fg"))
+                  "1i9vwjdvkchwndjikqq3j73x0mvp3ny63s62ixql70yhpdgz5l69"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 5502b415a4..ec785cedf7 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
 ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -166,7 +166,7 @@ when jobs finish.")
 (define-public slurm
   (package
     (name "slurm")
-    (version "21.08.8")
+    (version "22.05.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -174,7 +174,7 @@ when jobs finish.")
                     version ".tar.bz2"))
               (sha256
                (base32
-                "1sjln54idc9rhg8f2nvm38sgs6fncncyzslas8ixy65pqz2hphbf"))
+                "0f3hhlki8g7slllsnyj1qikbsvr62i0hig85lcdcfnmsagzlhbyi"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -262,6 +262,20 @@ by managing a queue of pending work.")
 ;; As noted in the link, YY.MM is the release scheme, and the 'maintenance'
 ;; digit does not introduce incompatibilities.
 
+(define-public slurm-21.08
+  (package
+    (inherit slurm)
+    (version "21.08.8")
+    (source (origin
+              (inherit (package-source slurm))
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.schedmd.com/slurm/slurm-"
+                    version ".tar.bz2"))
+              (sha256
+               (base32
+                "1sjln54idc9rhg8f2nvm38sgs6fncncyzslas8ixy65pqz2hphbf"))))))
+
 (define-public slurm-20.11
   (package
     (inherit slurm)
@@ -327,7 +341,7 @@ by managing a queue of pending work.")
 (define-public slurm-drmaa
   (package
     (name "slurm-drmaa")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -335,7 +349,7 @@ by managing a queue of pending work.")
                     version "/slurm-drmaa-" version ".tar.gz"))
               (sha256
                (base32
-                "0dn8ypqxdaq3k4jqwwx7msckxnmr6n2z5j68yffp50yy07ajbzjv"))))
+                "1fn3p4wjj0sgvx0isy3hiwi35vhxa2n2ksq5cn9sq2hg7yyb2phl"))))
     (build-system gnu-build-system)
     (arguments `(#:tests? #f)) ; The tests require "bats".
     (inputs
diff --git a/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch b/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
deleted file mode 100644
index d514ac33a0..0000000000
--- a/gnu/packages/patches/alpine-fix-privacy-policy-crash.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-X-Git-Url: https://repo.or.cz/alpine.git/blobdiff_plain/fb2217ac67706e4cbef69bea41041e2fb8b910e9..3ee981816abfb7d47ffc0ac522fff002b5749b72:/alpine/help.c
-
-diff --git a/alpine/help.c b/alpine/help.c
-index 4f1bf46..e9c7b34 100644
---- a/alpine/help.c
-+++ b/alpine/help.c
-@@ -36,6 +36,7 @@ static char rcsid[] = "$Id: help.c 1032 2008-04-11 00:30:04Z hubert@u.washington
- #include "../pith/detoken.h"
- #include "../pith/list.h"
- #include "../pith/margin.h"
-+#include "../pith/busy.h"
- 
- 
- typedef struct _help_scroll {
-@@ -135,10 +136,12 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
-     is_external = 0;
- 
-     if(shown_text && *shown_text && !struncmp(*shown_text, "x-alpine-http:", 14)){
--	int status;
-+	int status, we_cancel = 0;
-+
-+	we_cancel = busy_cue(_("Retrieving help text"), NULL, 1);
- 	HTTPSTREAM *stream = http_open(*shown_text + 14);
- 	if(stream) help_text = http_get(stream, NULL);
--	status = stream->status ? stream->status->code : -1;
-+	status = stream && stream->status ? stream->status->code : -1;
- 	if(stream) http_close(stream);
- 	if(status != HTTP_OK){
- 	    shown_text = NO_HELP;
-@@ -165,7 +168,8 @@ helper_internal(HelpType text, char *frag, char *title, int flags)
- 		*rv = NULL;
- 	    }
- 	}
--
-+	if(we_cancel)
-+	   cancel_busy_cue(-1);
-     }
- 
-     if(F_ON(F_BLANK_KEYMENU,ps_global)){
diff --git a/gnu/packages/patches/epiphany-update-libportal-usage.patch b/gnu/packages/patches/epiphany-update-libportal-usage.patch
deleted file mode 100644
index 0d8ea045fb..0000000000
--- a/gnu/packages/patches/epiphany-update-libportal-usage.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Fix for epiphany with libportal-0.5.
-
-This patch was adapted from upstream
-https://gitlab.gnome.org/GNOME/epiphany/-/commit/e4d259f614f75c26ad0d2094f4f569ffd1bc06d1
-
-diff --git a/lib/ephy-flatpak-utils.c b/lib/ephy-flatpak-utils.c
-index 6fc9a5dec17a63c0660cbc1d95103c8f77231d30..0fd90b3f178392930e812a8391fd81bf1371b8bf 100644
---- a/lib/ephy-flatpak-utils.c
-+++ b/lib/ephy-flatpak-utils.c
-@@ -29,7 +29,7 @@
- #include <gio/gio.h>
- #include <gio/gunixfdlist.h>
- #if USE_LIBPORTAL
--#include <libportal/portal-gtk3.h>
-+#include <libportal-gtk3/portal-gtk3.h>
- #endif
- #include <string.h>
- #include <sys/stat.h>
-diff --git a/lib/meson.build b/lib/meson.build
-index 264f9c5fb66268fc248f780b8d1c06c8291f856d..db0a0557f0ae634d7fb95e57aba0cd901ca4d6c1 100644
---- a/lib/meson.build
-+++ b/lib/meson.build
-@@ -66,6 +66,7 @@ libephymisc_deps = [
-   libxml_dep,
-   m_dep,
-   portal_dep,
-+  portal_gtk_dep,
-   sqlite3_dep,
-   webkit2gtk_dep
- ]
-diff --git a/meson.build b/meson.build
-index 0b9f862b22a23619289342ec39fa0a0274558c25..4285a975004e48366789a4e66f8b23f3af05a636 100644
---- a/meson.build
-+++ b/meson.build
-@@ -95,7 +95,8 @@ libhandy_dep = dependency('libhandy-1', version: '>= 1.5.0')
- libsecret_dep = dependency('libsecret-1', version: '>= 0.19.0')
- libxml_dep = dependency('libxml-2.0', version: '>= 2.6.12')
- nettle_dep = dependency('nettle', version: nettle_requirement)
--portal_dep = dependency('libportal', version: '>= 0.0.2', required: get_option('libportal'))
-+portal_dep = dependency('libportal', version: '>= 0.5', required: get_option('libportal'))
-+portal_gtk_dep = dependency('libportal-gtk3', version: '>= 0.5', required: get_option('libportal'))
- sqlite3_dep = dependency('sqlite3', version: '>= 3.22')
- 
- if get_option('soup2').enabled()
-@@ -108,7 +109,7 @@ else
-   webkit2gtk_web_extension_dep = dependency('webkit2gtk-web-extension-4.1', version: webkitgtk_requirement)
- endif
- 
--conf.set10('USE_LIBPORTAL', portal_dep.found())
-+conf.set10('USE_LIBPORTAL', portal_dep.found() and portal_gtk_dep.found())
- 
- webkit_revision = webkit2gtk_dep.get_variable(pkgconfig : 'revision', default_value : '')
- if webkit_revision == 'tarball'
diff --git a/gnu/packages/patches/fplll-std-fenv.patch b/gnu/packages/patches/fplll-std-fenv.patch
deleted file mode 100644
index aa2438f0c9..0000000000
--- a/gnu/packages/patches/fplll-std-fenv.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-See https://github.com/fplll/fplll/issues/444
-
---- fplll-5.3.3-checkout.old/fplll/enum/enumerate_base.h	2020-09-23 13:55:27.833769823 +0200
-+++ fplll-5.3.3-checkout/fplll/enum/enumerate_base.h	2020-09-23 13:56:14.313771769 +0200
-@@ -127,10 +127,10 @@
-   int rounding_backup;
-   void save_rounding()
-   {
--    rounding_backup = std::fegetround();
--    std::fesetround(FE_TONEAREST);
-+    rounding_backup = fegetround();
-+    fesetround(FE_TONEAREST);
-   }
--  void restore_rounding() { std::fesetround(rounding_backup); }
-+  void restore_rounding() { fesetround(rounding_backup); }
- 
-   inline bool next_pos_up()
-   {
diff --git a/gnu/packages/patches/java-commons-lang-fix-dependency.patch b/gnu/packages/patches/java-commons-lang-fix-dependency.patch
new file mode 100644
index 0000000000..4e0d42d2ed
--- /dev/null
+++ b/gnu/packages/patches/java-commons-lang-fix-dependency.patch
@@ -0,0 +1,38 @@
+Prevent java-commons-lang3 from depending on junit-bom when used with
+maven.
+
+From 5c15b04ff9d05235460ea58f303fcf3502a943f2 Mon Sep 17 00:00:00 2001
+From: "Artyom V. Poptsov" <poptsov.artyom@gmail.com>
+Date: Mon, 13 Jun 2022 09:25:42 +0300
+Subject: [PATCH] pom.xml: Remove dependency on 'junit-bom'
+
+---
+ pom.xml | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/pom.xml b/pom.xml
+index 167a85a47..6cd9be57b 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -513,18 +513,6 @@
+     </contributor>
+   </contributors>
+ 
+-  <dependencyManagement>
+-    <dependencies>
+-      <dependency>
+-        <groupId>org.junit</groupId>
+-        <artifactId>junit-bom</artifactId>
+-        <version>5.7.1</version>
+-        <type>pom</type>
+-        <scope>import</scope>
+-      </dependency>
+-    </dependencies>
+-  </dependencyManagement>
+-
+   <!-- Lang should depend on very little -->
+   <dependencies>
+     <!-- testing -->
+-- 
+2.25.1
+
diff --git a/gnu/packages/patches/kismet-unbundle-boost.patch b/gnu/packages/patches/kismet-unbundle-boost.patch
new file mode 100644
index 0000000000..06e028bb23
--- /dev/null
+++ b/gnu/packages/patches/kismet-unbundle-boost.patch
@@ -0,0 +1,104 @@
+From 170ed96fe53531f93cdbca184faeda4bdf457169 Mon Sep 17 00:00:00 2001
+From: Petr Hodina <phodina@protonmail.com>
+Date: Tue, 7 Jun 2022 11:34:29 +0200
+Subject: [PATCH] Unbundle boost.
+
+
+diff --git a/globalregistry.h b/globalregistry.h
+index 1974f54..3d97364 100644
+--- a/globalregistry.h
++++ b/globalregistry.h
+@@ -34,7 +34,7 @@
+ #include "util.h"
+ #include "uuid.h"
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ 
+ class global_registry;
+ 
+diff --git a/gpsgpsd_v3.h b/gpsgpsd_v3.h
+index 77acb14..8cb3cd4 100644
+--- a/gpsgpsd_v3.h
++++ b/gpsgpsd_v3.h
+@@ -25,7 +25,7 @@
+ #include "kis_gps.h"
+ #include "timetracker.h"
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ 
+ using boost::asio::ip::tcp;
+ 
+diff --git a/gpsnmea_v2.h b/gpsnmea_v2.h
+index d761fd3..7518b94 100644
+--- a/gpsnmea_v2.h
++++ b/gpsnmea_v2.h
+@@ -28,7 +28,7 @@
+ #define ASIO_HAS_STD_CHRONO
+ #define ASIO_HAS_MOVE
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ 
+ // Generic NMEA parser for GPS
+ 
+diff --git a/gpsserial_v3.h b/gpsserial_v3.h
+index c9f633f..2fa9acb 100644
+--- a/gpsserial_v3.h
++++ b/gpsserial_v3.h
+@@ -29,7 +29,7 @@
+ #define ASIO_HAS_STD_CHRONO
+ #define ASIO_HAS_MOVE
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ 
+ // NMEA serial-attached GPS
+ // Implemented using ASIO serial
+diff --git a/gpstcp_v2.h b/gpstcp_v2.h
+index 75ec2e9..ab46216 100644
+--- a/gpstcp_v2.h
++++ b/gpstcp_v2.h
+@@ -29,7 +29,7 @@
+ #define ASIO_HAS_STD_CHRONO
+ #define ASIO_HAS_MOVE
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ 
+ using boost::asio::ip::tcp;
+ 
+diff --git a/kis_external.h b/kis_external.h
+index 217f18a..af397b5 100644
+--- a/kis_external.h
++++ b/kis_external.h
+@@ -42,7 +42,7 @@
+ #include "kis_external_packet.h"
+ #include "kis_net_beast_httpd.h"
+ 
+-#include "boost/asio.hpp"
++#include <boost/asio.hpp>
+ using boost::asio::ip::tcp;
+ 
+ #include <google/protobuf/message_lite.h>
+diff --git a/kis_net_beast_httpd.h b/kis_net_beast_httpd.h
+index 355996c..989745e 100644
+--- a/kis_net_beast_httpd.h
++++ b/kis_net_beast_httpd.h
+@@ -28,9 +28,9 @@
+ #include <thread>
+ #include <unordered_map>
+ 
+-#include "boost/asio.hpp"
+-#include "boost/beast.hpp"
+-#include "boost/optional.hpp"
++#include <boost/asio.hpp>
++#include <boost/beast.hpp>
++#include <boost/optional.hpp>
+ 
+ #include "entrytracker.h"
+ #include "future_chainbuf.h"
+-- 
+2.35.1
+
diff --git a/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch b/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
deleted file mode 100644
index f6bc639f33..0000000000
--- a/gnu/packages/patches/llvm-roc-3.0.0-add_libraries.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files
-
-diff -Naur a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
---- a/clang/lib/Basic/CMakeLists.txt	2019-12-28 07:42:49.119055933 +0100
-+++ b/clang/lib/Basic/CMakeLists.txt	2019-12-28 07:42:13.265056070 +0100
-@@ -2,6 +2,7 @@
-   Core
-   MC
-   Support
-+  Option
-   )
- 
- find_first_existing_vc_file("${LLVM_MAIN_SRC_DIR}" llvm_vc)
-diff -Naur a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
---- a/clang/lib/Driver/CMakeLists.txt	2019-12-28 07:41:39.521056199 +0100
-+++ b/clang/lib/Driver/CMakeLists.txt	2019-12-28 07:40:23.998056487 +0100
-@@ -79,4 +79,5 @@
-   LINK_LIBS
-   clangBasic
-   ${system_libs}
-+  pthread
-   )
diff --git a/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch b/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
deleted file mode 100644
index f1762a558b..0000000000
--- a/gnu/packages/patches/llvm-roc-4.2.0-add_Object.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Taken from https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files
-
-diff --color -uprN orig/lib/Target/AMDGPU/Disassembler/CMakeLists.txt llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
---- a/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt	2021-06-14 11:57:54.222796911 +0800
-+++ b/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt	2021-06-14 11:58:35.206796875 +0800
-@@ -11,6 +11,7 @@ add_llvm_component_library(LLVMAMDGPUDis
-   MC
-   MCDisassembler
-   Support
-+  Object
- 
-   ADD_TO_COMPONENT
-   AMDGPU
diff --git a/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch b/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch
new file mode 100644
index 0000000000..d6ed3aef93
--- /dev/null
+++ b/gnu/packages/patches/llvm-roc-5.0.0-linkdl.patch
@@ -0,0 +1,15 @@
+Taken from the Gentoo patch:
+https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/llvm-roc/files/llvm-roc-5.0.0-linkdl.patch
+
+LLVMOffloadArch should link libdl to fix undefined symbol 'dlsym' when linking
+
+--- a/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt
++++ b/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt
+@@ -3,6 +3,7 @@ add_llvm_tool(offload-arch
+   ${CMAKE_CURRENT_SOURCE_DIR}/offload-arch.cpp
+   DEPENDS generated-table LLVMOffloadArch
+ )
++target_link_libraries(LLVMOffloadArch PRIVATE ${CMAKE_DL_LIBS})
+ target_link_libraries(offload-arch PRIVATE LLVMOffloadArch)
+ 
+ if(CMAKE_HOST_UNIX)
diff --git a/gnu/packages/patches/mathjax-3.1.2-no-a11y.patch b/gnu/packages/patches/mathjax-3.1.2-no-a11y.patch
new file mode 100644
index 0000000000..97bd82c536
--- /dev/null
+++ b/gnu/packages/patches/mathjax-3.1.2-no-a11y.patch
@@ -0,0 +1,281 @@
+commit 9bb6f1e11264fb075bfa70fa3684f10a32414594
+Author: Lars-Dominik Braun <lars@6xq.net>
+Date:   Wed Dec 1 14:28:06 2021 +0100
+
+    guix: Remove accessibility.
+    
+    We cannot build speech-rule-engine from source and thus all dependents
+    must be removed. This affects all a11y modules and menu items, which
+    may try to load components.
+
+diff --git a/components/src/dependencies.js b/components/src/dependencies.js
+index f9be6f93..822f8fb6 100644
+--- a/components/src/dependencies.js
++++ b/components/src/dependencies.js
+@@ -16,6 +16,3 @@
+ export const dependencies = {
+-  'a11y/semantic-enrich': ['input/mml', '[sre]'],
+-  'a11y/complexity': ['a11y/semantic-enrich'],
+-  'a11y/explorer': ['a11y/semantic-enrich', 'ui/menu'],
+   '[tex]/all-packages': ['input/tex-base'],
+   '[tex]/action': ['input/tex-base', '[tex]/newcommand'],
+@@ -58,6 +55,5 @@ export const dependencies = {
+ export const paths = {
+   tex: '[mathjax]/input/tex/extensions',
+-  sre: '[mathjax]/sre/' + (typeof window === 'undefined' ? 'sre-node' : 'sre_browser')
+ };
+ 
+ const allPackages = [
+diff --git a/components/src/mml-chtml/mml-chtml.js b/components/src/mml-chtml/mml-chtml.js
+index c0bd18ee..a283a1ab 100644
+--- a/components/src/mml-chtml/mml-chtml.js
++++ b/components/src/mml-chtml/mml-chtml.js
+@@ -5,5 +5,4 @@ import '../input/mml/mml.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/mml-chtml/preload.js b/components/src/mml-chtml/preload.js
+index e3f202f7..3699570e 100644
+--- a/components/src/mml-chtml/preload.js
++++ b/components/src/mml-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/mml',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/mml-svg/mml-svg.js b/components/src/mml-svg/mml-svg.js
+index 172b2433..23b66e69 100644
+--- a/components/src/mml-svg/mml-svg.js
++++ b/components/src/mml-svg/mml-svg.js
+@@ -5,5 +5,4 @@ import '../input/mml/mml.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/mml-svg/preload.js b/components/src/mml-svg/preload.js
+index 3cb47d42..89f6b9f9 100644
+--- a/components/src/mml-svg/preload.js
++++ b/components/src/mml-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/mml',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/source.js b/components/src/source.js
+index ba6d6835..02ecf18d 100644
+--- a/components/src/source.js
++++ b/components/src/source.js
+@@ -62,11 +62,5 @@ export const source = {
+   'output/chtml/fonts/tex': `${src}/output/chtml/fonts/tex/tex.js`,
+   'output/svg': `${src}/output/svg/svg.js`,
+   'output/svg/fonts/tex': `${src}/output/svg/fonts/tex/tex.js`,
+-  'a11y/assistive-mml': `${src}/a11y/assistive-mml/assistive-mml.js`,
+-  'a11y/semantic-enrich': `${src}/a11y/semantic-enrich/semantic-enrich.js`,
+-  'a11y/complexity': `${src}/a11y/complexity/complexity.js`,
+-  'a11y/explorer': `${src}/a11y/explorer/explorer.js`,
+-  '[sre]': (typeof window === 'undefined' ? `${src}/../../js/a11y/sre-node.js` :
+-            `${src}/../../node_modules/speech-rule-engine/lib/sre_browser.js`),
+   'ui/menu': `${src}/ui/menu/menu.js`,
+   'ui/safe': `${src}/ui/safe/safe.js`,
+diff --git a/components/src/tex-chtml-full/preload.js b/components/src/tex-chtml-full/preload.js
+index 76c81c92..0eb3a8e2 100644
+--- a/components/src/tex-chtml-full/preload.js
++++ b/components/src/tex-chtml-full/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex-full',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-chtml-full/tex-chtml-full.js b/components/src/tex-chtml-full/tex-chtml-full.js
+index 12291be9..c3f59e6b 100644
+--- a/components/src/tex-chtml-full/tex-chtml-full.js
++++ b/components/src/tex-chtml-full/tex-chtml-full.js
+@@ -5,5 +5,4 @@ import '../input/tex-full/tex-full.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-chtml/preload.js b/components/src/tex-chtml/preload.js
+index 89f110c5..5dae092f 100644
+--- a/components/src/tex-chtml/preload.js
++++ b/components/src/tex-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-chtml/tex-chtml.js b/components/src/tex-chtml/tex-chtml.js
+index 8d98865e..4d100a48 100644
+--- a/components/src/tex-chtml/tex-chtml.js
++++ b/components/src/tex-chtml/tex-chtml.js
+@@ -5,5 +5,4 @@ import '../input/tex/tex.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-mml-chtml/preload.js b/components/src/tex-mml-chtml/preload.js
+index 7adb6a3b..3945370f 100644
+--- a/components/src/tex-mml-chtml/preload.js
++++ b/components/src/tex-mml-chtml/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex', 'input/mml',
+   'output/chtml', 'output/chtml/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-mml-chtml/tex-mml-chtml.js b/components/src/tex-mml-chtml/tex-mml-chtml.js
+index 4167bd59..0b068dc6 100644
+--- a/components/src/tex-mml-chtml/tex-mml-chtml.js
++++ b/components/src/tex-mml-chtml/tex-mml-chtml.js
+@@ -6,5 +6,4 @@ import '../input/mml/mml.js';
+ import '../output/chtml/chtml.js';
+ import '../output/chtml/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-mml-svg/preload.js b/components/src/tex-mml-svg/preload.js
+index 69d6a2c5..bad39af1 100644
+--- a/components/src/tex-mml-svg/preload.js
++++ b/components/src/tex-mml-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex', 'input/mml',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-mml-svg/tex-mml-svg.js b/components/src/tex-mml-svg/tex-mml-svg.js
+index acff78dd..3ca4e6cf 100644
+--- a/components/src/tex-mml-svg/tex-mml-svg.js
++++ b/components/src/tex-mml-svg/tex-mml-svg.js
+@@ -6,5 +6,4 @@ import '../input/mml/mml.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-svg-full/preload.js b/components/src/tex-svg-full/preload.js
+index d4165cf8..8871781a 100644
+--- a/components/src/tex-svg-full/preload.js
++++ b/components/src/tex-svg-full/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex-full',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-svg-full/tex-svg-full.js b/components/src/tex-svg-full/tex-svg-full.js
+index 55ce32f2..09c7e65c 100644
+--- a/components/src/tex-svg-full/tex-svg-full.js
++++ b/components/src/tex-svg-full/tex-svg-full.js
+@@ -5,5 +5,4 @@ import '../input/tex-full/tex-full.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/components/src/tex-svg/preload.js b/components/src/tex-svg/preload.js
+index 284ce317..3eb02665 100644
+--- a/components/src/tex-svg/preload.js
++++ b/components/src/tex-svg/preload.js
+@@ -5,5 +5,5 @@ Loader.preLoad(
+   'core',
+   'input/tex',
+   'output/svg', 'output/svg/fonts/tex.js',
+-  'ui/menu', 'a11y/assistive-mml'
++  'ui/menu'
+ );
+diff --git a/components/src/tex-svg/tex-svg.js b/components/src/tex-svg/tex-svg.js
+index f4ce644e..5d8caa5c 100644
+--- a/components/src/tex-svg/tex-svg.js
++++ b/components/src/tex-svg/tex-svg.js
+@@ -5,5 +5,4 @@ import '../input/tex/tex.js';
+ import '../output/svg/svg.js';
+ import '../output/svg/fonts/tex/tex.js';
+ import '../ui/menu/menu.js';
+-import '../a11y/assistive-mml/assistive-mml.js';
+ import '../startup/startup.js';
+diff --git a/ts/ui/menu/Menu.ts b/ts/ui/menu/Menu.ts
+index 7553aafc..ca0b9780 100644
+--- a/ts/ui/menu/Menu.ts
++++ b/ts/ui/menu/Menu.ts
+@@ -135,7 +135,7 @@ export class Menu {
+       autocollapse: false,
+       collapsible: false,
+       inTabOrder: true,
+-      assistiveMml: true,
++      assistiveMml: false,
+       explorer: false
+     },
+     jax: {
+@@ -475,7 +475,7 @@ export class Menu {
+           this.command('Reset', 'Reset to defaults', () => this.resetDefaults())
+         ]),
+         this.submenu('Accessibility', 'Accessibility', [
+-          this.checkbox('Activate', 'Activate', 'explorer'),
++          this.checkbox('Activate', 'Activate', 'explorer', {disabled: true}),
+           this.submenu('Speech', 'Speech', [
+             this.checkbox('Speech', 'Speech Output', 'speech'),
+             this.checkbox('Subtitles', 'Speech Subtitles', 'subtitles'),
+@@ -534,11 +534,11 @@ export class Menu {
+             this.checkbox('Prefix', 'Prefix', 'infoPrefix')
+           ], true),
+           this.rule(),
+-          this.checkbox('Collapsible', 'Collapsible Math', 'collapsible'),
++          this.checkbox('Collapsible', 'Collapsible Math', 'collapsible', {disabled: true}),
+           this.checkbox('AutoCollapse', 'Auto Collapse', 'autocollapse', {disabled: true}),
+           this.rule(),
+           this.checkbox('InTabOrder', 'Include in Tab Order', 'inTabOrder'),
+-          this.checkbox('AssistiveMml', 'Include Hidden MathML', 'assistiveMml')
++          this.checkbox('AssistiveMml', 'Include Hidden MathML', 'assistiveMml', {disabled: true})
+         ]),
+         this.submenu('Language', 'Language'),
+         this.rule(),
+@@ -722,6 +722,7 @@ export class Menu {
+    * @param {boolean} mml   True to output hidden Mathml, false to not
+    */
+   protected setAssistiveMml(mml: boolean) {
++    mml = false;
+     this.document.options.enableAssistiveMml = mml;
+     if (!mml || (MathJax._.a11y && MathJax._.a11y['assistive-mml'])) {
+       this.rerender();
+@@ -734,6 +735,7 @@ export class Menu {
+    * @param {boolean} explore   True to enable the explorer, false to not
+    */
+   protected setExplorer(explore: boolean) {
++    explore = false;
+     this.enableExplorerItems(explore);
+     this.document.options.enableExplorer = explore;
+     if (!explore || (MathJax._.a11y && MathJax._.a11y.explorer)) {
+@@ -747,6 +749,7 @@ export class Menu {
+    * @param {boolean} collapse   True to enable collapsible math, false to not
+    */
+   protected setCollapsible(collapse: boolean) {
++    collapse = false;
+     this.document.options.enableComplexity = collapse;
+     if (!collapse || (MathJax._.a11y && MathJax._.a11y.complexity)) {
+       this.rerender(STATE.COMPILED);
+@@ -845,6 +848,8 @@ export class Menu {
+    * @param {string} component   The name of the a11y component to load
+    */
+   public loadA11y(component: string) {
++    console.log ('ignoring load for', component);
++    return;
+     const noEnrich = !STATE.ENRICHED;
+     this.loadComponent('a11y/' + component, () => {
+       const startup = MathJax.startup;
diff --git a/gnu/packages/patches/nftables-fix-makefile.patch b/gnu/packages/patches/nftables-fix-makefile.patch
deleted file mode 100644
index 1660635874..0000000000
--- a/gnu/packages/patches/nftables-fix-makefile.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 18a08fb7f0443f8bde83393bd6f69e23a04246b3 Mon Sep 17 00:00:00 2001
-From: Pablo Neira Ayuso <pablo@netfilter.org>
-Date: Tue, 22 Feb 2022 00:56:36 +0100
-Subject: examples: compile with `make check' and add AM_CPPFLAGS
-
-Compile examples via `make check' like libnftnl does. Use AM_CPPFLAGS to
-specify local headers via -I.
-
-Unfortunately, `make distcheck' did not catch this compile time error in
-my system, since it was using the nftables/libnftables.h file of the
-previous nftables release.
-
-Fixes: 5b364657a35f ("build: missing SUBIRS update")
-Fixes: caf2a6ad2d22 ("examples: add libnftables example program")
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- examples/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/examples/Makefile.am b/examples/Makefile.am
-index c972170d..3b8b0b67 100644
---- a/examples/Makefile.am
-+++ b/examples/Makefile.am
-@@ -1,4 +1,6 @@
--noinst_PROGRAMS	= nft-buffer		\
-+check_PROGRAMS	= nft-buffer		\
- 		  nft-json-file
- 
-+AM_CPPFLAGS = -I$(top_srcdir)/include
-+
- LDADD = $(top_builddir)/src/libnftables.la
--- 
-cgit v1.2.3
-
diff --git a/gnu/packages/patches/omake-fix-non-determinism.patch b/gnu/packages/patches/omake-fix-non-determinism.patch
index 813ce3cd7d..e5060bd703 100644
--- a/gnu/packages/patches/omake-fix-non-determinism.patch
+++ b/gnu/packages/patches/omake-fix-non-determinism.patch
@@ -1,6 +1,6 @@
-From 2e7e254160506dc00f1beabf170512a8e932934b Mon Sep 17 00:00:00 2001
+From 9f70bca2d823b93b334ecb0f92e940d20aafc1c6 Mon Sep 17 00:00:00 2001
 From: Julien Lepiller <julien@lepiller.eu>
-Date: Sat, 31 Dec 2016 15:43:38 +0100
+Date: Sat, 18 Jun 2022 12:02:49 +0200
 Subject: [PATCH] fix build date in binary
 
 ---
@@ -8,19 +8,19 @@ Subject: [PATCH] fix build date in binary
  1 file changed, 2 insertions(+), 10 deletions(-)
 
 diff --git a/src/magic/omake_gen_magic.ml b/src/magic/omake_gen_magic.ml
-index b2419ba..fad52f5 100644
+index c2b9329..3d36c0c 100644
 --- a/src/magic/omake_gen_magic.ml
 +++ b/src/magic/omake_gen_magic.ml
 @@ -150,7 +150,7 @@ let ir_magic = "%s"
  let obj_magic = "%s"
  let lib_dir = "%s"
  let version = "%s"
--let version_message = "OMake %s:\\n\\tbuild [%s %s %d %02d:%02d:%02d %d]\\n\\ton %s"
+-let version_message = "OMake %s:\n    build [%s %s %d %02d:%02d:%02d %d]\n    on %s"
 +let version_message = "OMake %s"
  |}
         default_save_interval
         digest_len
-@@ -160,15 +160,7 @@ let version_message = "OMake %s:\\n\\tbuild [%s %s %d %02d:%02d:%02d %d]\\n\\ton
+@@ -160,15 +160,7 @@ let version_message = "OMake %s:\n    build [%s %s %d %02d:%02d:%02d %d]\n    on
         (digest_files ".omo.magic" ".omo" omo_files)
         (String.escaped libdir)
         (String.escaped (shorten_version version))
@@ -37,5 +37,6 @@ index b2419ba..fad52f5 100644
    List.iter
      (fun (name,value) ->
         Printf.fprintf buf "let %s = %S\n" name value
---
-2.11.0
+-- 
+2.36.1
+
diff --git a/gnu/packages/patches/public-inbox-fix-spawn-test.patch b/gnu/packages/patches/public-inbox-fix-spawn-test.patch
new file mode 100644
index 0000000000..2739b1974d
--- /dev/null
+++ b/gnu/packages/patches/public-inbox-fix-spawn-test.patch
@@ -0,0 +1,43 @@
+From 5593489d9c3ce22b1942f35c7ebb0e06fcf2bfa8 Mon Sep 17 00:00:00 2001
+From: Thiago Jung Bauermann <bauermann@kolabnow.com>
+Date: Fri, 10 Jun 2022 12:39:18 -0300
+Subject: [PATCH] t/spawn: Find invalid PID to try to join its process group
+
+In the container used to build packages of the GNU Guix distribution, PID 1
+runs as the same user as the test so this spawn that should fail actually
+succeeds.
+
+Fix the problem by going through different PIDs and picking one that
+either doesn't exist or we aren't allowed to signal.
+---
+
+This patch is taken from the public-inbox repository and will appear in the
+release after v1.8.
+
+ t/spawn.t | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/t/spawn.t b/t/spawn.t
+index 6168c1f6171c..5fc99a2a101c 100644
+--- a/t/spawn.t
++++ b/t/spawn.t
+@@ -24,7 +24,18 @@ SKIP: {
+ 	is(waitpid($pid, 0), $pid, 'waitpid succeeds on spawned process');
+ 	is($?, 0, 'true exited successfully');
+ 	pipe(my ($r, $w)) or BAIL_OUT;
+-	$pid = eval { spawn(['true'], undef, { pgid => 1, 2 => $w }) };
++
++	# Find invalid PID to try to join its process group.
++	my $wrong_pgid = 1;
++	for (my $i=0x7fffffff; $i >= 2; $i--) {
++		if (kill(0, $i) == 0) {
++			$wrong_pgid = $i;
++			last;
++		}
++	}
++
++	# Test spawn behavior when it can't join the requested process group.
++	$pid = eval { spawn(['true'], undef, { pgid => $wrong_pgid, 2 => $w }) };
+ 	close $w;
+ 	my $err = do { local $/; <$r> };
+ 	# diag "$err ($@)";
diff --git a/gnu/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch b/gnu/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch
new file mode 100644
index 0000000000..7f022b4e46
--- /dev/null
+++ b/gnu/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch
@@ -0,0 +1,73 @@
+From 2907848185adcb4e6d8c093db6c617c64cb8c8bf Mon Sep 17 00:00:00 2001
+From: Georg Sauthoff <mail@gms.tf>
+Date: Sat, 5 Feb 2022 14:42:10 +0100
+Subject: [PATCH] Use current pytest_httpx add_response keyword
+
+The new text keyword was introduced in pytest_httpx 0.14, deprecated
+in 0.14 and 0.17 and removed in 0.18.
+
+Thus, an appropriate constraint to that dependency is added.
+
+FWIW, this fixes the test cases on the upcoming Fedora 36 release.
+
+See also:
+- https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md#0180---2022-01-17
+- https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md#0140---2021-10-22
+---
+ setup.py                      | 2 +-
+ tests/test_async_transport.py | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 4cf9073b..58a5c24f 100755
+--- a/setup.py
++++ b/setup.py
+@@ -29,7 +29,7 @@
+     "freezegun==0.3.15",
+     "pretend==1.0.9",
+     "pytest-cov==2.8.1",
+-    "pytest-httpx",
++    "pytest-httpx>=0.14",
+     "pytest-asyncio",
+     "pytest==6.2.5",
+     "requests_mock>=0.7.0",
+diff --git a/tests/test_async_transport.py b/tests/test_async_transport.py
+index f5e8d1b0..ee215265 100644
+--- a/tests/test_async_transport.py
++++ b/tests/test_async_transport.py
+@@ -19,7 +19,7 @@ def test_load(httpx_mock):
+     cache = stub(get=lambda url: None, add=lambda url, content: None)
+     transport = AsyncTransport(cache=cache)
+ 
+-    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
++    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
+     result = transport.load("http://tests.python-zeep.org/test.xml")
+     assert result == b"x"
+ 
+@@ -30,7 +30,7 @@ def test_load_cache(httpx_mock):
+     cache = InMemoryCache()
+     transport = AsyncTransport(cache=cache)
+ 
+-    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
++    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
+     result = transport.load("http://tests.python-zeep.org/test.xml")
+     assert result == b"x"
+ 
+@@ -45,7 +45,7 @@ async def test_post(httpx_mock: HTTPXMock):
+ 
+     envelope = etree.Element("Envelope")
+ 
+-    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", data="x")
++    httpx_mock.add_response(url="http://tests.python-zeep.org/test.xml", text="x")
+     result = await transport.post_xml(
+         "http://tests.python-zeep.org/test.xml", envelope=envelope, headers={}
+     )
+@@ -67,7 +67,7 @@ async def test_http_error(httpx_mock: HTTPXMock):
+     transport = AsyncTransport()
+ 
+     httpx_mock.add_response(
+-        url="http://tests.python-zeep.org/test.xml", data="x", status_code=500
++        url="http://tests.python-zeep.org/test.xml", text="x", status_code=500
+     )
+     with pytest.raises(exceptions.TransportError) as exc:
+         transport.load("http://tests.python-zeep.org/test.xml")
diff --git a/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch b/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
index c91d273f92..fc2c74718a 100644
--- a/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
+++ b/gnu/packages/patches/rocm-comgr-3.1.0-dependencies.patch
@@ -11,11 +11,11 @@ Without these additional required dependencies, linking fails with errors such a
  CMakeLists.txt | 20 ++++++++++++++++++--
  1 file changed, 18 insertions(+), 2 deletions(-)
 
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1794a07..c7b852a 100644
+diff --git a/lib/comgr/CMakeLists.txt b/lib/comgr/CMakeLists.txt
+index 8b5ca2f..a7d226f 100644
 --- a/lib/comgr/CMakeLists.txt
 +++ b/lib/comgr/CMakeLists.txt
-@@ -207,7 +207,11 @@ install(FILES
+@@ -294,7 +294,11 @@ install(FILES
    DESTINATION "${AMD_COMGR_PACKAGE_PREFIX}")
  
  set(CLANG_LIBS
@@ -28,7 +28,7 @@ index 1794a07..c7b852a 100644
  
  set(LLD_LIBS
    lldELF
-@@ -218,8 +222,20 @@ if (LLVM_LINK_LLVM_DYLIB)
+@@ -305,8 +309,21 @@ if (LLVM_LINK_LLVM_DYLIB)
  else()
    llvm_map_components_to_libnames(LLVM_LIBS
      ${LLVM_TARGETS_TO_BUILD}
@@ -46,7 +46,8 @@ index 1794a07..c7b852a 100644
 +    IRReader
 +    CodeGen
 +    Linker
++    Demangle
 +    BinaryFormat)
  endif()
  
- target_link_libraries(amd_comgr
+ target_link_options(amd_comgr
diff --git a/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch b/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch
deleted file mode 100644
index d81bb0747f..0000000000
--- a/gnu/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Add missing include dirs for ROCclr.
-
---- a/amdocl/CMakeLists.txt	2020-12-05 22:05:55.838529158 +0100
-+++ b/amdocl/CMakeLists.txt	2020-12-05 22:07:35.677524507 +0100
-@@ -23,6 +23,9 @@
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos)
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers)
- include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers/opencl2.2)
-+include_directories(${ROCclr_DIR}/../../../include)
-+include_directories(${ROCclr_DIR}/../../../include/compiler/lib/include/)
-+include_directories(${ROCclr_DIR}/../../../include/elf/)
- 
- if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
-    (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang"))
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
index 5709e0d19a..97376fd421 100644
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
+++ b/gnu/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch
@@ -4,25 +4,26 @@ diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
 index 76847d3..3f62bfe 100644
 --- a/CMakeLists.txt.orig
 +++ b/CMakeLists.txt
-@@ -72,7 +72,7 @@ find_package(ROCclr REQUIRED CONFIG
+@@ -15,9 +15,9 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward co
  
- add_subdirectory(khronos/icd)
+ 
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
+ #add_subdirectory(khronos/icd)
  add_subdirectory(amdocl)
 -add_subdirectory(tools/clinfo)
 +#add_subdirectory(tools/clinfo)
  add_subdirectory(tools/cltrace)
  if(BUILD_TESTS)
    add_subdirectory(tests/ocltst)
-@@ -108,9 +108,9 @@ endif()
- ###--- Packaging ------------------------------------------------------------###
+diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
+index 48353eb..cd1e7c1 100644
+--- a/packaging/CMakeLists.txt
++++ b/packaging/CMakeLists.txt
+@@ -5,6 +5,6 @@ set(CPACK_COMPONENTS_ALL binary dev icd)
+ set(CPACK_DEB_COMPONENT_INSTALL ON)
+ set(CPACK_RPM_COMPONENT_INSTALL ON)
  
- # MAIN package
--install(PROGRAMS $<TARGET_FILE:clinfo>
--        DESTINATION bin
--        COMPONENT MAIN)
-+#install(PROGRAMS $<TARGET_FILE:clinfo>
-+#        DESTINATION bin
-+#        COMPONENT MAIN)
- install(PROGRAMS $<TARGET_FILE:cltrace>
-         DESTINATION lib
-         COMPONENT MAIN)
+-install(TARGETS clinfo DESTINATION bin COMPONENT binary)
++#install(TARGETS clinfo DESTINATION bin COMPONENT binary)
+ install(TARGETS amdocl DESTINATION lib COMPONENT binary)
+ install(FILES ${CMAKE_SOURCE_DIR}/LICENSE.txt DESTINATION share/doc/${CMAKE_PROJECT_NAME} COMPONENT binary)
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
deleted file mode 100644
index e0328d7734..0000000000
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not build and install cltrace.
-
-diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
-index c449db4..9cff673 100644
---- a/CMakeLists.txt.orig
-+++ b/CMakeLists.txt
-@@ -73,7 +73,7 @@ find_package(ROCclr REQUIRED CONFIG
- #add_subdirectory(khronos/icd)
- add_subdirectory(amdocl)
- #add_subdirectory(tools/clinfo)
--add_subdirectory(tools/cltrace)
-+#add_subdirectory(tools/cltrace)
- if(BUILD_TESTS)
-   add_subdirectory(tests/ocltst)
- endif()
-@@ -108,9 +108,6 @@ endif()
- #install(PROGRAMS $<TARGET_FILE:clinfo>
- #        DESTINATION bin
- #        COMPONENT MAIN)
--install(PROGRAMS $<TARGET_FILE:cltrace>
--        DESTINATION lib
--        COMPONENT MAIN)
- install(PROGRAMS $<TARGET_FILE:amdocl64>
-         DESTINATION lib
-         COMPONENT MAIN)
diff --git a/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch b/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
index ed20f02503..9f80d7da9d 100644
--- a/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
+++ b/gnu/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch
@@ -2,36 +2,21 @@ Do not build and install libOpenCL.
 
 --- b/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -70,7 +70,7 @@
-     ${ROCclr_DIR}
-     ${LIBROCclr_STATIC_DIR})
+@@ -15,9 +15,9 @@ option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorganization backward co
  
+ 
+ set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "")
 -add_subdirectory(khronos/icd)
 +#add_subdirectory(khronos/icd)
  add_subdirectory(amdocl)
- #add_subdirectory(tools/clinfo)
+ add_subdirectory(tools/clinfo)
  add_subdirectory(tools/cltrace)
-@@ -93,9 +93,6 @@
-     OUTPUT_VARIABLE OPENCL_VERSION_GITDATE
-     OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if(BUILD_TESTS)
+   add_subdirectory(tests/ocltst)
+@@ -25,16 +25,6 @@ endif()
+ 
+ ###--- Packaging ------------------------------------------------------------###
  
--get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
--get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
--
- find_package(ROCM QUIET CONFIG PATHS /opt/rocm)
- 
- if(ROCM_FOUND)
-@@ -117,25 +114,6 @@
- install(PROGRAMS $<TARGET_FILE:amdocl64>
-         DESTINATION lib
-         COMPONENT MAIN)
--install(PROGRAMS $<TARGET_FILE:OpenCL>
--        DESTINATION lib
--        COMPONENT MAIN)
--install(PROGRAMS $<TARGET_SONAME_FILE:OpenCL>
--        DESTINATION lib
--        COMPONENT MAIN)
--
 -# DEV package
 -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL"
 -        DESTINATION include
@@ -41,15 +26,26 @@ Do not build and install libOpenCL.
 -        PATTERN cl_d3d11.h EXCLUDE
 -        PATTERN cl_dx9_media_sharing.h EXCLUDE
 -        PATTERN cl_egl.h EXCLUDE)
--install(PROGRAMS $<TARGET_LINKER_FILE:OpenCL>
--        DESTINATION lib
--        COMPONENT DEV)
- 
+-
  #############################
  # Packaging steps
+ #############################
+@@ -53,8 +43,8 @@ if (DEFINED ROCM_PATCH_VERSION)
+   set(OPENCL_AMD_ICD_FILE "amdocl64_${ROCM_PATCH_VERSION}.icd")
+ endif()
+ 
+-get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
+-get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
++#get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION)
++#get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION)
+ 
+ #Set Package Version
+ set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
+diff --git a/khronos/icd/CMakeLists.txt b/khronos/icd/CMakeLists.txt
+index 4bafa86..987dd6f 100644
 --- a/khronos/icd/CMakeLists.txt	2020-06-07 16:05:32.425022904 +0200
 +++ b/khronos/icd/CMakeLists.txt	2020-06-07 16:06:03.273022786 +0200
-@@ -132,7 +132,7 @@
+@@ -132,7 +132,7 @@ if (BUILD_TESTING)
      add_subdirectory (test)
  endif()
  
@@ -61,3 +57,14 @@ Do not build and install libOpenCL.
 +#    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 +#    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
 +#    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt
+index 48353eb..cd1e7c1 100644
+--- a/packaging/CMakeLists.txt
++++ b/packaging/CMakeLists.txt
+@@ -17,5 +17,5 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/khronos/headers/opencl2.2/CL
+         PATTERN cl_dx9_media_sharing.h EXCLUDE
+         PATTERN cl_egl.h EXCLUDE )
+ 
+-install(TARGETS OpenCL DESTINATION lib COMPONENT icd )
++#install(TARGETS OpenCL DESTINATION lib COMPONENT icd )
+ install(FILES ${CMAKE_SOURCE_DIR}/khronos/icd/LICENSE DESTINATION share/doc/rocm-ocl-icd COMPONENT icd)
diff --git a/gnu/packages/patches/timescaledb-flaky-test.patch b/gnu/packages/patches/timescaledb-flaky-test.patch
new file mode 100644
index 0000000000..6268bcecad
--- /dev/null
+++ b/gnu/packages/patches/timescaledb-flaky-test.patch
@@ -0,0 +1,107 @@
+Use fixed dates in test for consistent results.
+
+Taken from upstream:
+
+  https://github.com/timescale/timescaledb/commit/1d0670e703862b284c241ab797404f851b25b5df
+
+diff --git a/test/expected/copy-12.out b/test/expected/copy-12.out
+index 5cb28a45a2..37abf6f6ff 100644
+--- a/test/expected/copy-12.out
++++ b/test/expected/copy-12.out
+@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
+ SELECT time,
+ random() AS value
+ FROM
+-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
+-  INTERVAL '1 hour') AS g1(time)
++generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
+ ORDER BY time;
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ -- Migrate data to chunks by using copy
+@@ -345,7 +344,7 @@ NOTICE:  migrating data to chunks
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ ----------------------------------------------------------------
+diff --git a/test/expected/copy-13.out b/test/expected/copy-13.out
+index 02bf913eff..89e16fe8e2 100644
+--- a/test/expected/copy-13.out
++++ b/test/expected/copy-13.out
+@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
+ SELECT time,
+ random() AS value
+ FROM
+-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
+-  INTERVAL '1 hour') AS g1(time)
++generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
+ ORDER BY time;
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ -- Migrate data to chunks by using copy
+@@ -345,7 +344,7 @@ NOTICE:  migrating data to chunks
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ ----------------------------------------------------------------
+diff --git a/test/expected/copy-14.out b/test/expected/copy-14.out
+index 02bf913eff..89e16fe8e2 100644
+--- a/test/expected/copy-14.out
++++ b/test/expected/copy-14.out
+@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
+ SELECT time,
+ random() AS value
+ FROM
+-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
+-  INTERVAL '1 hour') AS g1(time)
++generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
+ ORDER BY time;
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ -- Migrate data to chunks by using copy
+@@ -345,7 +344,7 @@ NOTICE:  migrating data to chunks
+ SELECT COUNT(*) FROM hyper_copy_large;
+  count 
+ -------
+-   697
++   721
+ (1 row)
+ 
+ ----------------------------------------------------------------
+diff --git a/test/sql/copy.sql.in b/test/sql/copy.sql.in
+index 91402c2ab8..bba4265064 100644
+--- a/test/sql/copy.sql.in
++++ b/test/sql/copy.sql.in
+@@ -276,8 +276,7 @@ INSERT INTO hyper_copy_large
+ SELECT time,
+ random() AS value
+ FROM
+-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
+-  INTERVAL '1 hour') AS g1(time)
++generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
+ ORDER BY time;
+ 
+ SELECT COUNT(*) FROM hyper_copy_large;
diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm
index 10e29cf6ca..fdc86e5047 100644
--- a/gnu/packages/pcre.scm
+++ b/gnu/packages/pcre.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2017, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
@@ -42,8 +42,8 @@
    (version "8.45")
    (source (origin
             (method url-fetch)
-            (uri (string-append "https://ftp.pcre.org/pub/pcre/pcre-"
-                                version ".tar.bz2"))
+            (uri (string-append "mirror://sourceforge/pcre/pcre/"
+                                version "/pcre-" version ".tar.bz2"))
             (sha256
              (base32
               "1f7zichy6iimmkfrqdl575sdlm795cyc75szgg1vc2xvsbf6zbjd"))))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index a7286fcf9a..447fc93f42 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -582,7 +582,7 @@ and enhance them.")
 (define-public photoflare
   (package
     (name "photoflare")
-    (version "1.6.9")
+    (version "1.6.10")
     (source
      (origin
        (method git-fetch)
@@ -591,7 +591,7 @@ and enhance them.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "121fhbggsh6jhrr7m41f27fd34ql7libdr2v0ig5bj6nc2ddwd40"))))
+        (base32 "1sm4m9nga1lyqycgqbh08cib5dg4fnrz9qkrliycr3dbisy360lm"))))
     (build-system gnu-build-system)
     (arguments
      '(#:tests? #f                      ;no tests
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 9d56e6e3c5..a75608cd43 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
 ;;; Copyright © 2015, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@@ -54,7 +54,6 @@
   (package
     (name "polkit")
     (version "0.120")
-    (replacement polkit-mozjs/fixed)
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -63,7 +62,8 @@
              (sha256
               (base32
                "00zfg9b9ivkcj2jcf5b92cpvvyljz8cmfwj86lkvy5rihnd5jypf"))
-             (patches (search-patches "polkit-configure-elogind.patch"))
+             (patches (search-patches "polkit-configure-elogind.patch"
+                                      "polkit-CVE-2021-4034.patch"))
              (modules '((guix build utils)))
              (snippet
               '(begin
@@ -93,12 +93,12 @@
     (propagated-inputs
      (list glib)) ; required by polkit-gobject-1.pc
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums
-       ("intltool" ,intltool)
-       ("gobject-introspection" ,gobject-introspection)
-       ("libxslt" ,libxslt) ; for man page generation
-       ("docbook-xsl" ,docbook-xsl))) ; for man page generation
+     (list pkg-config
+           `(,glib "bin")                         ;for glib-mkenums
+           intltool
+           gobject-introspection
+           libxslt                                ;for man page generation
+           docbook-xsl))                          ;for man page generation
     (arguments
      `(#:configure-flags '("--sysconfdir=/etc"
                            "--enable-man-pages"
@@ -147,16 +147,6 @@ making process with respect to granting access to privileged operations
 for unprivileged applications.")
     (license lgpl2.0+)))
 
-(define-public polkit-mozjs/fixed
-  (package
-    (inherit polkit-mozjs)
-    (version "0.121")
-    (source (origin
-              (inherit (package-source polkit-mozjs))
-              (patches (cons (search-patch "polkit-CVE-2021-4034.patch")
-                             (origin-patches
-                              (package-source polkit-mozjs))))))))
-
 ;;; Variant of polkit built with Duktape, a lighter JavaScript engine compared
 ;;; to mozjs.
 (define-public polkit-duktape
@@ -180,13 +170,11 @@ for unprivileged applications.")
                (lambda _
                  (delete-file "configure")))))))
       (native-inputs
-       (append `(("autoconf" ,autoconf)
-                 ("automake" ,automake)
-                 ("libtool" ,libtool)
-                 ("pkg-config" ,pkg-config))
-           (package-native-inputs base)))
-      (inputs (alist-replace "mozjs" `(,duktape)
-                             (package-inputs base))))))
+       (modify-inputs (package-native-inputs base)
+         (prepend autoconf automake libtool)))
+      (inputs
+       (modify-inputs (package-inputs base)
+         (replace "mozjs" duktape))))))
 
 (define polkit-for-system
   (mlambda (system)
@@ -207,15 +195,15 @@ regular polkit that requires mozjs or its duktape variant."
 (define-public polkit-qt
   (package
     (name "polkit-qt")
-    (version "1-0.112.0")
+    (version "1-0.114.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://kde//stable/apps/KDE4.x/admin/"
-                   "polkit-qt-" version ".tar.bz2"))
+                   "mirror://kde/stable/polkit-qt-1/"
+                   "polkit-qt-" version ".tar.xz"))
              (sha256
               (base32
-               "1ip78x20hjqvm08kxhp6gb8hf6k5n6sxyx6kk2yvvq53djzh7yv7"))))
+               "0zlhwgkqn8g0rkjc7c5n7fbhyyl4jcv0rg5zlbzrb0l88ljg5c1f"))))
     (build-system cmake-build-system)
     (inputs
      (list polkit))
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 7f9b027a30..c39b4e2ed1 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -2293,3 +2293,34 @@ documentation by parsing them from their source and evaluating the
 parsed examples as part of your normal test run.  Integration is
 provided for the main Python test runners.")
     (license license:expat)))
+
+(define-public python-pytest-httpx
+  (package
+    (name "python-pytest-httpx")
+    (version "0.21.0")
+    (source
+     (origin
+       ;; pypi package doesn't include the tests
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Colin-b/pytest_httpx")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "12mcy1f5d5cq3rqrqgi2ar0qvzw62ibys17hw6dsdfd0j2syck4r"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "PYTHONPATH" (getcwd))
+               (invoke "pytest" "-vv")))))))
+    (propagated-inputs (list python-httpx))
+    (native-inputs (list python-pytest python-pytest-asyncio))
+    (home-page "https://colin-b.github.io/pytest_httpx/")
+    (synopsis "Pytest plugin to mock httpx")
+    (description "This package provides a pytest fixture to mock httpx
+requests to be replied to with user provided responses.")
+    (license license:expat)))
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 92c1638c6d..f2059dbbf5 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -437,7 +437,7 @@ for example, for recording or replaying web content.")
 is used by the Requests library to verify HTTPS requests.")
     (license license:asl2.0)))
 
-(define-public python-cryptography-vectors
+(define-public python-cryptography-vectors-next
   (package
     (name "python-cryptography-vectors")
     (version "36.0.1")
@@ -456,53 +456,19 @@ is used by the Requests library to verify HTTPS requests.")
     ;; Distributed under either BSD-3 or ASL2.0
     (license (list license:bsd-3 license:asl2.0))))
 
-(define-public python-cryptography
-  (package
-    (name "python-cryptography")
-    (version "3.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "cryptography" version))
-       (sha256
-        (base32
-         "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
-    (build-system python-build-system)
-    (inputs
-     (list openssl))
-    (propagated-inputs
-     (list python-asn1crypto python-cffi python-six python-idna
-           python-iso8601))
-    (native-inputs
-     (list python-cryptography-vectors python-hypothesis python-pretend
-           python-pytz python-pytest))
-    (home-page "https://github.com/pyca/cryptography")
-    (synopsis "Cryptographic recipes and primitives for Python")
-    (description
-      "cryptography is a package which provides cryptographic recipes and
-primitives to Python developers.  It aims to be the “cryptographic standard
-library” for Python.  The package includes both high level recipes, and low
-level interfaces to common cryptographic algorithms such as symmetric ciphers,
-message digests and key derivation functions.")
-    ;; Distributed under either BSD-3 or ASL2.0
-    (license (list license:bsd-3 license:asl2.0))))
-
-;; TODO: Make this the default in the next staging cycle.
-(define-public python-cryptography-vectors-next
+(define-public python-cryptography-vectors
   (package
-    (inherit python-cryptography-vectors)
-    (version "36.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "cryptography_vectors" version))
-       (sha256
-        (base32
-         "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w"))))))
+    (inherit python-cryptography-vectors-next)
+    (version "3.4.8")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "cryptography_vectors" version))
+              (sha256
+               (base32 "1wl0ynh3lzhc6q59g8mybvijmnp195x7fjxlb3h3sgcraw14312c"))))))
 
 (define-public python-cryptography-next
   (package
-    (inherit python-cryptography)
+    (name "python-cryptography")
     (version "36.0.1")
     (source
      (origin
@@ -600,7 +566,7 @@ message digests and key derivation functions.")
      (list python-asn1crypto python-cffi python-six python-idna
            python-iso8601))
     (native-inputs
-     (list python-cryptography-vectors
+     (list python-cryptography-vectors-next
            python-hypothesis
            python-pretend
            python-pytz
@@ -618,62 +584,45 @@ library” for Python.  The package includes both high level recipes, and low
 level interfaces to common cryptographic algorithms such as symmetric ciphers,
 message digests and key derivation functions.")
     ;; Distributed under either BSD-3 or ASL2.0
-    (license (list license:bsd-3 license:asl2.0))
-    (properties `((python2-variant . ,(delay python2-cryptography))))))
+    (license (list license:bsd-3 license:asl2.0))))
 
-(define-public python2-cryptography-vectors
+(define-public python-cryptography
   (package
-    (inherit python-cryptography-vectors)
-    (version "3.3.1")
+    (inherit python-cryptography-next)
+    (version "3.4.8")
     (source (origin
               (method url-fetch)
-              (uri (pypi-uri "cryptography_vectors" version))
+              (uri (pypi-uri "cryptography" version))
               (sha256
-               (base32
-                "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03"))))
+               (base32 "072awar70cwfd2hnx0pvp1dkc7gw45mbm3wcyddvxz5frva5xk4l"))))
     (arguments
-     (list #:python python-2))))
-
-(define-public python2-cryptography
-  (let ((crypto (package-with-python2
-                 (strip-python2-variant python-cryptography))))
-    (package
-      (inherit crypto)
-      (version "3.3.1")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "cryptography" version))
-                (sha256
-                 (base32
-                  "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy"))))
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           ;; The sanity-check attempts attempts to import the non-existent
-           ;; modules "_openssl" and "_padding".
-           (delete 'sanity-check))))
-      (native-inputs
-       (list python2-cryptography-vectors python2-hypothesis python2-pretend
-             python2-pytz python2-pytest))
-      (inputs (list openssl))
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs crypto)
-         (prepend python2-ipaddress
-                  python2-backport-ssl-match-hostname
-                  python2-enum34))))))
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'set-no-rust
+                 (lambda _
+                   (setenv "CRYPTOGRAPHY_DONT_BUILD_RUST" "1"))))))
+    (inputs (list openssl))
+    (native-inputs
+     (list python-cryptography-vectors
+           python-hypothesis
+           python-pretend
+           python-pytz
+           python-pytest
+           python-setuptools-rust))))
 
+;; This is the last version which is compatable with python-cryptography < 35.
 (define-public python-pyopenssl
   (package
     (name "python-pyopenssl")
-    (version "22.0.0")
+    (version "21.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyOpenSSL" version))
        (sha256
         (base32
-         "1gzihw09sqi71lwx97c69hab7w4rbnl6hhfrl6za3i5a4la1n2v6"))))
+         "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay"))
+       (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))))
     (build-system python-build-system)
     (arguments
      (list
@@ -708,7 +657,6 @@ message digests and key derivation functions.")
     (description
       "PyOpenSSL is a high-level wrapper around a subset of the OpenSSL
 library.")
-    (properties `((python2-variant . ,(delay python2-pyopenssl))))
     (license license:asl2.0)))
 
 (define-public python-ed25519
@@ -923,29 +871,19 @@ Python.")
 (define-public python-josepy
   (package
     (name "python-josepy")
-    (version "1.1.0")
+    (version "1.13.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "josepy" version))
               (sha256
                (base32
-                "11khz8malzrv375b27jjkv66z6z6khdx1v5mkkr4vq16gp3n4p7v"))))
+                "1jaxqyp53paks2z8zyzr50gqvzfxbar7r2qf98kqak4aizrxlcc9"))))
     (build-system python-build-system)
     (arguments
-     ;; The tests require flake8 >= 3.5, which is not yet packaged.
+     ;; TODO: some test dependencies are missing (see pyproject.toml).
      '(#:tests? #f))
     (propagated-inputs
-     (list python-cryptography python-pyopenssl python-six))
-;; TODO Enable when we have flake8 >= 3.5.
-;    (native-inputs
-;     `(("python-coverage" ,python-coverage)
-;       ("python-flake8" ,python-flake8)
-;       ("python-isort" ,python-isort)
-;       ("python-mock" ,python-mock)
-;       ("python-pytest" ,python-pytest)
-;       ("python-pytest-cov" ,python-pytest-cov)
-;       ("python-pytest-cache" ,python-pytest-cache)
-;       ("python-pytest-flake8" ,python-pytest-flake8)))
+     (list python-cryptography python-pyopenssl))
     (home-page "https://github.com/certbot/josepy")
     (synopsis "JOSE protocol implementation in Python")
     (description "This package provides a Python implementation of the JOSE
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 855fe9a72c..56f109e3d5 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
 ;;; Copyright © 2022 Wiktor Żelazny <wzelazny@vurv.cz>
+;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -182,13 +183,13 @@ logic, also known as grey logic.")
 (define-public python-scikit-image
   (package
     (name "python-scikit-image")
-    (version "0.19.2")
+    (version "0.19.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "scikit-image" version))
        (sha256
-        (base32 "0vc6c78780jivsg79ja0cncn1ma2wysy9fyz97kik0kg59jb8cyl"))))
+        (base32 "0l645smf7w1kail70z8d9r3xmvz7qh6g7n3d2bpacbbnw5ykdd94"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -858,6 +859,32 @@ and more
 @end itemize")
     (license license:gpl3)))
 
+(define-public python-pyglm
+  (package
+    (name "python-pyglm")
+    (version "2.5.7")
+    (source
+     (origin
+       ;; Test files are not included in the archive in pypi.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/Zuzu-Typ/PyGLM")
+             (commit version)
+             ;; Checkout the bundled `glm` submodule.  PyGLM uses the
+             ;; currently unreleased GLM_EXT_matrix_integer feature.  Can
+             ;; maybe unbundle once glm@0.9.9.9 is released.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08v0cgkwsf8rxscx5g9c5p1dy38rvak2fy3q6hg985if1nj6d9ks"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/Zuzu-Typ/PyGLM")
+    (synopsis "OpenGL Mathematics library for Python")
+    (description "PyGLM is a Python extension library which brings the OpenGL
+Mathematics (GLM) library to Python.")
+    (license license:zlib)))
+
 (define-public python-distributed
   (package
     (name "python-distributed")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0182679acd..b4500c6d2f 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -44,7 +44,7 @@
 ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
-;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2021, 2022 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Alice Brenon <alice.brenon@ens-lyon.fr>
 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
@@ -5295,7 +5295,7 @@ and serve updated contents upon changes to the directory.")
 (define-public python-httpcore
   (package
     (name "python-httpcore")
-    (version "0.14.7")
+    (version "0.15.0")
     (source
      (origin
        ;; PyPI tarball does not contain tests.
@@ -5305,7 +5305,7 @@ and serve updated contents upon changes to the directory.")
              (commit  version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0wdr28vf03l6yxhk8nrvhh7y7x18rqdcfzv1sb6jgzk9zmycrvc7"))))
+        (base32 "0skj8f85l52gl6x449wzaixcwsyayvn59iwn0df4b7ixlz6xhp8l"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -5313,7 +5313,8 @@ and serve updated contents upon changes to the directory.")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "pytest" "-vv" "tests")))))))
+               (invoke "pytest" "-vv" "tests"
+                       "--override-ini=asyncio_mode=auto")))))))
     (native-inputs
      (list python-pytest
            python-pytest-asyncio
@@ -5360,7 +5361,7 @@ Some things HTTP Core does do:
 (define-public python-httpx
   (package
     (name "python-httpx")
-    (version "0.22.0")
+    (version "0.23.0")
     (source
      (origin
        ;; PyPI tarball does not contain tests.
@@ -5370,7 +5371,7 @@ Some things HTTP Core does do:
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1awr56488b66zyl3cx1f03lq2n07xdg5kb4l46vnsm59s6hr02c5"))))
+        (base32 "0bihm7ylq9ajxz8qyba0xp9qkwm7n06hk01ywkq2vpz65ix5hpdk"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -7477,3 +7478,60 @@ metadata from HTML markup.  Currently, extruct supports:
     (description "The @code{wadllib} Python library allows navigating HTTP
 resources using Web Application Description Language (WADL) files as guides.")
     (license license:lgpl3)))
+
+(define-public python-zeep
+  (package
+    (name "python-zeep")
+    (version "4.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "zeep" version))
+       (patches
+        (search-patches "python-zeep-Fix-pytest_httpx-test-cases.patch"))
+       (sha256
+        (base32 "1ranr4hkjd2kbbhxa3is1qlgkankj3sml5gla6bqs0kbvpmg4rsq"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (setenv "HOME" (getcwd)) ; one test requires write access
+               (invoke "pytest" "-vv")))))))
+    (propagated-inputs
+     (list python-attrs
+           python-cached-property
+           python-isodate
+           python-lxml
+           python-platformdirs
+           python-pytz
+           python-requests
+           python-requests-file
+           python-requests-toolbelt))
+    (native-inputs
+     (list python-aiohttp
+           python-aioresponses
+           python-freezegun
+           python-mock
+           python-pretend
+           python-pytest
+           python-pytest-asyncio
+           python-pytest-cov
+           python-pytest-httpx
+           python-requests-mock))
+    (home-page "https://docs.python-zeep.org/en/stable/")
+    (synopsis "Python SOAP client based on lxml / requests")
+    (description "Zeep is a Python SOAP client.  Highlights:
+
+@itemize
+@item Build on top of @code{lxml} and @code{requests}.
+@item Support for Soap 1.1, Soap 1.2 and HTTP bindings.
+@item Support for WS-Addressing headers.
+@item Support for WSSE (UserNameToken / x.509 signing).
+@item Support for @code{asyncio} via @code{httpx}.
+@item Experimental support for XOP messages.
+@end itemize")
+    (license license:expat)))
+
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 7d73c145b7..75682be6ab 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2014, 2015, 2016, 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2014, 2017, 2021 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2014, 2017, 2021, 2022 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2015 Omar Radwan <toxemicsquire4@gmail.com>
 ;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
@@ -123,6 +123,7 @@
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -197,6 +198,7 @@
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages node)
   #:use-module (gnu packages ninja)
   #:use-module (gnu packages openstack)
   #:use-module (gnu packages pcre)
@@ -3086,7 +3088,13 @@ server.")
               (chdir "miniupnpc")
               (setenv "CC" #$(cc-for-target))
               (substitute* "Makefile"
-                (("/bin/sh") (search-input-file inputs "/bin/sh"))))))))
+                (("/bin/sh") (search-input-file inputs "/bin/sh")))))
+          (add-before 'subdir 'remove-kernel-version
+            ;; Avoid embedding the running kernel version for reproducible builds
+            (lambda _
+              (substitute*
+                  "miniupnpc/updateminiupnpcstrings.sh"
+                (("^OS_VERSION=`uname -r`") "OS_VERSION=Guix")))))))
     (inputs (list python))              ;we are building a Python extension
     (synopsis "UPnP client for Python")
     (description "Miniupnpc is a client library for Python programs to set up
@@ -3894,6 +3902,71 @@ adds a 'now' tag providing a convenient access to the arrow.now() API from
 templates.  A format string can be provided to control the output.")
     (license license:expat)))
 
+(define-public python-pysdl2
+  (package
+    (name "python-pysdl2")
+    (version "0.9.11")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "PySDL2" version))
+              (sha256
+               (base32
+                "19id1qswgcj4v4j5kn49shq1xxx3slhjpm0102w87mczsdbi1rck"))))
+    (build-system python-build-system)
+    (arguments
+      (list #:tests? #f ;; Requires /dev/dri, OpenGL module, etc.
+            #:phases
+            #~(modify-phases %standard-phases
+                (add-after 'unpack 'patch-paths
+                  (lambda* (#:key inputs #:allow-other-keys)
+                    (substitute* "sdl2/dll.py"
+                    ;; Disable pysdl2-dll. It can't be packaged on GNU Guix
+                    ;; as it duplicates an existing package (sdl2).
+                    (("prepath = os\\.getenv\\('PYSDL2_DLL_PATH'\\)")
+                     "prepath = \"system\"")
+                    (("^import sdl2dll$") "")
+                    (("postpath = os\\.getenv\\('PYSDL2_DLL_PATH'\\)")
+                     "postpath = \"system\"")
+                    (("DLL\\(.*, os\\.getenv\\(\"PYSDL2_DLL_PATH\"\\)\\)")
+                     (string-append
+                       "DLL(\"SDL2\", [\"SDL2\", \"SDL2-2.0\", \"SDL2-2.0.0\"], \""
+                       (dirname (search-input-file inputs "/lib/libSDL2.so"))
+                       "\")")))
+              (substitute* "sdl2/sdlimage.py"
+                (("os\\.getenv\\(\"PYSDL2_DLL_PATH\"\\)")
+                 (string-append
+                   "\""
+                   (dirname (search-input-file inputs "/lib/libSDL2_image.so"))
+                   "\"")))
+              (substitute* "sdl2/sdlgfx.py"
+                (("os\\.getenv\\(\"PYSDL2_DLL_PATH\"\\)")
+                 (string-append
+                   "\""
+                   (dirname (search-input-file inputs "/lib/libSDL2_gfx.so"))
+                   "\"")))
+              (substitute* "sdl2/sdlmixer.py"
+                (("os\\.getenv\\(\"PYSDL2_DLL_PATH\"\\)")
+                 (string-append
+                   "\""
+                   (dirname (search-input-file inputs "/lib/libSDL2_mixer.so"))
+                   "\"")))
+              (substitute* "sdl2/sdlttf.py"
+                (("os\\.getenv\\(\"PYSDL2_DLL_PATH\"\\)")
+                 (string-append
+                   "\""
+                   (dirname (search-input-file inputs "/lib/libSDL2_ttf.so"))
+                   "\""))))))))
+    (inputs
+      (list sdl2 sdl2-image sdl2-gfx sdl2-mixer sdl2-ttf))
+    (home-page "https://github.com/py-sdl/py-sdl2")
+    (synopsis "Python bindings around the SDL2 game development library")
+    (description "PySDL2 is a pure Python wrapper around the @code{SDL2},
+@code{SDL2_mixer}, @code{SDL2_image}, @code{SDL2_ttf}, and @code{SDL2_gfx}
+libraries.  Instead of relying on C code, it uses the built-in ctypes module
+to interface with SDL2, and provides simple Python classes and wrappers for
+common SDL2 functionality.")
+    (license license:cc0)))
+
 (define-public python-pystache
   (package
     (name "python-pystache")
@@ -5384,7 +5457,14 @@ include_dirs = ~:*~a/include~%" #$(this-package-input "openblas"))))))
                               ;; These tests may fail on 32-bit systems (see:
                               ;; https://github.com/numpy/numpy/issues/18387).
                               "not test_float_remainder_overflow "
-                              "and not test_pareto"))))))))
+                              "and not test_pareto"
+                              ;; These tests seem to fail on machines without
+                              ;; an FPU is still under investigation upstream.
+                              ;; https://github.com/numpy/numpy/issues/20635
+                              #$@(if (target-riscv64?)
+                                   `(" and not test_float"
+                                     " and not test_fpclass")
+                                   '())))))))))
     (native-inputs
      (list python-cython
            python-hypothesis-next
@@ -10256,6 +10336,26 @@ cyclomatic complexity of Python source code.")
      (list python-pycodestyle-2.6 python-entrypoints python-pyflakes-2.2
            python-mccabe))))
 
+(define-public python-flake8-blind-except
+  (package
+    (name "python-flake8-blind-except")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "flake8-blind-except" version))
+       (sha256
+        (base32 "05nxsxfzfhwsm8gys90228imm2qbnqnw5y8bfqyfngnbkmd5fnpj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))                    ; no tests
+    (native-inputs (list python-pycodestyle))
+    (home-page "https://github.com/elijahandrews/flake8-blind-except")
+    (synopsis "Check for blind @code{except:} statements")
+    (description "This package provides a flake8 extension that checks for
+blind @code{except:} statements.")
+    (license license:expat)))
+
 (define-public python-flake8-bugbear
   (package
     (name "python-flake8-bugbear")
@@ -10316,6 +10416,29 @@ These should be used in preference to using a backslash for line continuation.
 @end quotation")
     (license license:asl2.0)))
 
+(define-public python-flake8-debugger
+  (package
+    (name "python-flake8-debugger")
+    (version "4.1.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "flake8-debugger" version))
+       (sha256
+        (base32 "0h1qlzbxxhjsw6kg3mcml9h8byy77m9a5z06z2dnvqs115b05c2j"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f))              ; no tests in PyPI and no setup.py in GitHub
+    (propagated-inputs
+     (list python-flake8 python-pycodestyle))
+    (home-page "https://github.com/jbkahn/flake8-debugger")
+    (synopsis "@code{ipdb} and @code{pdb} statement checker plugin for flake8")
+    (description "This package provides a Flake8 plugin that checks for
+@code{ipdb} and @code{pdb} imports and set traces, as well as
+@code{from IPython.terminal.embed}, @code{import InteractiveShellEmbed}
+and @code{InteractiveShellEmbed()()}.")
+    (license license:expat)))
+
 (define-public python-flake8-implicit-str-concat
   (package
     (name "python-flake8-implicit-str-concat")
@@ -11846,7 +11969,6 @@ from the earlier standard from 2003.  The library is also intended to act as a
 suitable drop-in replacement for the “encodings.idna” module that comes with
 the Python standard library but currently only supports the older 2003
 specification.")
-    (properties `((python2-variant . ,(delay python2-idna))))
     (license license:bsd-4)))
 
 (define-public python-libsass
@@ -12347,7 +12469,11 @@ libmagic.")))
                            ;; This test validates that 'pydevd' is not in the
                            ;; exception message, but it is due to being part
                            ;; of the build file name present in the message.
-                           "and not test_evaluate_exception_trace")))))
+                           "and not test_evaluate_exception_trace "
+                           ;; These fail on systems with YAMA LSM’s ptrace
+                           ;; scope > 0. Upstream issue:
+                           ;; https://github.com/fabioz/PyDev.Debugger/issues/218
+                           "and not test_attach_to_pid")))))
             (add-after 'install 'install-attach-binary
               (lambda _
                 (install-file "attach.so"
@@ -12392,6 +12518,7 @@ and other @acronym{IDEs, Integrated Development Environments}.")
     (build-system python-build-system)
     (arguments
      (list
+      #:tests? #f ; Fail on systems with YAMA LSM’s ptrace scope > 0.
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'patch-sh-in-tests
@@ -12412,17 +12539,18 @@ and other @acronym{IDEs, Integrated Development Environments}.")
               (setenv "DEBUGPY_BUNDLING_DISABLED" "1")))
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
-              (invoke "pytest" "-vv"
-                      "-n" (number->string (parallel-job-count))
-                      "-k"
-                      (string-append
-                       ;; These tests cannot be run in parallel because their
-                       ;; test data would not be copied by xdist and lead to
-                       ;; import errors. (see:
-                       ;; https://github.com/microsoft/debugpy/issues/342 and
-                       ;; https://github.com/microsoft/debugpy/issues/880).
-                       "not test_custom_python_args "
-                       "and not test_autokill ")))))))
+              (when tests?
+                (invoke "pytest" "-vv"
+                        "-n" (number->string (parallel-job-count))
+                        "-k"
+                        (string-append
+                         ;; These tests cannot be run in parallel because their
+                         ;; test data would not be copied by xdist and lead to
+                         ;; import errors. (see:
+                         ;; https://github.com/microsoft/debugpy/issues/342 and
+                         ;; https://github.com/microsoft/debugpy/issues/880).
+                         "not test_custom_python_args "
+                         "and not test_autokill "))))))))
     (native-inputs
      ;; See: https://raw.githubusercontent.com/microsoft/debugpy/
      ;;      main/tests/requirements.txt.
@@ -12923,10 +13051,10 @@ time.")
            texlive-unicode-math
            texlive-xcolor
            (texlive-updmap.cfg (list texlive-amsfonts
+                                     texlive-amsmath
                                      texlive-eurosym
                                      texlive-fonts-rsfs
                                      texlive-jknappen
-                                     texlive-latex-amsmath
                                      texlive-latex-ucs
                                      texlive-lm
                                      texlive-lm-math
@@ -14366,6 +14494,97 @@ named for) extending the Levenberg-Marquardt method from
 enhancements to optimization and data fitting problems.")
     (license license:bsd-3)))
 
+(define-public python-bokeh
+  (package
+    (name "python-bokeh")
+    (version "2.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "bokeh" version))
+              (sha256
+               (base32
+                "00sbhya9vfdv3yi07j6mxwx1x1h9497nhd3smdjrcdxgc48q0czg"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; These require selenium.
+               (delete-file "tests/unit/bokeh/io/test_export.py")
+               (delete-file "tests/unit/bokeh/io/test_webdriver.py")
+               (delete-file "tests/unit/bokeh/embed/test_standalone.py")
+
+               ;; Doesn't find ManagedServerLoop fixture
+               (delete-file "tests/unit/bokeh/test_client_server.py")
+
+               ;; This fails because of the Guix wrapper around pytest
+               (delete-file "tests/unit/bokeh/io/test_util__io.py")
+
+               ;; Fixture ipython not found.
+               (delete-file "tests/unit/bokeh/application/handlers/test_notebook__handlers.py")
+               (delete-file "tests/unit/bokeh/command/subcommands/test_info.py")
+
+               ;; pd fixture not found.
+               (delete-file "tests/unit/bokeh/models/test_mappers.py")
+               (delete-file "tests/unit/bokeh/models/util/test_structure.py")
+               (delete-file "tests/unit/bokeh/plotting/test__plot.py")
+               (delete-file "tests/unit/bokeh/plotting/test__graph.py")
+               (delete-file "tests/unit/bokeh/plotting/test_figure.py")
+               (delete-file "tests/unit/bokeh/core/test_json_encoder.py")
+               (delete-file "tests/unit/bokeh/core/property/test_bases.py")
+               (delete-file "tests/unit/bokeh/core/property/test_container.py")
+               (delete-file "tests/unit/bokeh/core/property/test_dataspec.py")
+               (delete-file "tests/unit/bokeh/core/property/test_datetime.py")
+               (delete-file "tests/unit/bokeh/core/property/test_pandas.py")
+
+               ;; nx fixture not found.
+               (delete-file "tests/unit/bokeh/plotting/test_graph.py")
+               (delete-file "tests/unit/bokeh/models/test_graphs.py")
+               (delete-file "tests/unit/bokeh/io/test_showing.py")
+               (delete-file "tests/unit/bokeh/document/test_events__document.py")
+
+               ;; These tests need external sample data
+               (delete-file-recursively "tests/unit/bokeh/sampledata/")
+
+               ;; Attempts to install something via npm.
+               (delete-file "tests/unit/bokeh/test_ext.py")
+
+               ;; More failures due to set up problems.
+               (delete-file "tests/unit/bokeh/server/test_server__server.py")
+               (delete-file "tests/unit/bokeh/server/test_tornado__server.py")
+               (delete-file "tests/unit/bokeh/util/test_serialization.py")
+               (delete-file "tests/unit/bokeh/util/test_hex.py")
+               (delete-file "tests/unit/bokeh/models/test_sources.py")
+               (delete-file "tests/unit/bokeh/embed/test_bundle.py")
+
+               (invoke "pytest" "-v")))))))
+    (propagated-inputs
+     (list node-lts
+           python-jinja2
+           python-numpy
+           python-packaging
+           python-pillow
+           python-pyyaml
+           python-tornado
+           python-typing-extensions))
+    (native-inputs
+     (list python-beautifulsoup4
+           python-dateutil
+           python-flaky
+           python-nbconvert
+           python-pandas
+           python-pytest
+           python-pytz
+           python-requests))
+    (home-page "https://github.com/bokeh/bokeh")
+    (synopsis "Interactive plots and applications in the browser from Python")
+    (description
+     "This package provides tools for interactive plots and applications in the
+browser from Python.")
+    (license license:bsd-3)))
+
 (define-public python-boto
   (package
     (name "python-boto")
@@ -17783,6 +18002,28 @@ JSON) codec.")
      Record Format (DWARF).")
     (license license:public-domain)))
 
+(define-public python-pefile
+  (package
+    (name "python-pefile")
+    (version "2022.5.30")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/erocarrera/pefile")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1qj90a0s2gd5hn2zggypqc1077inid5dcl1fp5973b04kf2b9z8a"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-future))
+    (home-page "https://github.com/erocarrera/pefile")
+    (synopsis "Portable Executable (PE) file parser")
+    (description "This python library provides interfaces for parsing and
+working with Portable Executable (PE) files.  It makes to most information
+from the header, as well as section details and data available.")
+    (license license:expat)))
+
 (define-public python-pyev
   (package
     (name "python-pyev")
@@ -19933,22 +20174,14 @@ design and layout.")
 (define-public python-pkginfo
   (package
     (name "python-pkginfo")
-    (version "1.8.2")
+    (version "1.8.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pkginfo" version))
        (sha256
-        (base32 "1zrbn2gblb1q1rx0jlbd0vc9h1dm1bj0760p40ff5qjhcw5hsbjl"))))
+        (base32 "0z46w559hrl79gf7navgzimj21ma821wka27jh58fvyqilqs8kd8"))))
     (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'patch-tests
-           (lambda _
-             (substitute* "pkginfo/tests/test_installed.py"
-               (("test_ctor_w_package_no_PKG_INFO")
-                "_test_ctor_w_package_no_PKG_INFO")))))))
     (native-inputs
      (list python-wheel))
     (home-page "https://code.launchpad.net/~tseaver/pkginfo/trunk")
@@ -21617,19 +21850,24 @@ and corruption checks.")
 (define-public python-requests-file
   (package
     (name "python-requests-file")
-    (version "1.4.3")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "requests-file" version))
        (sha256
-        (base32
-         "1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g"))))
+        (base32 "13kx4k83i9zcv20h0fnmawwwdzhcmw1z97mqib1h379qsc445mq7"))))
     (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "python" "tests/test_requests_file.py")))))))
     (propagated-inputs
      (list python-requests python-six))
-    (home-page
-     "https://github.com/dashea/requests-file")
+    (home-page "https://github.com/dashea/requests-file")
     (synopsis "File transport adapter for Requests")
     (description
      "Requests-File is a transport adapter for use with the Requests Python
@@ -22171,6 +22409,34 @@ which supports the spawning of processes using the API of the standard
 library's @code{threading} module.")
     (license license:bsd-3)))
 
+(define-public python-multiprocessing-on-dill
+  (package
+    (name "python-multiprocessing-on-dill")
+    (version "3.5.0a4")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "multiprocessing_on_dill" version))
+              (sha256
+               (base32
+                "1rs5a3hx1fcpfsxxkl5kx6g06c82wqjqgdqyny5l1ggl1wq0rmfn"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv")))))))
+    (propagated-inputs (list python-dill))
+    (native-inputs (list python-check-manifest python-pytest python-wheel))
+    (home-page "https://github.com/sixty-north/multiprocessing_on_dill")
+    (synopsis "Multiprocessing using dill instead of pickle")
+    (description
+     "This package provides a friendly fork of multiprocessing which uses dill
+instead of pickle.")
+    (license license:psfl)))
+
 (define-public python-toolrack
   (package
     (name "python-toolrack")
@@ -22383,14 +22649,14 @@ data.")
 (define-public python-locket
   (package
     (name "python-locket")
-    (version "0.2.0")
+    (version "1.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "locket" version))
        (sha256
         (base32
-         "1d4z2zngrpqkrfhnd4yhysh66kjn4mblys2l06sh5dix2p0n7vhz"))))
+         "0cm6290zm3ba62n2x2piy3s8d41hrmffda2nw18ggfwb582lq3aw"))))
     (build-system python-build-system)
     (home-page "https://github.com/mwilliamson/locket.py")
     (synopsis "File-based locks for Python")
@@ -23582,6 +23848,23 @@ several convenience Python scripts, including \"classic\" hex2bin and bin2hex
 converters and more, those based on the library itself.")
     (license license:bsd-3)))
 
+(define-public python-interlap
+  (package
+    (name "python-interlap")
+    (version "0.2.7")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "interlap" version))
+              (sha256
+               (base32
+                "1jbfh00bkrf0i5psa6n75rlgmqp5389xixa9j29w8rxhah6g7r1i"))))
+    (build-system python-build-system)
+    (home-page "https://brentp.github.io/interlap")
+    (synopsis "Fast, simple interval overlap testing")
+    (description "InterLap does fast interval overlap testing with a simple Python data
+structure.")
+    (license license:expat)))
+
 (define-public python-pykwalify
   (package
     (name "python-pykwalify")
@@ -24395,7 +24678,7 @@ with features similar to the @command{wget} utility.")
 (define-public offlate
   (package
     (name "offlate")
-    (version "0.5")
+    (version "0.6.1")
     (source
       (origin
         (method git-fetch)
@@ -24405,33 +24688,37 @@ with features similar to the @command{wget} utility.")
         (file-name (git-file-name name version))
         (sha256
          (base32
-          "13pqnbl05wcyldfvl75fp89vjgwsvxyc69vhnb17kkha2rc2k1h7"))))
+          "1sx5cv8pamyw1m089b6x8ykaxdkx26jk9cblhbzlf0m3ckz52jik"))))
     (build-system python-build-system)
     (arguments
      ;; No tests
      `(#:tests? #f
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-for-pygit2
-                    (lambda _
-                      (substitute* "offlate/systems/git.py"
-                        (("pygit2.remote.RemoteCallbacks")
-                         "pygit2.RemoteCallbacks")))))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'generate-fonts
+           (lambda _
+             (invoke "make" "fonts")))
+         (add-before 'build 'generate-translations
+           (lambda _
+             (invoke "make" "update-langs"))))))
     (propagated-inputs
       (list python-android-stringslib
             python-dateutil
             python-gitlab
             python-lxml
             python-polib
+            python-pycountry
             python-pyenchant
             python-pygit2
             python-pygithub
             python-pyqt
             python-requests
             python-ruamel.yaml
+            python-translate-toolkit
             python-translation-finder
             python-watchdog))
     (native-inputs
-     (list qttools))
+     (list qttools fontforge))
     (home-page "https://framagit.org/tyreunom/offlate")
     (synopsis "Offline translation interface for online translation tools")
     (description "Offlate offers a unified interface for different translation
@@ -24768,6 +25055,38 @@ usable as a configuration language.  This Python package implements parsing and
 dumping of JSON5 data structures.")
     (license license:asl2.0)))
 
+(define-public python-freetype-py
+  (package
+    (name "python-freetype-py")
+    (version "2.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "freetype-py" version ".zip"))
+       (sha256
+        (base32 "1l55wzy21jmdayjna29ahzxrf2fp68580978rs6kap1a4zilrdpr"))))
+    (build-system python-build-system)
+    (native-inputs
+     (list python-setuptools-scm
+           unzip))
+    (inputs (list freetype))
+    (arguments
+     `(#:phases
+       ;; Note: the pypi archive does not contain tests, but running the check
+       ;; phase will at least test whether the module loads correctly.
+       (modify-phases %standard-phases
+         (add-before 'build 'embed-library-reference
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "freetype/raw.py"
+               (("^(filename = ).*" _ >)
+                (string-append > "\"" (search-input-file inputs "/lib/libfreetype.so")
+                               "\"\n"))))))))
+    (home-page "https://github.com/rougier/freetype-py")
+    (synopsis "Freetype python bindings")
+    (description "Freetype Python provides bindings for the FreeType
+library.  Only the high-level API is bound.")
+    (license license:bsd-3)))
+
 (define-public python-frozendict
   (package
     (name "python-frozendict")
@@ -29471,3 +29790,32 @@ Information about these scales can be
 @url{https://en.wikipedia.org/wiki/List_of_musical_scales_and_modes, found on
 Wikipedia}.")
     (license license:expat)))
+
+(define-public python-langcodes
+  (package
+    (name "python-langcodes")
+    (version "3.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "langcodes" version))
+              (sha256
+               (base32
+                "1xkyh3qdcigb18qiimbwl2669y22hhdmd89mqcd270c7lbahfkbr"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/rspeer/langcodes")
+    (synopsis "Python library for working with language codes")
+    (description
+     "This package provides a Python library for working with and comparing
+language codes.
+
+@code{python-langcodes} implements @url{http://tools.ietf.org/html/bcp47, BCP
+47}, the IETF Best Current Practices on Tags for Identifying Languages.  BCP
+47 is also known as RFC 5646.  It subsumes ISO 639 and is backward compatible
+with it, and it also implements recommendations from the
+@url{http://cldr.unicode.org/, Unicode CLDR}.
+
+@code{python-langcodes} can also refer to a database of language properties
+and names, built from Unicode CLDR and the IANA subtag registry, if you
+install @code{python-language-data}.")
+    (license license:expat)))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 9920af74fb..9593009ae3 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -354,7 +354,8 @@ system, and the core design of Django is reused in Grantlee.")
        ("nss" ,nss)
        ("openssl" ,openssl)
        ("pcre2" ,pcre2)
-       ("postgresql" ,postgresql)
+       ;; TODO: Switch to 'postgres' in the next rebuild cycle.
+       ("postgresql" ,postgresql-13)
        ("pulseaudio" ,pulseaudio)
        ("sqlite" ,sqlite)
        ("unixodbc" ,unixodbc)
diff --git a/gnu/packages/racket.scm b/gnu/packages/racket.scm
index d60a749d91..3399bcc3fe 100644
--- a/gnu/packages/racket.scm
+++ b/gnu/packages/racket.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2016, 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
@@ -28,10 +28,12 @@
   #:use-module (guix gexp)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
+  #:use-module (guix diagnostics)
+  #:use-module (guix i18n)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
   #:use-module (ice-9 match)
-  #:use-module (ice-9 exceptions)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bash)
@@ -925,13 +927,10 @@ DrRacket IDE, are not included.")
                                   ((this-package-input name)
                                    => (cut file-append <> "/lib"))
                                   (else
-                                   (raise-exception
-                                    (make-exception
-                                     (make-assertion-failure)
-                                     (make-exception-with-message
-                                      "missing input to the 'racket' package")
-                                     (make-exception-with-irritants
-                                      (list name)))))))
+                                   (raise
+                                    (formatted-message
+                                     (G_ "missing input '~a' to the 'racket' package")
+                                     name)))))
                                '("cairo"
                                  "fontconfig-minimal" ;; aka fontconfig
                                  "glib"
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 03add6d49d..5df217cc2e 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -530,7 +530,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).")
        ("python-scipy" ,python-scipy)
        ("python-sphinx" ,python-sphinx)
        ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                             texlive-latex-amsmath
+                                             texlive-amsmath
                                              ;; TODO: Add newunicodechar.
                                              texlive-graphics)))
        ("xorg-server" ,xorg-server-for-tests)))
@@ -738,7 +738,7 @@ to access different radio hardware.")
        ("libtool" ,libtool)
        ("pkg-config" ,pkg-config)
        ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts
-                                        texlive-latex-amsmath
+                                        texlive-amsmath
                                         ;; TODO: Add newunicodechar.
                                         texlive-graphics)))))
     (inputs
diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm
index 45fa5d8606..8f5bda4638 100644
--- a/gnu/packages/rails.scm
+++ b/gnu/packages/rails.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +20,7 @@
 
 (define-module (gnu packages rails)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -291,6 +292,13 @@ directly.")
        (base32
         "17vdh273cmmfpzy5m546dd13zqmimv54jjx0f7sl0zi5lwz0gnck"))))
    (build-system ruby-build-system)
+   (arguments
+    (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'delete-gemfile.lock
+            (lambda _
+              (delete-file "Gemfile.lock"))))))
    (native-inputs
     (list bundler))
    (propagated-inputs
diff --git a/gnu/packages/rocm.scm b/gnu/packages/rocm.scm
index 2ccc6d3251..6c1a83cc88 100644
--- a/gnu/packages/rocm.scm
+++ b/gnu/packages/rocm.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
 ;;;
 ;;; This program is free software; you can redistribute it and/or modify it
 ;;; under the terms of the GNU General Public License as published by
@@ -18,21 +19,25 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (gnu packages)
   #:use-module (gnu packages elf)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages opencl)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages version-control)
-  #:use-module (gnu packages vim))
+  #:use-module (gnu packages vim)
+  #:use-module (gnu packages xdisorg))
 
 ;; The components are tightly integrated and can only be upgraded as a unit. If
 ;; you want to upgrade ROCm, bump this version number and update hashes below.
-(define %rocm-version "4.3.0")
+(define %rocm-version "5.1.3")
 
 (define-public rocm-cmake
   (package
@@ -46,7 +51,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0sic2zxmzl2pb2865vvq55mbpcr8pby8v19pjdlm08pypqw5h6h6"))))
+                "1bn3l04qnc1ls9abs15s1sgsrwmkfk0g8jgdjqshrcr3ab8ffcpf"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; Tests try to use git commit
     (native-inputs (list git))
@@ -68,7 +73,7 @@ tasks needed for the ROCM software stack.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1f8xsylfajpxqjk6ayjnrry53y8b0a6lh9d72pd41nffxfyzvw3w"))))
+                "07vkrxxc49i72r0lcl6dap0qcw1bignsw920rj4h1mac3bwa8q4j"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -93,7 +98,7 @@ oclc, ocml, ockl, opencl, hip and hc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bakbm7shr0l67lph44b5cnc9psd6rivg1mp79qizaawkn380x60"))
+                "1achb3216cbm7x2d05xj7j7ivn24y11q2d2p5whw3v4ykgfqql6f"))
               (patches
                (search-patches "rocm-comgr-3.1.0-dependencies.patch"))))
     (build-system cmake-build-system)
@@ -125,10 +130,11 @@ AMDGPU code objects.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ffqhrrscmcydfqf61dk58d7nnxk6n2k68jhqfj7a4hvhlphb74f"))))
+                "0k5bchq1jhgraqrhj9q47b45n33wnd2ipwrrj39q51jzxmyyzxj2"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; Not sure how to run tests.
-    (inputs (list numactl))
+    (inputs (list libdrm numactl))
+    (native-inputs (list `(,gcc "lib") pkg-config))
     (home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface")
     (synopsis "Radeon Open Compute Thunk Interface")
     (description "User-mode API interfaces used to interact with the ROCk
@@ -147,7 +153,7 @@ driver.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0jqfqf5ymwlbpac065bhigmkgsk7mbyimdgvca7ymn38wpf80ka7"))))
+                "1j1cy64w13plgsy20mir4xm6x4xnwkyil3g03xnda6ynhd7bkhv7"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -174,10 +180,23 @@ driver.")
 applications to launch compute kernels to available HSA ROCm kernel agents.")
     (license license:ncsa)))
 
-(define-public rocclr
+;; This is the source only for ROCclr as from v4.5 it should only be built as
+;; part of a client.  A warning is output if attempting to build stand-alone
+;; and there is no install.  The previous version is kept as rocclr-4.
+(define rocclr-src
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/ROCm-Developer-Tools/ROCclr.git")
+          (commit (string-append "rocm-" %rocm-version))))
+    (sha256
+     (base32
+      "0x1frzpz9j1s516vscbdm9g5cqirvv5w7wmq2kyljcygnci7yqar"))))
+
+(define-public rocclr-4
   (package
-    (name "rocclr")
-    (version %rocm-version)
+    (name "rocclr-4")
+    (version "4.3.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -232,39 +251,41 @@ allows runtimes to work on Windows as well as on Linux without much effort.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1cglpiaj3ny1z74ssmy6j63vj92sfy4q38ix6qsga0mg3b2wvqz3"))
+                "1rirvc8h0ahicw1vw4js4jq5gw25x47gmg3gczmyz97c72wvgfiv"))
               (patches
                (search-patches
-                "rocm-opencl-runtime-3.10.0-includes.patch"
                 ;; Do not install libOpenCL, which ocl-icd provides.
                 "rocm-opencl-runtime-4.3-noopencl.patch"
                 ;; Guix includes a program clinfo already.
-                "rocm-opencl-runtime-4.3-noclinfo.patch"
-                ;; cltrace linking fails, remove it.
-                "rocm-opencl-runtime-4.3-nocltrace.patch"))))
+                "rocm-opencl-runtime-4.3-noclinfo.patch"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f ; Not sure how to run them.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'create-icd
-           ;; Manually install ICD, which simply consists of dumping
-           ;; the path of the .so into the correct file.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (vendors (string-append out "/etc/OpenCL/vendors"))
-                    (sopath (string-append out "/lib/libamdocl64.so")))
-               (mkdir-p vendors)
-               (with-output-to-file (string-append vendors "/amdocl64.icd")
-                 (lambda _ (display sopath)))))))))
+     (list
+      #:tests? #f ; Not sure how to run them.
+      #:configure-flags
+      #~(list
+         (string-append "-DAMD_OPENCL_PATH=" #$(package-source this-package))
+         ;; The ROCclr source is needed to build the runtime.
+         (string-append "-DROCCLR_PATH=" #$rocclr-src)
+         (string-append "-DROCM_PATH=" #$output))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'create-icd
+            ;; Manually install ICD, which simply consists of dumping
+            ;; the path of the .so into the correct file.
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((vendors (string-append #$output "/etc/OpenCL/vendors"))
+                     (sopath (string-append #$output "/lib/libamdocl64.so")))
+                (mkdir-p vendors)
+                (with-output-to-file (string-append vendors "/amdocl64.icd")
+                  (lambda _ (display sopath)))))))))
     (inputs
-     (list mesa
-           rocm-comgr
-           rocr-runtime
-           rocclr
+     (list glew
+           mesa
+           numactl
            opencl-icd-loader
-           glew))
-    (native-inputs `())
+           rocm-comgr
+           rocr-runtime))
     (synopsis "ROCm OpenCL Runtime")
     (description "OpenCL 2.0 compatible language runtime, supporting offline
 and in-process/in-memory compilation.")
@@ -282,7 +303,7 @@ and in-process/in-memory compilation.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pcm308vwkjrwnrk507iya20mkil8j0vx699w9jk2gas4n4jvkcz"))))
+                "0hdfbvn55h5lk5s8vqlmri5r94vlas8v8yjxwd9d70igslk0kr67"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ; No tests.
@@ -314,7 +335,7 @@ available to ROCm and show their properties.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0a14kwkjpiyljgzxblh031qibn6xgbxp6m12zdy1pmwb2c44jjmm"))))
+                "0rnn2ms68mvzpcp31dk304sfqnv352i7vb48k7rw3qjahhrjm48c"))))
     (build-system cmake-build-system)
     (arguments `(#:tests? #f)) ; No tests.
     (inputs (list rocr-runtime))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 0df90f3b20..d03540213e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2017, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2017, 2019-2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@@ -6500,17 +6500,49 @@ alternative to Marshal for Object serialization.")
 (define-public ruby-pg
   (package
     (name "ruby-pg")
-    (version "1.2.3")
+    (version "1.3.5")
+    (home-page "https://github.com/ged/ruby-pg")
     (source
      (origin
-       (method url-fetch)
-       (uri (rubygems-uri "pg" version))
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
         (base32
-         "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj"))))
+         "0c2k2cibd5wwdhva68j5hhfpybm3wmvn2ym4ppn5mqmddwkjkvnk"))))
     (build-system ruby-build-system)
     (arguments
-     '(#:test-target "spec"))
+     (list
+      #:test-target "spec"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'disable-failing-tests
+            (lambda _
+              ;; These tests fail because DNS is unavailable, giving an
+              ;; unexpected fallback executable in the connection string.
+              (substitute* "spec/pg/connection_spec.rb"
+                (("it (\"accepts an URI and adds( proper)? hostaddr\")" test)
+                 (string-append "xit " test))
+                (("it \"can create a connection option string from an option\
+ string and a hash\"" test)
+                 (string-append "xit " test)))))
+               (add-before 'build 'compile
+                 (lambda _
+                   (invoke "rake" "compile")))
+               ;; Some tests rely on postgresql_lib_path.rb, but it is not
+               ;; available until the gem is installed.  Run tests after
+               ;; installing to work around it.
+               (delete 'check)
+               (add-after 'install 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (let ((new-gem (string-append #$output
+                                                 "/lib/ruby/vendor_ruby")))
+                     (setenv "GEM_PATH"
+                             (string-append (getenv "GEM_PATH") ":" new-gem))
+                     (when tests?
+                       (invoke "rspec"))))))))
     (native-inputs
      (list ruby-rake-compiler ruby-hoe ruby-rspec))
     (inputs
@@ -6518,7 +6550,6 @@ alternative to Marshal for Object serialization.")
     (synopsis "Ruby interface to PostgreSQL")
     (description "Pg is the Ruby interface to the PostgreSQL RDBMS.  It works
 with PostgreSQL 9.0 and later.")
-    (home-page "https://bitbucket.org/ged/ruby-pg")
     (license license:ruby)))
 
 (define-public ruby-byebug
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 6d97e289c2..0d5034ffb7 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
-;;; Copyright © 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019-2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
@@ -1571,7 +1571,7 @@ support for Rust.")
     (native-inputs
      (list pkg-config))
     (inputs
-     (list curl libssh2 openssl zlib))
+     (list curl libgit2-1.3 libssh2 openssl zlib))
     (home-page "https://github.com/lu-zero/cargo-c")
     (synopsis "Build and install C-compatible libraries")
     (description
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 26d6df7a94..67dc5cdaf3 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -121,12 +121,10 @@
                                    (package-native-inputs base-rust))))))
 
 ;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
-;;; to be used in source form.  The latest support for bootstrapping from
-;;; 1.39.0 is not yet released so use the latest commit (see:
-;;; https://github.com/thepowersgang/mrustc/issues/185).
-(define %mrustc-commit "c7066542f8e93d320323749216bf3c82aecb67c2")
+;;; to be used in source form.
+(define %mrustc-commit "b364724f15fd6fce8234ad8add68107c23a22151")
 (define %mrustc-source
-  (let* ((version "0.9")
+  (let* ((version "0.10")
          (commit %mrustc-commit)
          (revision "1")
          (name "mrustc"))
@@ -138,7 +136,7 @@
       (file-name (git-file-name name (git-version version revision commit)))
       (sha256
        (base32
-        "0zv1x6601s5fnnkcdlqkc4bknisqz569qb0iyb9rjsmaf1kh0na3")))))
+        "0f7kh4n2663sn0z3xib8gzw0s97qpvwag40g2vs3bfjlrbpgi9z0")))))
 
 ;;; Rust 1.39 is special in that it is built with mrustc, which shortens the
 ;;; bootstrap path.
@@ -237,10 +235,11 @@
                      ,(string-take %mrustc-commit 7) "\\\""
                      " -D VERSION_BUILDTIME="
                      "\"\\\"Thu, 01 Jan 1970 00:00:01 +0000\\\"\""
-                     " -D VERSION_GIT_ISDIRTY=0\n"))
+                     " -D VERSION_GIT_ISDIRTY=0\n")))
+                 (substitute* "minicargo.mk"
                    ;; Do not try to fetch sources from the Internet.
-                   ((": \\$\\(RUSTC_SRC_DL\\)")
-                    ":"))
+                   (("\\$\\(MINICARGO\\) \\$\\(RUSTC_SRC_DL\\)")
+                    "$(MINICARGO)"))
                  (substitute* "run_rustc/Makefile"
                    (("[$]Vtime ")
                     "$V ")
@@ -249,6 +248,9 @@
                     "")
                    ;; Patch the shebang of a generated wrapper for rustc
                    (("#!/bin/sh")
+                    (string-append "#!" (which "sh"))))
+                 (substitute* "run_rustc/rustc_proxy.sh"
+                   (("#!/bin/sh")
                     (string-append "#!" (which "sh"))))))))
          (add-after 'patch-generated-file-shebangs 'patch-cargo-checksums
            (lambda* _
@@ -322,9 +324,9 @@
 safety and thread safety guarantees.")
     (home-page "https://github.com/thepowersgang/mrustc")
 
-    ;; So far mrustc is x86_64-only.  It may support i686 soon:
+    ;; So far mrustc is (x86_64|aarch64)-only.  It may support i686 soon:
     ;; <https://github.com/thepowersgang/mrustc/issues/78>.
-    (supported-systems '("x86_64-linux"))
+    (supported-systems '("x86_64-linux" "aarch64-linux"))
 
     ;; Dual licensed.
     (license (list license:asl2.0 license:expat))))
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index d0f4068062..ad674a3989 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -368,7 +368,7 @@ are already there.")
 (define-public direnv
   (package
     (name "direnv")
-    (version "2.28.0")
+    (version "2.31.0")
     (source
      (origin (method git-fetch)
              (uri (git-reference
@@ -377,7 +377,7 @@ are already there.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0yk53jn7wafklixclka17wyjjs2g5giigjr2bd0xzy10nrzwp7c9"))))
+               "1c52izjzkdhmyrfx1gmbp34n0qpxyxw0s94f0vy3ldlg8xr36wmk"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/direnv/direnv"
@@ -405,8 +405,7 @@ are already there.")
                  (invoke "go" "test" "./...")
                  ;; Clean up from the tests, especially so that the extra
                  ;; direnv executable that's generated is removed.
-                 (invoke "make" "clean")))
-             #t)))))
+                 (invoke "make" "clean"))))))))
     (native-inputs
      (list go-github-com-burntsushi-toml go-github-com-direnv-go-dotenv
            go-github-com-mattn-go-isatty go-golang-org-x-mod which))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 2e2be68770..aa540c1012 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -35,9 +35,11 @@
 
 (define-module (gnu packages ssh)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages elf)
@@ -506,7 +508,7 @@ responsive, especially over Wi-Fi, cellular, and long-distance links.")
 (define-public dropbear
   (package
     (name "dropbear")
-    (version "2020.81")
+    (version "2022.82")
     (source
      (origin
        (method url-fetch)
@@ -514,21 +516,34 @@ responsive, especially over Wi-Fi, cellular, and long-distance links.")
              "https://matt.ucc.asn.au/dropbear/releases/"
              "dropbear-" version ".tar.bz2"))
        (sha256
-        (base32 "0fy5ma4cfc2pk25mcccc67b2mf1rnb2c06ilb7ddnxbpnc85s8s8"))
+        (base32 "1lbmmmm8f56p24c6jq74rg2kw6kl3w4i5h10vnxjigq2phmqs0rs"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            (delete-file-recursively "libtommath")
            (delete-file-recursively "libtomcrypt")
            (substitute* "configure"
-             (("-ltomcrypt") "-ltomcrypt -ltommath"))
-           #t))))
+             (("-ltomcrypt") "-ltomcrypt -ltommath"))))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--disable-bundled-libtom")
-       #:tests? #f))    ; there is no "make check" or anything similar
-    (inputs
-     (list libtomcrypt libtommath zlib))
+     (list
+      #:configure-flags #~(list "--disable-bundled-libtom")
+      ;; The test suite runs an instance of dropbear, which requires a
+      ;; resolver ("Error resolving: Servname not supported for ai_socktype").
+      #:tests? #f
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'enable-x11-forwarding
+                     (lambda _
+                       ;; The following patch was retrieved from:
+                       ;; https://github.com/mkj/dropbear/commit/
+                       ;; 0292aacdf0aa57d03f2a3ab7e53cf650e6f29389.
+                       (substitute* "svr-x11fwd.c"
+                         (("DROPBEAR_CHANNEL_PRIO_INTERACTIVE")
+                          "DROPBEAR_PRIO_LOWDELAY"))
+                       (substitute* "default_options.h"
+                         (("#define DROPBEAR_X11FWD 0")
+                          "#define DROPBEAR_X11FWD 1")))))))
+    (inputs (list libtomcrypt libtommath zlib))
     (synopsis "Small SSH server and client")
     (description "Dropbear is a relatively small SSH server and
 client.  It runs on a variety of POSIX-based platforms.  Dropbear is
@@ -785,31 +800,38 @@ shell services and remote host selection.")
 (define-public python-asyncssh
   (package
     (name "python-asyncssh")
-    (version "2.7.1")
+    (version "2.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "asyncssh" version))
        (sha256
         (base32
-         "0lnhh2h1mj79j66ni883s9f3xldnbjb10vh80g24b7m003mm524c"))))
+         "0mkvyv2fmbdfnfdh7g2im0gxnp8hwxv5g1xdazfsipd9ggknrhsr"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-cryptography python-pyopenssl python-gssapi
-           python-bcrypt))
+           python-bcrypt python-typing-extensions))
     (native-inputs
-     (list openssh openssl))
+     (list openssh openssl python-fido2 python-aiofiles netcat
+           python-pytest))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-tests
            (lambda* _
+             (substitute* "tests/test_connection.py"
+               ;; nc is always available.
+               (("which nc") "true"))
              (substitute* "tests/test_agent.py"
                ;; TODO Test fails for unknown reason
                (("(.+)async def test_confirm" all indent)
                 (string-append indent "@unittest.skip('disabled by guix')\n"
-                               indent "async def test_confirm")))
-             #t)))))
+                               indent "async def test_confirm")))))
+         (replace 'check
+           (lambda* (#:key tests? inputs outputs #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv")))))))
     (home-page "https://asyncssh.readthedocs.io/")
     (synopsis "Asynchronous SSHv2 client and server library for Python")
     (description
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 9fe5bbd95e..88d7f534b4 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -1137,14 +1137,14 @@ designed by Cynthia Brewer as described at http://colorbrewer2.org")
 (define-public r-sendmailr
   (package
     (name "r-sendmailr")
-    (version "1.2-1")
+    (version "1.2-1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sendmailR" version))
        (sha256
         (base32
-         "0z7ipywnzgkhfvl4zb2fjwl1xq7b5wib296vn9c9qgbndj6b1zh4"))))
+         "1dgxl6wnadlw5b3m4has5zalpk3pd5j70hfps92b9lbx4i7xbmr0"))))
     (properties `((upstream-name . "sendmailR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1840,24 +1840,25 @@ database.")
 (define-public r-dbplyr
   (package
     (name "r-dbplyr")
-    (version "2.1.1")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dbplyr" version))
        (sha256
         (base32
-         "025wqpmxdhzblb0pf58m3qh5h6bf5x8qvkf47vyl1cjsp13wz95b"))))
+         "1qfwk8g8z5l9vbh4pj53pippsqsiqmn8qbvm1h1v7y29jcn0jvja"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-assertthat
            r-blob
+           r-cli
            r-dbi
            r-dplyr
-           r-ellipsis
            r-glue
            r-lifecycle
            r-magrittr
+           r-pillar
            r-purrr
            r-r6
            r-rlang
@@ -2952,13 +2953,13 @@ engine (version 3.8.8.2) is included.")
 (define-public r-rcurl
   (package
     (name "r-rcurl")
-    (version "1.98-1.6")
+    (version "1.98-1.7")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RCurl" version))
               (sha256
                (base32
-                "18nif4phr5vfhri07mnchiym0qfm31ak9nxvb2v9ac84mij6idbc"))))
+                "138qfkw03j0g5wby24811w9f3virz1fxlgkgnavf6gv3c00jvhia"))))
     (properties `((upstream-name . "RCurl")))
     (build-system r-build-system)
     (arguments
@@ -2994,13 +2995,13 @@ ldap, and also supports cookies, redirects, authentication, etc.")
 (define-public r-xml
   (package
     (name "r-xml")
-    (version "3.99-0.9")
+    (version "3.99-0.10")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "XML" version))
               (sha256
                (base32
-                "02ba407ddgil4jbjzrbw756hlxzy3mihc5dk1ngcbvsp67gxw5cw"))))
+                "0nzkgylnqnnvsh27007np8klwv2xi9wqxhw05mzczhxdxnsr2nf4"))))
     (properties
      `((upstream-name . "XML")))
     (build-system r-build-system)
@@ -3115,16 +3116,16 @@ statements.")
 (define-public r-segmented
   (package
     (name "r-segmented")
-    (version "1.5-0")
+    (version "1.6-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "segmented" version))
        (sha256
         (base32
-         "1d8np6psnmqyq3bxxd17ivp6pq6p8rx5hal4bgz8ckc4d1i9lp6n"))))
+         "0sg59j59kz3zrwl3mi4ps1qw3hvwljygqa1d652vjdsx9w57zbvb"))))
     (build-system r-build-system)
-    (propagated-inputs (list r-mass))
+    (propagated-inputs (list r-mass r-nlme))
     (home-page "https://cran.r-project.org/web/packages/segmented")
     (synopsis "Regression models with breakpoints estimation")
     (description
@@ -3834,14 +3835,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.")
 (define-public r-e1071
   (package
     (name "r-e1071")
-    (version "1.7-9")
+    (version "1.7-11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "e1071" version))
        (sha256
         (base32
-         "09i2hmyf1bxansqp24p9n9djlzzarclqs173gjjv3fg0giga3ycv"))))
+         "0byr92csnydycdarxdkq4cghddnx5qp6fqxm6wnp9g6aww88xha8"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-class r-proxy))
@@ -3946,13 +3947,13 @@ want to migrate to S4.")
 (define-public r-r-oo
   (package
     (name "r-r-oo")
-    (version "1.24.0")
+    (version "1.25.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "R.oo" version))
               (sha256
                (base32
-                "1divisff26fmiqg6vmabnwlrx079c066r8qvkakfp336vnwdm89p"))))
+                "1vxy8yw4yblb3vgl64yh0b6zf1d51rnc2c23kmyyw629fxhr1cdq"))))
     (properties `((upstream-name . "R.oo")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5101,14 +5102,14 @@ to change in the future.")
 (define-public r-flexmix
   (package
     (name "r-flexmix")
-    (version "2.3-17")
+    (version "2.3-18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flexmix" version))
        (sha256
         (base32
-         "0jangf89174p0idh9afbicfiln2sz8jxc3bjc6n0j9036dw9n09n"))))
+         "0lcvsvmhkbwac50l109an6prl1ng4mkyvr436344b20897ph28j6"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice r-modeltools r-nnet))
@@ -5724,17 +5725,15 @@ normals.")
 (define-public r-mnormt
   (package
     (name "r-mnormt")
-    (version "2.0.2")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
         (uri (cran-uri "mnormt" version))
         (sha256
           (base32
-           "0d7ka4l4fl1wi77r2r81dc91n6cbj2xrb3lsizz5y0ziscva0sjw"))))
+           "1f07ngi89px437az030anbh8afmf6n635ax1akxak2idwc2qaj9d"))))
     (build-system r-build-system)
-    (propagated-inputs
-     (list r-tmvnsim))
     (native-inputs
      (list gfortran))
     (home-page "http://azzalini.stat.unipd.it/SW/Pkg-mnormt")
@@ -6409,7 +6408,7 @@ files, including Rmarkdown files.")
 (define-public readstat
   (package
     (name "readstat")
-    (version "1.1.5")
+    (version "1.1.8")
     (source
      (origin
        (method git-fetch)
@@ -6418,7 +6417,7 @@ files, including Rmarkdown files.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "00sdmaq0qzp6kyv53fpfi6jf3iv4pd0ap0gmw3mbfip52bbnl55w"))))
+        (base32 "1r04lq45h1yn34v1mgfiqjfzyaqv4axqlby0nkandamcsqyhc7y4"))))
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake gnu-gettext libtool))
@@ -6433,18 +6432,21 @@ popular stats packages like SAS, Stata and SPSS.")
 (define-public r-quantpsyc
   (package
     (name "r-quantpsyc")
-    (version "1.5")
+    (version "1.6")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "QuantPsyc" version))
         (sha256
           (base32
-            "1i9bh88r8zxndzjqsj14qw64gnvm5a9kvhjhzk3qsrvl3qzjgh93"))))
+            "1dbj830p5837fiwa800nzsaf19lf95vc3n7jmds2q9v06mrz6syq"))))
     (properties `((upstream-name . "QuantPsyc")))
     (build-system r-build-system)
     (propagated-inputs
-      (list r-boot r-mass))
+     (list r-boot
+           r-dplyr
+           r-mass
+           r-purrr))
     (home-page "https://cran.r-project.org/web/packages/QuantPsyc/")
     (synopsis "Quantitative Psychology Tools")
     (description
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 4ad21fd05a..4dfc51b283 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -835,7 +835,7 @@ eye-candy, customizable, and reasonably lightweight.")
 (define-public foot
   (package
     (name "foot")
-    (version "1.11.0")
+    (version "1.12.1")
     (home-page "https://codeberg.org/dnkl/foot")
     (source (origin
               (method git-fetch)
@@ -843,7 +843,7 @@ eye-candy, customizable, and reasonably lightweight.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1d9bk8lhmw5lc8k0mw80g0vbwgxyh3gw5c7ppy3sir07s9y0y0fn"))))
+                "14jqs4sarxbrgi5pxz0afqa9jxq90cb5ayqd21qj2n65whqa5bpk"))))
     (build-system meson-build-system)
     (arguments
      `(;; Using a "release" build is recommended both for performance, and
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 529ecee891..18e1155b95 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013, 2014, 2015, 2016, 2022 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
@@ -1460,139 +1460,6 @@ Taco Hoekwater.")
                          "/fonts/source/public/amsfonts/"
                          "/fonts/type1/public/amsfonts/"
                          "/fonts/afm/public/amsfonts/"
-                         "/fonts/map/dvips/amsfonts/"
-                         "/tex/plain/amsfonts/"
-                         "/doc/fonts/amsfonts/")
-                   (base32
-                    "15q70nkjf8wqzbd5ivcdx3i2sdgqxjb38q0qn9a2qw9i0qcnx6zw"))))
-    (package
-      (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-amsfonts/fixed)
-      (arguments
-       (substitute-keyword-arguments (package-arguments template)
-         ((#:build-targets _ #t)
-          '(list "amsfonts.ins"))
-         ((#:tex-directory _ #t)
-          "latex/amsfonts")
-         ((#:modules modules '())
-          `((guix build texlive-build-system)
-            (guix build utils)
-            (ice-9 match)
-            (srfi srfi-1)
-            (srfi srfi-26)))
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'build 'build-fonts
-               (lambda* (#:key inputs #:allow-other-keys)
-                 ;; Allow self fonts sources and other resources to be
-                 ;; discovered.
-                 (setenv "GUIX_TEXMF" (string-append (getenv "GUIX_TEXMF")
-                                                     ":" (getcwd)))
-
-                 (let ((build (string-append (getcwd) "/build-fonts")))
-                   (mkdir-p build)
-                   (with-directory-excursion "fonts/source/public/amsfonts"
-                     (for-each (lambda (font)
-                                 (format #t "building font ~a\n" (basename font ".mf"))
-                                 (with-directory-excursion (dirname font)
-                                   (invoke "mf" "-progname=mf"
-                                           (string-append "-output-directory=" build)
-                                           (string-append "\\"
-                                                          "mode:=ljfour; "
-                                                          "mag:=1; "
-                                                          "nonstopmode; "
-                                                          "input "
-                                                          (getcwd) "/"
-                                                          (basename font ".mf")))))
-                               (find-files "." "[0-9]+\\.mf$"))))
-
-                 ;; There are no metafont sources for the Euler fonts, so we
-                 ;; convert the afm files instead.
-                 (let ((build (string-append (getcwd) "/build-fonts/euler")))
-                   (mkdir build)
-                   (with-directory-excursion "fonts/afm/public/amsfonts/euler"
-                     (for-each (lambda (font)
-                                 (format #t "converting afm font ~a\n" (basename font ".afm"))
-                                 (invoke "afm2tfm" font
-                                         (string-append build "/"
-                                                        (basename font ".tfm"))))
-                               (find-files "(cmextra|cyrillic|dummy|euler|symbols)"
-                                           "\\.afm$")))
-
-                   ;; Frustratingly, not all fonts can be created this way.  To
-                   ;; generate eufm8.tfm, for example, we first scale down
-                   ;; eufm10.afm to eufm8.pl, and then generate the tfm file from
-                   ;; the pl file.
-                   (setenv "TEXINPUTS"
-                           (string-append ":" build "//:"
-                                          (getcwd) "/fonts/afm/public/amsfonts//:"
-                                          (getcwd) "/source/latex/amsfonts//:"))
-                   (with-directory-excursion build
-                     (for-each (match-lambda
-                                 (((target-base target-size)
-                                   (source-base source-size))
-                                  (let ((factor (number->string
-                                                 (truncate/ (* 1000 target-size)
-                                                            source-size))))
-                                    (invoke "tex"
-                                            "-interaction=scrollmode"
-                                            (string-append "\\input fontinst.sty "
-                                                           "\\transformfont{" target-base "}"
-                                                           "{\\scalefont{" factor "}"
-                                                           "{\\fromafm{" source-base "}}} "
-                                                           "\\bye")))
-                                  (invoke "pltotf"
-                                          (string-append target-base ".pl")
-                                          (string-append target-base ".tfm"))
-                                  (delete-file (string-append target-base ".pl"))))
-
-                               '((("eufm8" 8) ("eufm10" 10))
-
-                                 (("eufb6" 6) ("eufb7" 7))
-                                 (("eufb8" 8) ("eufb10" 10))
-                                 (("eufb9" 9) ("eufb10" 10))
-
-                                 (("eufm6" 6) ("eufb7" 7))
-                                 (("eufm9" 9) ("eufb10" 10))
-
-                                 (("eurb6" 6) ("eurb7" 7))
-                                 (("eurb8" 8) ("eurb10" 10))
-                                 (("eurb9" 9) ("eurb10" 10))
-
-                                 (("eurm6" 6) ("eurm7" 7))
-                                 (("eurm8" 8) ("eurm10" 10))
-                                 (("eurm9" 9) ("eurm10" 10))))))))
-             (add-after 'install 'install-generated-fonts
-               (lambda* (#:key inputs outputs #:allow-other-keys)
-                 (copy-recursively "build-fonts"
-                                   (string-append
-                                    (assoc-ref outputs "out")
-                                    "/share/texmf-dist/fonts/tfm/public/amsfonts"))))))))
-      (native-inputs
-       (list (texlive-updmap.cfg (list texlive-fontinst))))
-      (home-page "https://www.ctan.org/pkg/amsfonts")
-      (synopsis "TeX fonts from the American Mathematical Society")
-      (description
-       "This package provides an extended set of fonts for use in mathematics,
-including: extra mathematical symbols; blackboard bold letters (uppercase
-only); fraktur letters; subscript sizes of bold math italic and bold Greek
-letters; subscript sizes of large symbols such as sum and product; added sizes
-of the Computer Modern small caps font; cyrillic fonts (from the University of
-Washington); Euler mathematical fonts.  All fonts are provided as Adobe Type 1
-files, and all except the Euler fonts are provided as Metafont source.  The
-distribution also includes the canonical Type 1 versions of the Computer
-Modern family of fonts.  The Euler fonts are supported by separate packages;
-details can be found in the documentation.")
-      (license license:silofl1.1))))
-
-(define-public texlive-amsfonts/fixed
-  (let ((template (simple-texlive-package
-                   "texlive-amsfonts-fixed"
-                   (list "/source/latex/amsfonts/"
-                         "/fonts/source/public/amsfonts/"
-                         "/fonts/type1/public/amsfonts/"
-                         "/fonts/afm/public/amsfonts/"
                          "/fonts/tfm/public/amsfonts/"
                          "/fonts/map/dvips/amsfonts/"
                          "/tex/plain/amsfonts/"
@@ -4257,37 +4124,6 @@ loading fonts by their proper names instead of file names.")
 
 (define-deprecated-package texlive-luatex-luaotfload texlive-luaotfload)
 
-(define-public texlive-latex-amsmath
-  (package
-    (name "texlive-latex-amsmath")
-    (version (number->string %texlive-revision))
-    (source (origin
-              (method svn-fetch)
-              (uri (texlive-ref "latex" "amsmath"))
-              (file-name (string-append name "-" version "-checkout"))
-              (sha256
-               (base32
-                "172zybw7rp05jca8wl6x0mh6z6gncdyi1j9wdfyjnhbvqw0z4wi4"))))
-    ;; This package misses important files
-    (replacement texlive-amsmath)
-    (build-system texlive-build-system)
-    (arguments '(#:tex-directory "latex/amsmath"))
-    (home-page "https://www.ctan.org/pkg/amsmath")
-    (synopsis "AMS mathematical facilities for LaTeX")
-    (description
-     "This is the principal package in the AMS-LaTeX distribution.  It adapts
-for use in LaTeX most of the mathematical features found in AMS-TeX; it is
-highly recommended as an adjunct to serious mathematical typesetting in LaTeX.
-When amsmath is loaded, AMS-LaTeX packages @code{amsbsyamsbsy} (for bold
-symbols), @code{amsopnamsopn} (for operator names) and
-@code{amstextamstext} (for text embedded in mathematics) are also loaded.
-This package is part of the LaTeX required distribution; however, several
-contributed packages add still further to its appeal; examples are
-@code{empheqempheq}, which provides functions for decorating and highlighting
-mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
-definitions.")
-    (license license:lppl1.3c+)))
-
 (define-public texlive-amsmath
   (let ((template (simple-texlive-package
                    "texlive-amsmath"
@@ -4334,6 +4170,8 @@ mathematics, and @code{ntheoremntheorem}, for specifying theorem (and similar)
 definitions.")
       (license license:lppl1.3c+))))
 
+(define-deprecated-package texlive-latex-amsmath texlive-amsmath)
+
 (define-public texlive-amscls
   (let ((template (simple-texlive-package
                    "texlive-amscls"
@@ -4374,8 +4212,6 @@ distribution.")
                     "0qr5vjp79g1c1l6k173qhfdfabgbky73wymzhm56pazx4a8r08wz"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-babel/fixed)
       (arguments
        (substitute-keyword-arguments (package-arguments template)
          ((#:tex-directory _ #t)
@@ -4383,14 +4219,27 @@ distribution.")
          ((#:phases phases)
           `(modify-phases ,phases
              (add-after 'unpack 'chdir
-               (lambda _ (chdir "source/latex/babel/") #t))
+               (lambda _ (chdir "source/latex/babel/")))
              ;; This package tries to produce babel.aux twice but refuses to
              ;; overwrite the first one.
              (add-before 'build 'fix-ins
                (lambda _
                  (substitute* "babel.ins"
-                   (("askonceonly") "askforoverwritefalse"))
-                 #t))
+                   (("askonceonly") "askforoverwritefalse"))))
+           (add-before 'copy-files 'unchdir
+             (lambda _
+               (chdir "../../..")))
+           (add-after 'copy-files 'delete-extra-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/source/latex/babel/build"))
+               (delete-file
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/tex/generic/babel/bbind.ist"))
+               (delete-file
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/tex/generic/babel/bbglo.ist"))))
              (add-after 'install 'install-locales
                (lambda* (#:key outputs #:allow-other-keys)
                  (let ((locale-directory
@@ -4413,29 +4262,6 @@ what has to be done for each language.  Users of XeTeX are advised to use the
 polyglossia package rather than Babel.")
       (license license:lppl1.3+))))
 
-(define-public texlive-babel/fixed
-  (package
-    (inherit texlive-babel)
-    (name "texlive-babel-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-babel)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/latex/babel/build"))
-               (delete-file
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/tex/generic/babel/bbind.ist"))
-               (delete-file
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/tex/generic/babel/bbglo.ist"))))))))))
-
 (define-deprecated-package texlive-latex-babel texlive-babel)
 
 (define-public texlive-cs
@@ -4729,8 +4555,6 @@ language that is written in a Cyrillic alphabet.")
                     "11f14dzhwsy4pli21acccip43d36nf3pac33ihjffnps1i2mhqkd"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-psnfss/fixed)
       (arguments
        (substitute-keyword-arguments (package-arguments template)
          ((#:tex-directory _ #t)
@@ -4740,34 +4564,14 @@ language that is written in a Cyrillic alphabet.")
              (add-after 'unpack 'chdir
                (lambda _
                  (chdir "source/latex/psnfss")))
-             (add-after 'install 'chdir-back
-               (lambda _
-                 (chdir "../../..")))
-             (add-after 'chdir-back 'clean-installed-files
-               (lambda _
-                 ;; Remove the generated .sty files from the build area as
-                 ;; these were already copied to the default output in the
-                 ;; "install" phase.
-                 (delete-file-recursively "source/latex/psnfss/build")))
-             (add-after 'clean-installed-files 'move-doc-files
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (let* ((doc (assoc-ref outputs "doc"))
-                        (doc-root (string-append doc "/share/texmf-dist"))
-                        (doc-path "doc/latex/psnfss")
-                        (source-path "source/latex/psnfss"))
-                   ;; Move the PDF documentation to the "doc" output.
-                   (let* ((file-name "psnfss2e.pdf")
-                          (source (string-append doc-path "/" file-name))
-                          (target-dir (string-append doc-root "/" doc-path)))
-                     (mkdir-p target-dir)
-                     (copy-file source
-                                (string-append target-dir "/" file-name))
-                     (delete-file source))
-
-                   ;; Keep the remaining files together with the package's
-                   ;; source, as per the installation instructions.
-                   (copy-recursively doc-path source-path)
-                   (delete-file-recursively "doc"))))))))
+           (add-before 'copy-files 'unchdir
+             (lambda _
+               (chdir "../../..")))
+           (add-after 'copy-files 'delete-extra-files
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively
+                (string-append (assoc-ref outputs "out")
+                               "/share/texmf-dist/source/latex/psnfss/build"))))))))
       (native-inputs
        (list texlive-cm))
       (home-page "https://www.ctan.org/pkg/psnfss")
@@ -4786,23 +4590,6 @@ means to select single glyphs from symbol fonts.  The bundle as a whole is
 part of the LaTeX required set of packages.")
       (license license:lppl1.2+))))
 
-(define-public texlive-psnfss/fixed
-  (package
-    (inherit texlive-psnfss)
-    (name "texlive-psnfss-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-psnfss)
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/latex/psnfss/build"))))))))))
-
 (define-deprecated-package texlive-latex-psnfss texlive-psnfss)
 
 ;; For user profiles
@@ -4819,7 +4606,7 @@ part of the LaTeX required set of packages.")
                 texlive-latex-base
                 texlive-kpathsea       ;for mktex.opt
                 ;; LaTeX packages from the "required" set.
-                texlive-latex-amsmath
+                texlive-amsmath
                 texlive-amscls
                 texlive-babel
                 texlive-generic-babel-english
@@ -7408,8 +7195,6 @@ and alphabets with a set of text faces suitable for professional publishing.")
                     "0yn0yl6x1z9ab5gb56lhvkqabd2agz3ggxifwxkiysrj5780j29z"))))
     (package
       (inherit template)
-      ;; TODO: This package is missing files.
-      (replacement texlive-stmaryrd/fixed)
       (arguments (substitute-keyword-arguments (package-arguments template)
                    ((#:tex-directory _ #t)
                     "latex/stmaryrd")
@@ -7425,7 +7210,15 @@ and alphabets with a set of text faces suitable for professional publishing.")
                              (("^%% LaTeX2e.*") "\\input docstrip\n")
                              (("fontdef\\}\\}" line)
                               (string-append line "\n\\endbatchfile")))
-                           #t))))))
+                           #t))
+                       (add-before 'copy-files 'unchdir
+                         (lambda _
+                           (chdir "../../..")))
+                       (add-after 'copy-files 'delete-extra-files
+                         (lambda* (#:key outputs #:allow-other-keys)
+                           (delete-file-recursively
+                            (string-append (assoc-ref outputs "out")
+                                           "/share/texmf-dist/source/fonts/stmaryrd/build"))))))))
       (home-page "https://www.ctan.org/pkg/stmaryrd")
       (synopsis "St Mary Road symbols for theoretical computer science")
       (description
@@ -7436,25 +7229,6 @@ use under LaTeX; the package supports the @code{only} option (provided by the
 the whole font.")
       (license license:lppl))))
 
-(define-public texlive-stmaryrd/fixed
-  (package
-    (inherit texlive-stmaryrd)
-    (name "texlive-stmaryrd-fixed")
-    (arguments
-     (substitute-keyword-arguments (package-arguments texlive-stmaryrd)
-       ((#:tex-directory _ #t)
-        "latex/stmaryrd")
-       ((#:phases phases)
-        `(modify-phases ,phases
-           (add-before 'copy-files 'unchdir
-             (lambda _
-               (chdir "../../..")))
-           (add-after 'copy-files 'delete-extra-files
-             (lambda* (#:key outputs #:allow-other-keys)
-               (delete-file-recursively
-                (string-append (assoc-ref outputs "out")
-                               "/share/texmf-dist/source/fonts/stmaryrd/build"))))))))))
-
 (define-deprecated-package texlive-fonts-stmaryrd texlive-stmaryrd)
 
 (define-public texlive-subfigure
@@ -9754,6 +9528,27 @@ titles.")
     ;; No version of the GPL is specified.
     (license license:gpl3+)))
 
+(define-public texlive-xunicode
+  (package
+    (inherit
+     (simple-texlive-package "texlive-xunicode"
+                             (list "doc/xelatex/xunicode/"
+                                   "tex/xelatex/xunicode/")
+                             (base32
+                              "1d96i8kd2lhbykc3rxy2jjvws404f2vy1cvdcp5bdr6l9m72q1fa")
+                             #:trivial? #t))
+    (propagated-inputs (list texlive-tipa))
+    (home-page "https://ctan.org/macros/xetex/latex/xunicode")
+    (synopsis "Generate Unicode characters from accented glyphs")
+    (description
+     "The package supports XeTeX's (and other putative future similar engines')
+need for Unicode characters, in a similar way to what the fontenc does for
+8-bit (and the like) fonts: convert accent-glyph sequence to a single Unicode
+character for output.  The package also covers glyphs specified by
+packages (such as @code{tipa}) which define many commands for single text
+glyphs.")
+    (license license:lppl1.3+)))
+
 (define-public texlive-xypic
   (let ((template (simple-texlive-package
                    "texlive-xypic"
@@ -11655,6 +11450,76 @@ family and SGML-based languages.  Xindy is highly configurable, both in markup
 terms and in terms of the collating order of the text being processed.")
     (license license:gpl2+)))
 
+(define-public texlive-fmtcount
+  (package
+    (inherit (simple-texlive-package
+              "texlive-fmtcount"
+              (list "doc/latex/fmtcount/"
+                    "scripts/fmtcount/"
+                    "source/latex/fmtcount/"
+                    "tex/latex/fmtcount/")
+              (base32
+               "1biw0g6s2arq6kq52c1yfkl0vzafja2az65c3d0syq0vgjzj9763")
+              #:trivial? #t))
+    (home-page "https://ctan.org/macros/latex/contrib/fmtcount")
+    (synopsis "Display the value of a LaTeX counter in a variety of formats")
+    (description
+     "The package provides commands that display the value of a LaTeX counter in a
+variety of formats (ordinal, text, hexadecimal, decimal, octal, binary etc).
+The package offers some multilingual support; configurations for use in English
+(both British and American usage), French (including Belgian and Swiss
+variants), German, Italian, Portuguese and Spanish documents are provided.  This
+package was originally provided as part of the author's datetime package, but is
+now distributed separately.")))
+
+(define-public texlive-inriafonts
+  (package
+    (inherit (simple-texlive-package
+              "texlive-inriafonts"
+              (list "doc/fonts/inriafonts/"
+                    "fonts/enc/dvips/inriafonts/"
+                    "fonts/map/dvips/inriafonts/"
+                    "fonts/opentype/public/inriafonts/"
+                    "fonts/tfm/public/inriafonts/"
+                    "fonts/truetype/public/inriafonts/"
+                    "fonts/type1/public/inriafonts/"
+                    "fonts/vf/public/inriafonts/"
+                    "tex/latex/inriafonts/")
+              (base32
+               "0ngbpr4pl7r82jmdhiksp32qvbvggf2nawwqq0pkb7cffp95ya49")
+              #:trivial? #t))
+    (propagated-inputs (list texlive-ly1))        ;requires LY1 font encoding
+    (home-page "https://ctan.org/fonts/inriafonts")
+    (synopsis "Inria fonts with LaTeX support")
+    (description
+     "Inria is a free font designed by Black[Foundry] for Inria, a French research
+institute.  It comes as Serif and Sans Serif, each with three weights and
+matching italics.  Using these fonts with XeLaTeX and LuaLaTeX is easy using
+the fontspec package; we refer to the documentation of fontspec for more
+information.  The present package provides a way of using them with LaTeX and
+pdfLaTeX: it provides two style files, @file{InriaSerif.sty} and
+@file{InriaSans.sty}, together with the PostScript version of the fonts and
+their associated files.  These were created using autoinst.")
+    (license (list license:lppl license:silofl1.1))))
+
+(define-public texlive-floatflt
+  (package
+    (inherit (simple-texlive-package
+              "texlive-floatflt"
+              (list "doc/latex/floatflt/"
+                    "source/latex/floatflt/"
+                    "tex/latex/floatflt/")
+              (base32
+               "1piy8ajbbcadsjwp0mhlgxm2ggggnb5sn75arfs5fxiaqrwd572j")
+              #:trivial? #t))
+    (home-page "https://ctan.org/macros/latex/contrib/floatflt")
+    (synopsis "Wrap text around floats")
+    (description
+     "The package can float text around figures and tables which do not
+span the full width of a page; it improves upon floatfig, and allows
+tables and figures to be set left/right or alternating on even/odd pages.")
+    (license license:lppl1.3+)))
+
 (define-public bibtool
   (package
     (name "bibtool")
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index f3c870d9e6..a1834923c4 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 ( <paren@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
 
 (define-module (gnu packages texinfo)
   #:use-module (gnu packages autotools)
+  #:use-module (guix gexp)
   #:use-module (guix licenses)
   #:use-module (guix packages)
   #:use-module (guix utils)
@@ -254,49 +256,42 @@ Texi2HTML.")
         (base32 "1wdli2szkgm3l0vx8rf6lylw0b0m47dlz9iy004n928nqkzix76n"))))))
 
 (define-public pinfo
-  (package
-    (name "pinfo")
-    (version "0.6.13")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/baszoetekouw/pinfo")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "173d2p22irwiabvr4z6qvr6zpr6ysfkhmadjlyhyiwd7z62larvy"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'remove-Werror
-           (lambda _
-             (substitute* "configure.ac"
-               (("-Werror") ""))
-             #t))
-         (add-after 'unpack 'embed-reference-to-clear
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* '("src/manual.c"
-                            "src/mainfunction.c"
-                            "src/utils.c")
-               (("\"clear\"")
-                (string-append "\"" (which "clear") "\"")))
-             #t)))))
-    (inputs
-     (list ncurses readline))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("libtool" ,libtool)
-       ("texinfo" ,texinfo)))
-    (home-page "https://github.com/baszoetekouw/pinfo")
-    (synopsis "Lynx-style Info file and man page reader")
-    (description
-     "Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web
+  (let ((commit "3d76eecde211e41ccc28b04e229f159b3f924399")
+        (revision "0"))
+    (package
+      (name "pinfo")
+      ;; Latest tag is completely broken and does not build.
+      (version (git-version "0.6.13" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/baszoetekouw/pinfo")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "0qym323d9my5l4bhw9vry453hhlxhjjvy8mcdi38sk0bqqid0vd1"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list #:phases
+             #~(modify-phases %standard-phases
+                 (add-after 'unpack 'embed-reference-to-clear
+                   (lambda* (#:key inputs #:allow-other-keys)
+                     (let ((ncurses (assoc-ref inputs "ncurses")))
+                       (substitute* (list "src/manual.c"
+                                          "src/mainfunction.c"
+                                          "src/utils.c")
+                         (("\"clear\"")
+                          (string-append "\"" ncurses "/bin/clear\"")))))))))
+      (inputs
+       (list ncurses readline))
+      (native-inputs
+       (list autoconf automake gettext-minimal libtool texinfo))
+      (home-page "https://github.com/baszoetekouw/pinfo")
+      (synopsis "Lynx-style Info file and man page reader")
+      (description
+       "Pinfo is an Info file viewer.  Pinfo is similar in use to the Lynx web
 browser.  You just move across info nodes, and select links, follow them, etc.
 It supports many colors.  Pinfo also supports viewing of manual pages -- they
 are colorized like in the midnight commander's viewer, and additionally they
 are hypertextualized.")
-    (license gpl2+)))
+      (license gpl2+))))
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index cbc657172d..fb4f52025c 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -76,14 +76,14 @@
 (define-public dos2unix
   (package
     (name "dos2unix")
-    (version "7.4.2")
+    (version "7.4.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://waterlan.home.xs4all.nl/dos2unix/"
                            "dos2unix-" version ".tar.gz"))
        (sha256
-        (base32 "00dfsf4rfyjb5j12gan8xjiirm0asshdz6dmd3l34a7ays6wadb0"))))
+        (base32 "0wnacvz99rnlx0ayf5jrxwljvh801r8k1ai3hj137yfsaqcv93dn"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 5b0ef6af9e..eede7b9bd7 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -123,14 +123,14 @@ expressions.")
   (package
     (name "python-pytz")
     ;; This package should be kept in sync with tzdata in (gnu packages base).
-    (version "2021.1")
+    (version "2022.1")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "pytz" version))
       (sha256
        (base32
-        "1nn459q7zg20n75akxl3ljkykgw1ydc8nb05rx1y4f5zjh4ak943"))))
+        "19ya5sh7if819flgmszz585glailhi7rr8frng03n5m8wqphwxhy"))))
     (build-system python-build-system)
     (home-page "http://pythonhosted.org/pytz")
     (synopsis "Python timezone library")
@@ -359,7 +359,6 @@ ISO 8601 dates, time and duration.")
     (description
      "This module parses the most common forms of ISO 8601 date strings (e.g.
 @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
-    (properties `((python2-variant . ,(delay python2-iso8601))))
     (license expat)))
 
 (define-public python-monotonic
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 86dc249984..243b2bc3cb 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017, 2018 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -631,13 +631,13 @@ netcat implementation that supports TLS.")
   (package
     (name "python-acme")
     ;; Remember to update the hash of certbot when updating python-acme.
-    (version "1.18.0")
+    (version "1.28.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "acme" version))
               (sha256
                (base32
-                "1bv2swaqmzpcx2nq1nbhrc6b825d5sxkdv0al972sjfcpcqn1q4s"))))
+                "12fmw4g63pzbrmmrkk6hgg0k5px6jyx3scv9fmn60h21387jv0hz"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -651,8 +651,11 @@ netcat implementation that supports TLS.")
                     (man (string-append out "/share/man/man1"))
                     (info (string-append out "/info")))
                (install-file "docs/_build/texinfo/acme-python.info" info)
-               (install-file "docs/_build/man/acme-python.1" man)
-               #t))))))
+               (install-file "docs/_build/man/acme-python.1" man))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "pytest" "-vv")))))))
     (native-inputs
      (list python-pytest
            ;; For documentation
@@ -661,7 +664,8 @@ netcat implementation that supports TLS.")
            python-sphinx-rtd-theme
            texinfo))
     (propagated-inputs
-     (list python-josepy
+     (list python-chardet
+           python-josepy
            python-requests
            python-requests-toolbelt
            python-pytz
@@ -685,7 +689,7 @@ netcat implementation that supports TLS.")
               (uri (pypi-uri "certbot" version))
               (sha256
                (base32
-                "0yr8sxfg5zspal04l9lpd9xis6gp8il20bhka54xr9bb4hc6xrgk"))))
+                "0p4cpakx1kc8lczlgxqryr2asnyrvw6p5wmkamkjqdsf3z7xhm2b"))))
     (build-system python-build-system)
     (arguments
      `(,@(substitute-keyword-arguments (package-arguments python-acme)
@@ -740,14 +744,14 @@ certificates for free.")
 (define-public perl-net-ssleay
   (package
     (name "perl-net-ssleay")
-    (version "1.88")
+    (version "1.92")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/C/CH/CHRISN/"
                                   "Net-SSLeay-" version ".tar.gz"))
               (sha256
                (base32
-                "1pfgh4h3szcpvqlcimc60pjbk9zwls99x5863sva0wc47i4dl010"))))
+                "1acnjd5180dca26dmjq0b9ib0dbavlrzd6fnf4nidrzj02rz5hj7"))))
     (build-system perl-build-system)
     (inputs (list openssl))
     (arguments
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 40f941fcea..139ef4b9e4 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -58,14 +58,14 @@
 (define-public tor
   (package
     (name "tor")
-    (version "0.4.7.7")
+    (version "0.4.7.8")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://dist.torproject.org/tor-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0i2v3a2h7d0bjn64pi1c6h2x15lb53plf71xwkbkb51bnmc124ry"))))
+               "15g1dyk0y2lrcr039y5b10bnn1zd3xcys55yz3qdbk9ammkmr6ly"))))
     (build-system gnu-build-system)
     (arguments
      (list #:configure-flags
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 09426fe6fa..4fa6966ca9 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
 ;;; Copyright © 2019, 2020, 2021 Timotej Lazar <timotej.lazar@araneo.si>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@@ -57,8 +57,7 @@
            (for-each delete-file-recursively
                      (cons* "bitmaps/bsd" "bitmaps/sakura" "bitmaps/tomoyo"
                             "bitmasks/bsd" "bitmasks/sakura" "bitmasks/tomoyo"
-                            (find-files "cursors" "(bsd|card|petal).*\\.xbm")))
-           #t))))
+                            (find-files "cursors" "(bsd|card|petal).*\\.xbm")))))))
     (build-system gnu-build-system)
     (native-inputs
      (list imake))
@@ -73,8 +72,7 @@
              (invoke "xmkmf")
              ;; Fix incorrectly generated compiler flags.
              (substitute* "Makefile"
-               (("(CDEBUGFLAGS = ).*" _ front) (string-append front "-O2\n")))
-             #t))
+               (("(CDEBUGFLAGS = ).*" _ front) (string-append front "-O2\n")))))
          (replace 'install
            (lambda* (#:key outputs make-flags #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -89,12 +87,14 @@
                (copy-file "oneko.man" (string-append man6 "/oneko.6"))
                (copy-file "oneko.man.jp" (string-append man6-ja "/oneko.6"))
                (for-each (lambda (file) (install-file file doc))
-                         (find-files "." "README.*")))
-             #t)))))
+                         (find-files "." "README.*"))))))))
     (home-page "http://www.daidouji.com/oneko/")
     (synopsis "Cute cat chasing your mouse pointer")
-    (description "Displays a cat or another animated character that chases the
-mouse pointer around the screen while you work.")
+    (description
+     "Oneko displays an animated cat or dog that chases the mouse pointer---now
+an actual mouse or a bone---around the screen while you work.
+
+It was written for the X Window system and does not work well on Wayland.")
     (license license:public-domain))) ; see https://directory.fsf.org/wiki/Oneko
 
 (define-public sl
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 48c7c3a46d..3f565867aa 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1886,7 +1886,7 @@ videoformats depend on the configuration flags of ffmpeg.")
 (define-public vlc
   (package
     (name "vlc")
-    (version "3.0.17.3")
+    (version "3.0.17.4")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1895,7 +1895,7 @@ videoformats depend on the configuration flags of ffmpeg.")
                     "/vlc-" version ".tar.xz"))
               (sha256
                (base32
-                "0510vqf35f0v9c498yki5441aig3fdqq3nv4vsb1vlvki7pr0zkg"))))
+                "0cs1vnv91mg7p6253v6wms3zlz91xzphpwaw14dmrd2gibc64nlc"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
@@ -2031,6 +2031,8 @@ videoformats depend on the configuration flags of ffmpeg.")
     (description "VLC is a cross-platform multimedia player and framework
 that plays most multimedia files as well as DVD, Audio CD, VCD, and various
 streaming protocols.")
+    (properties
+     '((release-monitoring-url . "https://download.videolan.org/pub/videolan/vlc/last")))
     (license license:gpl2+)))
 
 (define-public mplayer
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index f82f8498e1..7ef782f390 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -461,7 +461,7 @@ trouble using them, because you do not have to remember each snippet name.")
 (define-public vim-fugitive
   (package
     (name "vim-fugitive")
-    (version "3.6")
+    (version "3.7")
     (source
       (origin
         (method git-fetch)
@@ -470,7 +470,7 @@ trouble using them, because you do not have to remember each snippet name.")
                (commit (string-append "v" version))))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "17c3wzqkbzbf0nmlxpgk90yyv3d09209fqxqysand8bzb1cbfwzn"))))
+         (base32 "138290g2aph1jjhaza6biky5qi4ka6435s01bwxivllgb53g3irc"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index b522b9d474..4cb83b4d85 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2017, 2020-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016, 2017, 2018. 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
@@ -27,6 +27,7 @@
 ;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech>
 ;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1212,15 +1213,17 @@ It started as a side project of LXC but can be used by any run-time.")
                  (wrap-program (string-append bin-dir "lxd")
                    `("PATH" ":" prefix
                      ,(fold (lambda (input paths)
+                              ;; TODO: Use 'search-input-directory' rather
+                              ;; than look up inputs by name.
                               (let* ((in (assoc-ref inputs input))
                                      (bin (string-append in "/bin"))
                                      (sbin (string-append in "/sbin")))
                                 (append (filter file-exists?
                                                 (list bin sbin)) paths)))
                             '()
-                            '("bash" "acl" "rsync" "tar" "xz" "btrfs-progs"
+                            '("bash-minimal" "acl" "rsync" "tar" "xz" "btrfs-progs"
                               "gzip" "dnsmasq" "squashfs-tools" "iproute2"
-                              "criu" "iptables"))))
+                              "criu" "iptables" "attr"))))
                  ;; Remove unwanted binaries.
                  (for-each (lambda (prog)
                              (delete-file (string-append bin-dir prog)))
@@ -1239,24 +1242,25 @@ It started as a side project of LXC but can be used by any run-time.")
            ;; ("go-golang-org-x-lint" ,go-golang-org-x-lint)
            pkg-config))
     (inputs
-     `(("acl" ,acl)
-       ("eudev" ,eudev)
-       ("libdqlite" ,libdqlite)
-       ("libraft" ,libraft)
-       ("libcap" ,libcap)
-       ("lxc" ,lxc)
-       ;; Run-time dependencies.
-       ("bash" ,bash-minimal)
-       ("rsync" ,rsync)
-       ("tar" ,tar)
-       ("xz" ,xz)
-       ("btrfs-progs" ,btrfs-progs)
-       ("gzip" ,gzip)
-       ("dnsmasq" ,dnsmasq)
-       ("squashfs-tools" ,squashfs-tools)
-       ("iproute2" ,iproute)
-       ("criu" ,criu)
-       ("iptables" ,iptables)))
+     (list acl
+           eudev
+           libdqlite
+           libraft
+           libcap
+           lxc
+           ;; Run-time dependencies.
+           attr
+           bash-minimal
+           rsync
+           tar
+           xz
+           btrfs-progs
+           gzip
+           dnsmasq
+           squashfs-tools
+           iproute
+           criu
+           iptables))
     (synopsis "Daemon based on liblxc offering a REST API to manage containers")
     (home-page "https://linuxcontainers.org/lxd/")
     (description "LXD is a next generation system container manager.  It
@@ -2001,7 +2005,7 @@ virtual machines.")
 (define-public bubblewrap
   (package
     (name "bubblewrap")
-    (version "0.5.0")
+    (version "0.6.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/containers/bubblewrap/"
@@ -2009,7 +2013,7 @@ virtual machines.")
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0608l2sjwhnb1c0mslah1h6yjvqr17wk60by6i710qwxg4rszz8n"))
+                "10ij62jg7p2scwdx0pm141ss7p2gjdkbbymb56y8miib2vfcf2cn"))
                (patches (search-patches "bubblewrap-fix-locale-in-tests.patch"))))
     (build-system gnu-build-system)
     (arguments
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 64d747a312..006ac26ace 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -57,6 +57,7 @@
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2022 cage <cage-dev@twistfold.it>
 ;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -831,7 +832,7 @@ stream.  Remote control of the module is possible over HTTP.")
 (define-public lighttpd
   (package
     (name "lighttpd")
-    (version "1.4.64")
+    (version "1.4.65")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.lighttpd.net/lighttpd/"
@@ -839,7 +840,7 @@ stream.  Remote control of the module is possible over HTTP.")
                                   "lighttpd-" version ".tar.xz"))
               (sha256
                (base32
-                "09hf3cp4ivy9a9z9drgi4f6d60137dcqncqw0wpbyvs9lygrsj71"))))
+                "1gi84fsc7x4d7r5vpg4pcwfk6j80wxvv64m94d041g4zca5ac3xz"))))
     (build-system gnu-build-system)
     (arguments
      (list #:configure-flags
@@ -1451,9 +1452,7 @@ parser written in ANSI C and a small validating JSON generator.")
 and server WebSockets connections---a protocol layered above HTTP that allows
 for efficient socket-like bidirectional reliable communication channels.")
     (home-page "https://libwebsockets.org")
-
-    ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
-    (license license:lgpl2.1)))
+    (license license:expat)))
 
 (define-public wabt
   (package
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 476c33a1cd..42a2893a38 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -123,7 +123,7 @@ the WPE-flavored port of WebKit.")
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
-(define %webkit-version "2.36.0")
+(define %webkit-version "2.36.3")
 
 (define-public webkitgtk
   (package
@@ -134,7 +134,7 @@ engine that uses Wayland for graphics output.")
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
-               (base32 "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+               (base32 "1lbqqjpqc9yiwpsvvagy1ag9vazbq7bvnvml53nvhi669s6cybvk"))
               (patches (search-patches
                         "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
@@ -300,7 +300,7 @@ propagated by default) such as @code{gst-plugins-good} and
               (uri (string-append "https://wpewebkit.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
-               (base32 "0nkdx6pckbkhs85z3pidnh4cbp0wfa38lf2qyn0grywvgpwajsh9"))))
+               (base32 "1j1gijb8jz15vz65sv5pml3shqk2sm6769kq7bzxm5vlrbmms9v6"))))
     (arguments
      (substitute-keyword-arguments (package-arguments webkitgtk)
        ((#:configure-flags flags)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 40da17b561..d946fa4d2f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -8,7 +8,7 @@
 ;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
 ;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
-;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016 2019, 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018, 2020 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
 ;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
@@ -54,6 +54,7 @@
 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
 ;;; Copyright © 2022 Pier-Hugues Pellerin <ph@heykimo.com>
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 muradm <mail@muradm.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -88,6 +89,7 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -181,14 +183,14 @@ the leaves of a full binary tree.")
 (define-public herbstluftwm
   (package
     (name "herbstluftwm")
-    (version "0.9.3")
+    (version "0.9.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
                            version ".tar.gz"))
        (sha256
-        (base32 "01f1bv9axjhw1l2gwhdwahljssj0h8q7a1bqwbpnwvln0ayv39qb"))
+        (base32 "1k03rdr6irsgnjl4w0vac0kk9nsz46qhy74iflmaycxgfv8fxy7f"))
        (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
     (build-system cmake-build-system)
     (inputs
@@ -200,6 +202,7 @@ the leaves of a full binary tree.")
            xsetroot
            libx11
            libxext
+           libxfixes
            libxinerama
            libxrandr
            libxft))
@@ -258,31 +261,33 @@ or musca).
 (define-public i3status
   (package
     (name "i3status")
-    (version "2.13")
+    (version "2.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://i3wm.org/i3status/i3status-"
-                                  version ".tar.bz2"))
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff"))))
-    (build-system gnu-build-system)
+                "0929chhvyq9hg4scpcz8r9zn3s9jvbg6a86k3wqa77qg85rh4kaw"))
+              (snippet
+               ;; Delete the pregenerated man page, to be rebuilt from source.
+               '(delete-file "man/i3status.1"))))
+    (build-system meson-build-system)
     (arguments
-     `(;; XXX: Do an "out of source" build to work around
-       ;; <https://github.com/i3/i3status/issues/339>.
-       #:out-of-source? #t
-       #:tests? #f)) ; no test suite
+     (list #:configure-flags
+           '(list "-Dmans=True")
+           #:tests? #f))                ; no test suite
     (inputs
-     (list openlibm
+     (list alsa-lib
            libconfuse
-           libyajl
-           alsa-lib
-           pulseaudio
            libnl
-           libcap
-           asciidoc))
+           libyajl
+           pulseaudio))
     (native-inputs
-     (list pkg-config docbook-xsl libxml2 ;for XML_CATALOG_FILES
+     (list asciidoc
+           perl
+           pkg-config
+           docbook-xsl libxml2          ; for XML_CATALOG_FILES
            xmlto))
     (home-page "https://i3wm.org/i3status/")
     (synopsis "Status bar for i3bar, dzen2, xmobar or similar programs")
@@ -1537,7 +1542,7 @@ functionality to display information about the most commonly used services.")
            libxkbcommon
            mesa
            pixman
-           seatd
+           libseat
            wayland
            wayland-protocols
            xcb-util-errors
@@ -2441,7 +2446,7 @@ selected to stdout.  It can be controlled both via mouse and via keyboard.")
            libxpm
            libpng
            freetype
-           imlib2
+           imlib2-1.7
            sed))
     (native-inputs
      (list pkg-config))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 39dd69c920..f632c20f5d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014, 2015, 2017, 2018, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com>
@@ -1590,16 +1590,16 @@ input from UTF-8 into the locale's encoding.")
 (define-public mkfontscale
   (package
     (name "mkfontscale")
-    (version "1.2.1")
+    (version "1.2.2")
     (source
       (origin
         (method url-fetch)
         (uri (string-append
                "mirror://xorg/individual/app/mkfontscale-"
                version
-               ".tar.bz2"))
+               ".tar.xz"))
         (sha256
-          (base32 "1ixsnsm2mn0zy9ksdid0lj6irnhvasfik9mz8bbrs5sajzmra16a"))))
+          (base32 "1i6mw97r2s1rb6spjj8fbdsgw6197smaqq2haqgnwhz73xdzpqwa"))))
     (build-system gnu-build-system)
     (inputs
       (list zlib xorgproto freetype libfontenc))
@@ -1991,14 +1991,14 @@ server.")
 (define-public xauth
   (package
     (name "xauth")
-    (version "1.1")
+    (version "1.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/app/xauth-" version
-                           ".tar.bz2"))
+                           ".tar.xz"))
        (sha256
-        (base32 "032klzzw8r09z36x1272ssd79bcisz8j5p8gbdy111fiknvx27bd"))))
+        (base32 "0072ivzn4z59ysanz838nh8s4mcmdsx6q9xkvlfysv2k37ynmfkq"))))
     (build-system gnu-build-system)
     (inputs
      (list libxmu libxext libxau libx11))
@@ -2067,14 +2067,14 @@ legacy X clients.")
 (define-public xcalc
   (package
     (name "xcalc")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/app/"
                            "xcalc-" version ".tar.gz"))
        (sha256
-        (base32 "0c768lh0nh28ram9ldldhaf51024fngc589v4pjmf3lxmzcihr58"))))
+        (base32 "0fwgnva716ymnrf8f4lvnqlyikf5c837054sxxlf3l5jpy4wh6cj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -2084,8 +2084,7 @@ legacy X clients.")
                      (substitute* "Makefile"
                        (("^appdefaultdir = .*$")
                         (string-append "appdefaultdir = " %output
-                                       ,%app-defaults-dir "\n")))
-                     #t)))))
+                                       ,%app-defaults-dir "\n"))))))))
     (inputs
      (list libxaw))
     (native-inputs
@@ -2299,17 +2298,17 @@ left-handed version of the cursors is also included.")
 (define-public xdpyinfo
   (package
     (name "xdpyinfo")
-    (version "1.3.2")
+    (version "1.3.3")
     (source
       (origin
         (method url-fetch)
         (uri (string-append
                "mirror://xorg/individual/app/xdpyinfo-"
                version
-               ".tar.bz2"))
+               ".tar.xz"))
         (sha256
           (base32
-            "0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh"))))
+            "01n21ygbvzycjasv97rk33b14qdbshr1pkxysqvfx61y5zb5yv9m"))))
     (build-system gnu-build-system)
     (inputs
       (list xorgproto
@@ -2486,15 +2485,15 @@ including most mice, keyboards, tablets and touchscreens.")
 (define-public xf86-input-libinput
   (package
     (name "xf86-input-libinput")
-    (version "1.1.0")
+    (version "1.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "mirror://xorg/individual/driver/"
-                    name "-" version ".tar.bz2"))
+                    name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05ldqr10f2rrnshyk3lc773rz0gp3ccdzwa8n7lsc94i850jl7g1"))))
+                "06wpgqga4kc5ph5bd5cabfg0gdcdkbd65jrdx467qcfvkmdxnlc1"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2658,14 +2657,14 @@ as USB mice.")
 (define-public xf86-video-amdgpu
   (package
     (name "xf86-video-amdgpu")
-    (version "21.0.0")
+    (version "22.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
-                           "xf86-video-amdgpu-" version ".tar.bz2"))
+                           "xf86-video-amdgpu-" version ".tar.xz"))
        (sha256
-        (base32 "125dq85n46yqmnmr2hknxwcqicwlvz2b2phf0m963fpg9l1j6y30"))))
+        (base32 "0rl2fxhhgcjywn2z8h9gmvm58zjy93lx391ax76krp0m55hgn8wx"))))
     (build-system gnu-build-system)
     (inputs (list xorg-server))
     (native-inputs (list pkg-config))
@@ -2777,14 +2776,14 @@ X server.")
 (define-public xf86-video-dummy
   (package
     (name "xf86-video-dummy")
-    (version "0.3.8")
+    (version "0.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
-                           "xf86-video-dummy-" version ".tar.bz2"))
+                           "xf86-video-dummy-" version ".tar.xz"))
        (sha256
-        (base32 "1fcm9vwgv8wnffbvkzddk4yxrh3kc0np6w65wj8k88q7jf3bn4ip"))))
+        (base32 "0nhy9sd49ig9z00mp9sjbdkfzjgsm71szwjqnry8qn60r3jym377"))))
     (build-system gnu-build-system)
     (inputs (list xorg-server))
     (native-inputs (list pkg-config))
@@ -4088,17 +4087,17 @@ running on X server.")
 (define-public xlsfonts
   (package
     (name "xlsfonts")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
              "mirror://xorg/individual/app/xlsfonts-"
              version
-             ".tar.bz2"))
+             ".tar.xz"))
        (sha256
         (base32
-         "0s6kxgv78chkwsqmhw929f4pf91gq63f4yvixxnan1h00cx0pf49"))))
+         "0r84wp4352hbfcaybqp2khipm40293byvrfyrlslrd37m52njwkv"))))
     (build-system gnu-build-system)
     (inputs
      (list xorgproto libx11))
@@ -4214,7 +4213,7 @@ tastes.")
 (define-public xorg-sgml-doctools
   (package
     (name "xorg-sgml-doctools")
-    (version "1.11")
+    (version "1.12")
     (source
       (origin
         (method url-fetch)
@@ -4224,7 +4223,7 @@ tastes.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777"))))
+            "01n8zqlkqjcxk1c59pk279y08gzhc14r03dhq3lxayy1xpfzvab5"))))
     (build-system gnu-build-system)
     (native-inputs (list pkg-config))
     (home-page "https://www.x.org/wiki/")
@@ -5678,7 +5677,7 @@ Intrinsics (Xt) Library.")
 (define-public twm
   (package
     (name "twm")
-    (version "1.0.11")
+    (version "1.0.12")
     (source
      (origin
        (method url-fetch)
@@ -5686,7 +5685,7 @@ Intrinsics (Xt) Library.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "1iv8kdb18n9vk3is5fyh6l40ipq9mkgx8ppj86byf464vr1ais7l"))))
+         "1r5gfv1gvcjn39v7n6znpnvifwhlw2zf8gfrxq8vph84vva03wma"))))
     (build-system gnu-build-system)
     (inputs
      (list libxt libxmu libxext xorgproto))
@@ -6483,8 +6482,6 @@ X11 servers, Windows, or macOS.")
                   (guix build emacs-utils))
        #:imported-modules (,@%gnu-build-system-modules
                            (guix build emacs-utils))
-       #:parallel-build? #f ; for reproducible generation of
-                            ; share/uim/installed-modules.scm
        #:configure-flags
        (list "--with-anthy-utf8"
              (string-append "--with-lispdir=" %output "/share/emacs")
@@ -6947,7 +6944,7 @@ the server and cleaning up before returning the exit status of the command.")
        (modify-phases %standard-phases
          (delete 'configure))))
     (inputs
-     (list imlib2 libx11 libxinerama))
+     (list imlib2-1.7 libx11 libxinerama))
     (home-page "https://github.com/ttzhou/setroot")
     (synopsis "Simple X background setter inspired by imlibsetroot and feh")
     (description "Setroot is a lightweight X background setter with feh's
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 9e99fdb857..cda93bed2e 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
 ;;; Copyright © 2021 Calum Irwin <calumirwin1@gmail.com>
+;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -99,4 +100,7 @@ toolchain.  Among other features it provides
 @item concurrency via async functions.
 @end itemize")
     (home-page "https://github.com/ziglang/zig")
+    ;; Currently building zig can take up to 10GB of RAM for linking stage1:
+    ;; https://github.com/ziglang/zig/issues/6485
+    (supported-systems %64bit-supported-systems)
     (license license:expat)))