summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/base.scm6
-rw-r--r--gnu/packages/certs.scm47
-rw-r--r--gnu/packages/check.scm4
-rw-r--r--gnu/packages/crates-io.scm14
-rw-r--r--gnu/packages/databases.scm127
-rw-r--r--gnu/packages/docbook.scm29
-rw-r--r--gnu/packages/emacs.scm4
-rw-r--r--gnu/packages/freedesktop.scm4
-rw-r--r--gnu/packages/gl.scm52
-rw-r--r--gnu/packages/gnome.scm13
-rw-r--r--gnu/packages/golang.scm77
-rw-r--r--gnu/packages/image.scm47
-rw-r--r--gnu/packages/kde-frameworks.scm84
-rw-r--r--gnu/packages/linux.scm1
-rw-r--r--gnu/packages/machine-learning.scm29
-rw-r--r--gnu/packages/man.scm96
-rw-r--r--gnu/packages/maths.scm16
-rw-r--r--gnu/packages/password-utils.scm1
-rw-r--r--gnu/packages/patches/python2-pyopenssl-openssl-compat.patch51
-rw-r--r--gnu/packages/polkit.scm38
-rw-r--r--gnu/packages/python-crypto.scm148
-rw-r--r--gnu/packages/python-web.scm14
-rw-r--r--gnu/packages/python-xyz.scm74
-rw-r--r--gnu/packages/radio.scm4
-rw-r--r--gnu/packages/rails.scm10
-rw-r--r--gnu/packages/rust.scm24
-rw-r--r--gnu/packages/tex.scm272
-rw-r--r--gnu/packages/time.scm12
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/unicode.scm5
-rw-r--r--gnu/packages/video.scm1
-rw-r--r--gnu/packages/virtualization.scm5
-rw-r--r--gnu/packages/web-browsers.scm1
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/wget.scm1
-rw-r--r--gnu/packages/wm.scm4
-rw-r--r--gnu/packages/xorg.scm5
38 files changed, 645 insertions, 686 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 03e180cc85..f7f7084b4e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1689,6 +1689,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch	\
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
   %D%/packages/patches/python-pyflakes-test-location.patch	\
+  %D%/packages/patches/python2-pyopenssl-openssl-compat.patch	\
   %D%/packages/patches/python-flint-includes.patch		\
   %D%/packages/patches/python-libxml2-utf8.patch		\
   %D%/packages/patches/python-magic-python-bytecode.patch	\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 33b9a672fc..4bdc3e7792 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1304,7 +1304,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
@@ -1312,7 +1312,7 @@ command.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
+               "0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg"))))
     (build-system gnu-build-system)
     (arguments
      (list #:tests? #f
@@ -1380,7 +1380,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/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/check.scm b/gnu/packages/check.scm
index 2340ef72d9..5c8b547c0d 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -2740,13 +2740,13 @@ mocks, stubs and fakes.")
 (define-public python-flaky
   (package
     (name "python-flaky")
-    (version "3.5.3")
+    (version "3.7.0")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "flaky" version))
               (sha256
                (base32
-                "1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j"))))
+                "03daz352021211kvdb056f3afrd2gsdq0rd1awgr38910xw01l9s"))))
     (build-system python-build-system)
     (arguments
      ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet.
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 86313f5e4f..452a22f0f2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -62496,13 +62496,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)
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 9980cbe9aa..6052b53158 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>
@@ -56,6 +56,7 @@
 ;;; Copyright © 2021 jgart <jgart@dismail.de>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -90,6 +91,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
@@ -1193,38 +1195,43 @@ and high-availability (HA).")
               (patches (search-patches "postgresql-disable-resolve_symlinks.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-uuid=e2fs" "--with-openssl"
-                           ;; PostgreSQL installs its own Makefile (should it?).
-                           ;; Prevent it from retaining needless references to
-                           ;; the build tools in order to save size.
-                           "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
-                           "LD=ld" "TAR=tar")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'patch-/bin/sh
-                     (lambda _
-                       ;; Refer to the actual shell.
-                       (substitute* '("src/bin/pg_ctl/pg_ctl.c"
-                                      "src/bin/psql/command.c")
-                         (("/bin/sh") (which "sh")))
-                       #t))
-         (add-before 'configure 'set-socket-dir
-           (lambda _
-             (substitute* '("src/include/pg_config_manual.h")
-               (("DEFAULT_PGSOCKET_DIR[^\n]*")
-                "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\""))
-             #t))
-         (add-after 'build 'build-contrib
-           (lambda _
-             (invoke "make" "-C" "contrib")))
-         (add-after 'install 'install-contrib
-           (lambda _
-             (invoke "make" "-C" "contrib" "install"))))))
-    (inputs
-     `(("readline" ,readline)
-       ("libuuid" ,util-linux "lib")
-       ("openssl" ,openssl)
-       ("zlib" ,zlib)))
+     (list
+      #:configure-flags
+      #~(list "--with-uuid=e2fs" "--with-openssl"
+              (string-append "--mandir=" #$output "/share/man")
+              ;; PostgreSQL installs its own Makefile (should it?).
+              ;; Prevent it from retaining needless references to
+              ;; the build tools in order to save size.
+              "MKDIR_P=mkdir -p" "INSTALL_BIN=install -c"
+              "LD=ld" "TAR=tar")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'patch-/bin/sh
+            (lambda _
+              ;; Refer to the actual shell.
+              (substitute* '("src/bin/pg_ctl/pg_ctl.c"
+                             "src/bin/psql/command.c")
+                (("/bin/sh") (which "sh")))))
+          (add-before 'configure 'set-socket-dir
+            (lambda _
+              (substitute* '("src/include/pg_config_manual.h")
+                (("DEFAULT_PGSOCKET_DIR[^\n]*")
+                 "DEFAULT_PGSOCKET_DIR \"/var/run/postgresql\""))))
+          (add-after 'build 'build-contrib
+            (lambda _
+              (invoke "make" "-C" "contrib")))
+          (add-after 'install 'install-contrib
+            (lambda _
+              (invoke "make" "-C" "contrib" "install")))
+          (add-after 'install 'install-manuals
+            (lambda _
+              (with-directory-excursion "doc/src/sgml"
+                (invoke "make" "install-man")
+                (invoke "make" "postgres.info")
+                (install-file "postgres.info"
+                              (string-append #$output "/share/info"))))))))
+    (native-inputs (list docbook-xml docbook2x libxml2 perl texinfo))
+    (inputs (list readline `(,util-linux "lib") openssl zlib))
     (home-page "https://www.postgresql.org/")
     (synopsis "Powerful object-relational database system")
     (description
@@ -1239,36 +1246,15 @@ pictures, sounds, or video.")
 (define-public postgresql-13
   (package
     (inherit postgresql-14)
-    (version "13.4")
+    (version "13.6")
     (source (origin
               (inherit (package-source postgresql-14))
               (uri (string-append "https://ftp.postgresql.org/pub/source/v"
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za"))))
-    (arguments
-     (if (target-riscv64?)
-       `(,@(substitute-keyword-arguments (package-arguments postgresql-14)
-             ((#:phases phases)
-              #~(modify-phases #$phases
-                  (add-after 'unpack 'apply-riscv-spinlock-patch
-                    ;; The patch is applied in this custom phase and not via the
-                    ;; "origin" object above to avoid rebuilding a large number
-                    ;; of packages on other platforms.
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((patch-file
-                              #$(local-file
-                                  (search-patch
-                                    "postgresql-riscv-spinlocks.patch"))))
-                        (invoke "patch" "-p1" "-i" patch-file))))))))
-       `(,@(package-arguments postgresql-14))))
-    (native-inputs
-     (if (target-riscv64?)
-       (list
-         (local-file (search-patch "postgresql-riscv-spinlocks.patch"))
-         patch)
-       '()))))
+                "1z37ix80hb2bqa2smh1hbj9r507ypnl3pil43gkqznnlv6ipzz5s"))
+              (patches (search-patches "postgresql-riscv-spinlocks.patch"))))))
 
 (define-public postgresql-11
   (package
@@ -1281,7 +1267,10 @@ pictures, sounds, or video.")
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "1qvrm0vhwnc5nijfbqybhwfjbq4r7vmk445sz7s6fiagpn78xxf8"))))))
+                "1qvrm0vhwnc5nijfbqybhwfjbq4r7vmk445sz7s6fiagpn78xxf8"))))
+    (native-inputs
+     (modify-inputs (package-native-inputs postgresql-13)
+       (replace "docbook-xml" docbook-xml-4.2)))))
 
 (define-public postgresql-10
   (package
@@ -1293,7 +1282,11 @@ pictures, sounds, or video.")
                                   version "/postgresql-" version ".tar.bz2"))
               (sha256
                (base32
-                "17v51a9vnz6lgbfmbdmcwsiyi572wndwa4n30nk2zr6gkgaidpl7"))))))
+                "17v51a9vnz6lgbfmbdmcwsiyi572wndwa4n30nk2zr6gkgaidpl7"))))
+    (native-inputs
+     (modify-inputs (package-native-inputs postgresql-11)
+       (append opensp docbook-sgml-4.2)
+       (delete "docbook-xml")))))
 
 (define-public postgresql postgresql-13)
 
@@ -1361,12 +1354,26 @@ 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.
+                        (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")
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 6575bf2d75..dcaac3b8d2 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -362,17 +362,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))
@@ -393,8 +394,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
@@ -404,6 +405,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.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/freedesktop.scm b/gnu/packages/freedesktop.scm
index fc2c45c1f1..01cb480edf 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -963,14 +963,14 @@ Python.")
 (define-public wayland
   (package
     (name "wayland")
-    (version "1.19.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wayland.freedesktop.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05bd2vphyx8qwa1mhsj1zdaiv4m4v94wrlssrn0lad8d601dkk5s"))))
+                "09c7rpbwavjg4y16mrfa57gk5ix6rnzpvlnv1wp7fnbh9hak985q"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index d3ee7aed93..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.2")
+    (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
-          "1g96y59bw10ml8h4jl259g41jdmf5ww3jbwqpz1sprq7hgxvmrz2"))
+          "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/gnome.scm b/gnu/packages/gnome.scm
index e6573894b4..a938453dd4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3459,18 +3459,9 @@ for dealing with different structured file formats.")
            `(,glib "bin")
            gobject-introspection
            pkg-config
-           python-wrapper
-           ruby
            vala))
     (inputs
-     (list bzip2
-           fontconfig
-           freetype
-           harfbuzz
-           libcroco
-           libgsf
-           libxml2
-           pango))
+     (list freetype harfbuzz libxml2 pango))
     (propagated-inputs
      (list cairo gdk-pixbuf glib))
     (synopsis "SVG rendering library")
@@ -3561,7 +3552,7 @@ diagrams.")
            `(,glib "bin") ; glib-mkenums, etc.
            gobject-introspection)) ; g-ir-compiler, etc.
     (inputs
-     (list pango libcroco bzip2 libgsf libxml2))
+     (list pango libcroco libxml2))
     (propagated-inputs
      ;; librsvg-2.0.pc refers to all of that.
      (list cairo gdk-pixbuf glib))
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 61c29be116..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")
@@ -2684,8 +2693,8 @@ packages.")
       (license license:bsd-3))))
 
 (define-public go-golang-org-x-sys
-  (let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
-        (revision "7"))
+  (let ((commit "ed5796bab16455f104b6a384d51b7f9990cb9806")
+        (revision "8"))
     (package
       (name "go-golang-org-x-sys")
       (version (git-version "0.0.0" revision commit))
@@ -2697,7 +2706,7 @@ packages.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
+                  "081vs5bg91mwg5bdmlcvy2qyrvg766aicj47smcwfk4bbh0nc0qa"))))
       (build-system go-build-system)
       (arguments
        `(#:import-path "golang.org/x/sys"
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/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 85447a5b76..216dd01395 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -50,6 +50,7 @@
 ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
 ;;; Copyright © 2020 David Dashyan <mail@davie.li>
 ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
+;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
 ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
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/man.scm b/gnu/packages/man.scm
index a434c70576..1c1d82758b 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -10,6 +10,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -125,14 +126,14 @@ a flexible and convenient way.")
 (define-public man-db
   (package
     (name "man-db")
-    (version "2.9.4")
+    (version "2.10.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://savannah/man-db/man-db-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0mk7n7yn6scy785jhg1j14b3q9l0cgvpry49r0ldjsnizbnrjv5n"))))
+                "0kaiymd5lh4dnp6z15fnvfg0ir81kdxp5l690ccp64ra956rb5zf"))))
     (build-system gnu-build-system)
     (arguments
      (list #:phases
@@ -145,9 +146,7 @@ a flexible and convenient way.")
                                  (substitute* file
                                    (("#! /bin/sh")
                                     (string-append "#!" (which "sh")))))
-                               (remove file-is-directory?
-                                       (find-files "src/tests" ".*")))
-                     #t)))
+                               (find-files "src/tests")))))
                (add-after 'unpack 'patch-absolute-paths
                  (lambda* (#:key inputs #:allow-other-keys)
                    (substitute* "src/man.c"
@@ -160,64 +159,53 @@ a flexible and convenient way.")
                      (("groff_preconv = NULL")
                       (string-append "groff_preconv = \""
                                      (assoc-ref inputs "groff-minimal")
-                                     "/bin/preconv\"")))
-                   #t)))
+                                     "/bin/preconv\""))))))
            #:configure-flags
-           #~(let ((groff (assoc-ref %build-inputs "groff"))
-                   (groff-minimal (assoc-ref %build-inputs "groff-minimal"))
-                   (less  (assoc-ref %build-inputs "less"))
-                   (gzip  (assoc-ref %build-inputs "gzip"))
-                   (bzip2 (assoc-ref %build-inputs "bzip2"))
-                   (xz    (assoc-ref %build-inputs "xz"))
-                   (util  (assoc-ref %build-inputs "util-linux")))
-               ;; Invoke groff, less, gzip, bzip2, & xz directly from the store.
-               (append (list ;; Disable setuid man user.
-                        "--disable-setuid"
-                        ;; Don't constrain ownership of system-wide cache files.
-                        ;; Otherwise creating the manpage database fails with
-                        ;; man-db > 2.7.5.
-                        "--disable-cache-owner"
-                        (string-append "--with-pager=" less "/bin/less")
-                        (string-append "--with-gzip=" gzip "/bin/gzip")
-                        (string-append "--with-bzip2=" bzip2 "/bin/gzip")
-                        (string-append "--with-xz=" xz "/bin/xz")
-                        (string-append "--with-col=" util "/bin/col")
-                        ;; The default systemd directories ignore --prefix.
-                        ;; XXX TODO: Replace with simply #$OUTPUT on staging.
-                        (string-append "--with-systemdsystemunitdir="
-                                       #$(if (%current-target-system)
-                                             #~#$output
-                                             #~%output)
-                                       "/lib/systemd/system")
-                        (string-append "--with-systemdtmpfilesdir="
-                                       #$(if (%current-target-system)
-                                             #~#$output
-                                             #~%output)
-                                       "/lib/tmpfiles.d"))
-                   (map (lambda (prog)
-                          (string-append "--with-" prog "=" groff-minimal
-                                         "/bin/" prog))
-                        '("nroff" "eqn" "neqn" "tbl" "refer" "pic"))))
-
+           #~(cons*
+              ;; Disable setuid man user.
+              "--disable-setuid"
+              ;; Don't constrain ownership of system-wide cache files.
+              ;; Otherwise creating the manpage database fails with
+              ;; man-db > 2.7.5.
+              "--disable-cache-owner"
+              (string-append "--with-pager="
+                             (search-input-file %build-inputs "bin/less"))
+              (string-append "--with-gzip="
+                             (search-input-file %build-inputs "bin/gzip"))
+              (string-append "--with-bzip2="
+                             (search-input-file %build-inputs "bin/bzip2"))
+              (string-append "--with-xz="
+                             (search-input-file %build-inputs "bin/xz"))
+              (string-append "--with-zstd="
+                             (search-input-file %build-inputs "bin/zstd"))
+              (string-append "--with-col="
+                             (search-input-file %build-inputs "bin/col"))
+              ;; The default systemd directories ignore --prefix.
+              (string-append "--with-systemdsystemunitdir="
+                             #$output "/lib/systemd/system")
+              (string-append "--with-systemdtmpfilesdir="
+                             #$output "/lib/tmpfiles.d")
+              (map (lambda (prog)
+                     (string-append
+                      "--with-" prog "="
+                      #$(this-package-input "groff-minimal")
+                      (string-append "/bin/" prog)))
+                   '("nroff" "eqn" "neqn" "tbl" "refer" "pic")))
            ;; At run time we should refer to GROFF-MINIMAL, not GROFF (the latter
            ;; pulls in Perl.)
-           #:disallowed-references
-           (list groff)
-
-           #:modules '((guix build gnu-build-system)
-                       (guix build utils)
-                       (srfi srfi-1))))
+           #:disallowed-references (list groff)))
     (native-inputs
-     (list pkg-config flex groff))   ;needed at build time (troff, grops, soelim, etc.)
+     (list pkg-config flex
+           ;; Groff is needed at build time for troff, grops, soelim, etc.
+           groff))
     (inputs
      (list gdbm
            groff-minimal
            less
            libpipeline
-           ;; FIXME: 4.8 and later can use libseccomp, but it causes test
-           ;; failures in the build chroot.
-           ;;("libseccomp" ,libseccomp)
-           util-linux))
+           libseccomp
+           util-linux
+           zstd))
     (native-search-paths
      (list (search-path-specification
             (variable "MANPATH")
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 83f0a1810b..0ad14ba36e 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/password-utils.scm b/gnu/packages/password-utils.scm
index 127cfdf7aa..da140b29ad 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -29,6 +29,7 @@
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
diff --git a/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
new file mode 100644
index 0000000000..a185f4172d
--- /dev/null
+++ b/gnu/packages/patches/python2-pyopenssl-openssl-compat.patch
@@ -0,0 +1,51 @@
+Adjust for OpenSSL 1.1.1:
+
+  https://github.com/pyca/pyopenssl/issues/1043
+
+Taken from upstream:
+
+  https://github.com/pyca/pyopenssl/commit/cc5c00ae5fd3c19d07fff79b5c4a08f5e58697ad
+
+diff --git a/src/OpenSSL/SSL.py b/src/OpenSSL/SSL.py
+index 59f21cec..fcdee047 100644
+--- a/src/OpenSSL/SSL.py
++++ b/src/OpenSSL/SSL.py
+@@ -1421,6 +1421,12 @@ def set_alpn_protos(self, protos):
+             This list should be a Python list of bytestrings representing the
+             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
+         """
++        # Different versions of OpenSSL are inconsistent about how they handle empty
++        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
++        # ourselves.
++        if not protos:
++            raise ValueError("at least one protocol must be specified")
++
+         # Take the list of protocols and join them together, prefixing them
+         # with their lengths.
+         protostr = b"".join(
+@@ -2449,6 +2455,12 @@ def set_alpn_protos(self, protos):
+             This list should be a Python list of bytestrings representing the
+             protocols to offer, e.g. ``[b'http/1.1', b'spdy/2']``.
+         """
++        # Different versions of OpenSSL are inconsistent about how they handle empty
++        # proto lists (see #1043), so we avoid the problem entirely by rejecting them
++        # ourselves.
++        if not protos:
++            raise ValueError("at least one protocol must be specified")
++
+         # Take the list of protocols and join them together, prefixing them
+         # with their lengths.
+         protostr = b"".join(
+diff --git a/tests/test_ssl.py b/tests/test_ssl.py
+index ffc505d8..ca363b45 100644
+--- a/tests/test_ssl.py
++++ b/tests/test_ssl.py
+@@ -1928,7 +1928,7 @@ def test_alpn_call_failure(self):
+         protocols list. Ensure that we produce a user-visible error.
+         """
+         context = Context(SSLv23_METHOD)
+-        with pytest.raises(Error):
++        with pytest.raises(ValueError):
+             context.set_alpn_protos([])
+ 
+     def test_alpn_set_on_connection(self):
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 9d56e6e3c5..d7a8909ab4 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -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)
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 753f6bb503..84e9102bee 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -421,13 +421,13 @@ for example, for recording or replaying web content.")
 (define-public python-certifi
   (package
     (name "python-certifi")
-    (version "2020.12.5")
+    (version "2021.10.8")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "certifi" version))
               (sha256
                (base32
-                "177mdbw0livdjvp17sz6wsfrc32838m9y59v871gpgv2888raj8s"))))
+                "0wl8ln7acd797i1q7mmb430l6hqwhmk4bd37x8ycw02b3my4x23q"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ;no tests
     (home-page "https://certifi.io/")
@@ -437,17 +437,17 @@ 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 "3.3.1")
+    (version "36.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cryptography_vectors" version))
        (sha256
         (base32
-         "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03"))))
+         "166mvhhmgglqai1sjkkb76mpdkad2yykam11d2w44hs2snpr117w"))))
     (build-system python-build-system)
     (home-page "https://github.com/pyca/cryptography")
     (synopsis "Test vectors for the cryptography package")
@@ -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
@@ -607,43 +573,79 @@ message digests and key derivation functions.")
            python-pytest
            python-pytest-subtests
            python-setuptools-rust
-           rust `(,rust "cargo")))
-    (properties '())))
+           rust
+           `(,rust "cargo")))
+    (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))))
+
+(define-public python-cryptography
+  (package
+    (inherit python-cryptography-next)
+    (version "3.4.8")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "cryptography" version))
+              (sha256
+               (base32 "072awar70cwfd2hnx0pvp1dkc7gw45mbm3wcyddvxz5frva5xk4l"))))
+    (arguments
+     (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 "20.0.1")
+    (version "21.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyOpenSSL" version))
        (sha256
         (base32
-         "0labcbh2g0jhgisd79wx9kixmi6fip28096d1xb05fj3jmsiq8sc"))))
+         "1cqcc20fwl521z3fxsc1c98gbnhb14q55vrvjfp6bn6h8rg8qbay"))
+       (patches (search-patches "python2-pyopenssl-openssl-compat.patch"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             ;; PyOpenSSL runs tests against a certificate with a fixed
-             ;; expiry time.  To ensure successful builds in the future,
-             ;; set the time to roughly the release date.
-             (invoke "faketime" "2021-05-01" "py.test" "-v" "-k"
-                     (string-append
-                      ;; This test tries to look up certificates from
-                      ;; the compiled-in default path in OpenSSL, which
-                      ;; does not exist in the build environment.
-                      "not test_fallback_default_verify_paths "
-                      ;; This test attempts to make a connection to
-                      ;; an external web service.
-                      "and not test_set_default_verify_paths "
-                      ;; Fails on i686-linux and possibly other 32-bit platforms
-                      ;; https://github.com/pyca/pyopenssl/issues/974
-                      "and not test_verify_with_time")))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; PyOpenSSL runs tests against a certificate with a fixed
+                ;; expiry time.  To ensure successful builds in the future,
+                ;; set the time to roughly the release date.
+                (invoke "faketime" "2022-02-01" "py.test" "-v" "-k"
+                        (string-append
+                         ;; This test tries to look up certificates from
+                         ;; the compiled-in default path in OpenSSL, which
+                         ;; does not exist in the build environment.
+                         "not test_fallback_default_verify_paths "
+                         ;; This test attempts to make a connection to
+                         ;; an external web service.
+                         "and not test_set_default_verify_paths "
+                         ;; Fails on i686-linux and possibly other 32-bit platforms
+                         ;; https://github.com/pyca/pyopenssl/issues/974
+                         "and not test_verify_with_time"))))))))
     (propagated-inputs
      (list python-cryptography python-six))
     (inputs
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 06a0d2593b..0182679acd 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2773,17 +2773,19 @@ APIs.")
 (define-public python-requests
   (package
     (name "python-requests")
-    (version "2.26.0")
+    (version "2.27.1")
     (source (origin
              (method url-fetch)
              (uri (pypi-uri "requests" version))
              (sha256
               (base32
-               "19q73fq7hip7b74fwls3p9x6zwvfwqcwpn6kha3zsgvrrzw5iamq"))))
+               "0qcsbi919d689xqlgyhw9zkppp1fs6k09wwffa3ri6d8smpwbmv8"))))
     (build-system python-build-system)
     (propagated-inputs
-     (list python-certifi python-chardet python-charset-normalizer
-           python-idna python-urllib3))
+     (list python-certifi
+           python-charset-normalizer
+           python-idna
+           python-urllib3))
     (arguments
      ;; FIXME: Some tests require network access.
      '(#:tests? #f))
@@ -3032,14 +3034,14 @@ addon for removing tracking fields from URLs.")
 (define-public python-urllib3
   (package
     (name "python-urllib3")
-    (version "1.26.7")
+    (version "1.26.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "urllib3" version))
         (sha256
          (base32
-          "1kkf6gi8a1fs0dqkf6kpmdpsy97iirvliz8q1krxp8ppaiawd1s9"))))
+          "0g18xk7gfm88gr4bp3f58vgvsbzwps3sq2kqhv5xyz9ylvck6z0f"))))
     (build-system python-build-system)
     (arguments `(#:tests? #f))
     (propagated-inputs
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 17d77972e5..5b808b710a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7119,26 +7119,22 @@ a multithreaded image-processing system with low memory needs.")
 (define-public python-pycparser
   (package
     (name "python-pycparser")
-    (version "2.20")
+    (version "2.21")
     (source
      (origin
       (method url-fetch)
       (uri (pypi-uri "pycparser" version))
       (sha256
        (base32
-        "1w0m3xvlrzq4lkbvd1ngfm8mdw64r1yxy6n7djlw6qj5d0km6ird"))))
+        "01kjlyn5w2nn2saj8w1rhq7v26328pd91xwgqn32z1zp2bngsi76"))))
     (outputs '("out" "doc"))
     (build-system python-build-system)
-    (native-inputs
-     (list pkg-config))
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
-             (with-directory-excursion "tests"
-               (invoke "python" "all_tests.py"))
-             #t))
+             (invoke "python" "-m" "unittest" "discover")))
          (add-after 'install 'install-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@@ -7149,8 +7145,7 @@ a multithreaded image-processing system with low memory needs.")
                            (copy-file (string-append "." file)
                                       (string-append doc file)))
                          '("/README.rst" "/CHANGES" "/LICENSE"))
-               (copy-recursively "examples" examples)
-               #t))))))
+               (copy-recursively "examples" examples)))))))
     (home-page "https://github.com/eliben/pycparser")
     (synopsis "C parser in Python")
     (description
@@ -11838,14 +11833,14 @@ for OER and UPER.")
 (define-public python-idna
   (package
     (name "python-idna")
-    (version "2.10")
+    (version "3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "idna" version))
        (sha256
         (base32
-         "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))
+         "0v8f6qjfi5i7qc5icsbv2pi24qy6k6m8wjqjvdf2sxjvlpq3yr4x"))))
     (build-system python-build-system)
     (home-page "https://github.com/kjd/idna")
     (synopsis "Internationalized domain names in applications")
@@ -12906,10 +12901,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
@@ -13203,19 +13198,40 @@ simulation, statistical modeling, machine learning and much more.")
 (define-public python-chardet
   (package
     (name "python-chardet")
-    (version "3.0.4")
+    (version "4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "chardet" version))
        (sha256
         (base32
-         "1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
+         "1ykr04qyhgpc0h5b7dhqw4g92b1xv7ki2ky910mhy4mlbnhm6vqd"))))
     (native-inputs
-     (list python-hypothesis python-pytest python-pytest-runner))
+     (list python-pytest))
     (build-system python-build-system)
-    ;; XXX: Incompatible with Pytest 4: <https://github.com/chardet/chardet/issues/173>.
-    (arguments `(#:tests? #f))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (replace 'check
+                 (lambda _
+                   (invoke "pytest" "-vv")))
+               ;; This package provides a 'chardetect' executable that only
+               ;; depends on Python, so customize the wrap phase to avoid
+               ;; adding pytest and friends in order to save size.
+               ;; (See also <https://bugs.gnu.org/25235>.)
+               (replace 'wrap
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((sitedir (site-packages inputs outputs))
+                          (python (dirname (dirname
+                                            (search-input-file
+                                             inputs "bin/python"))))
+                          (python-sitedir
+                           (string-append python "/lib/python"
+                                          (python-version python)
+                                          "/site-packages")))
+                     (wrap-program (string-append #$output "/bin/chardetect")
+                       `("GUIX_PYTHONPATH" ":" suffix
+                         ,(list sitedir python-sitedir)))))))))
     (home-page "https://github.com/chardet/chardet")
     (synopsis "Universal encoding detector for Python 2 and 3")
     (description
@@ -13226,14 +13242,34 @@ automatically detect a wide range of file encodings.")
 (define-public python-charset-normalizer
   (package
     (name "python-charset-normalizer")
-    (version "2.0.5")
+    (version "2.0.11")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "charset-normalizer" version))
        (sha256
-        (base32 "0rr3iv2xw4rz5ijnfqk229fw85cq6p6rhqqsilm0ldzncblfg63h"))))
+        (base32 "071pi2kd222rjjrjdllffqv3iz4bfaj93a9bfs65907fd6fqlfcq"))))
     (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; This package provides a 'normalizer' executable that only
+               ;; depends on Python, so customize the wrap phase to avoid
+               ;; adding pytest and friends in order to save size.
+               ;; (See also <https://bugs.gnu.org/25235>.)
+               (replace 'wrap
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((sitedir (site-packages inputs outputs))
+                          (python (dirname (dirname
+                                            (search-input-file
+                                             inputs "bin/python"))))
+                          (python-sitedir
+                           (string-append python "/lib/python"
+                                          (python-version python)
+                                          "/site-packages")))
+                     (wrap-program (string-append #$output "/bin/normalizer")
+                       `("GUIX_PYTHONPATH" ":" suffix
+                         ,(list sitedir python-sitedir)))))))))
     (native-inputs
      (list python-pytest))
     (home-page "https://github.com/ousret/charset_normalizer")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 31d2b0f625..dfae252f0a 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-latex-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-latex-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/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/tex.scm b/gnu/packages/tex.scm
index 4831cf0933..1dd3f09f90 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -1459,139 +1459,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/"
@@ -4059,37 +3926,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"
@@ -4135,6 +3971,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"
@@ -4175,8 +4013,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)
@@ -4184,14 +4020,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
@@ -4214,29 +4063,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
@@ -4530,8 +4356,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)
@@ -4540,7 +4364,15 @@ language that is written in a Cyrillic alphabet.")
           `(modify-phases ,phases
              (add-after 'unpack 'chdir
                (lambda _
-                 (chdir "source/latex/psnfss") #t))))))
+                 (chdir "source/latex/psnfss")))
+           (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")
@@ -4559,23 +4391,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
@@ -4591,7 +4406,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
@@ -7018,8 +6833,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")
@@ -7035,7 +6848,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
@@ -7046,25 +6867,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-latex-subfigure
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 185bb682f6..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")
@@ -338,14 +338,14 @@ ISO 8601 dates, time and duration.")
 (define-public python-iso8601
   (package
     (name "python-iso8601")
-    (version "0.1.13")
+    (version "1.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "iso8601" version))
        (sha256
         (base32
-         "1cgfj91khil4ii5gb8s6nxwm73vx7hqc2k79dd9d8990ylmc5ppp"))))
+         "1ccl6plks706hxm35cn1wsvxhqh3bfwi5cjgjpdxjib81qi07x97"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
@@ -353,8 +353,8 @@ ISO 8601 dates, time and duration.")
                     (lambda _
                       (invoke "pytest" "-vv" "iso8601"))))))
     (native-inputs
-     (list python-pytest))
-    (home-page "https://bitbucket.org/micktwomey/pyiso8601")
+     (list python-pytest python-pytz))
+    (home-page "https://github.com/micktwomey/pyiso8601")
     (synopsis "Module to parse ISO 8601 dates")
     (description
      "This module parses the most common forms of ISO 8601 date strings (e.g.
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index cf50a88410..59514f9357 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>
@@ -755,14 +755,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/unicode.scm b/gnu/packages/unicode.scm
index 23c5de195c..bda0de04cc 100644
--- a/gnu/packages/unicode.scm
+++ b/gnu/packages/unicode.scm
@@ -78,15 +78,14 @@ renderer.")
 (define-public ucd
   (package
     (name "ucd")
-    (version "12.0.0")
+    (version "14.0.0")
     (source
      (origin
        (method url-fetch/zipbomb)
        (uri (string-append "https://www.unicode.org/Public/zipped/" version
                            "/UCD.zip"))
        (sha256
-        (base32
-         "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh"))))
+        (base32 "001nq9w52ijma0vps40xwy2q6ylpyf1393lzb128ibypnmv54fh3"))))
     (build-system copy-build-system)
     (arguments
      '(#:install-plan
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 266379ad44..48c7c3a46d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -46,6 +46,7 @@
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
 ;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
 ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
 ;;; Copyright © 2021 David Wilson <david@daviwil.com>
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index b522b9d474..a7e1ccd6ca 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -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.
 ;;;
@@ -2001,7 +2002,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 +2010,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-browsers.scm b/gnu/packages/web-browsers.scm
index ead9e9749e..b327338cd5 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
+;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021, 2022 Cage <cage-dev@twistfold.it>
 ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca>
 ;;; Copyright © 2021 Alexander Krotov <krotov@iitp.ru>
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e2e6c72974..64d747a312 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1649,7 +1649,7 @@ used to validate and fix HTML data.")
 (define-public esbuild
   (package
     (name "esbuild")
-    (version "0.12.9")
+    (version "0.14.0")
     (source
      (origin
        (method git-fetch)
@@ -1658,7 +1658,7 @@ used to validate and fix HTML data.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "10bz1xq2frdja7mbx04m009svg8b5rj7vfq3sc2gc88n31v21b1j"))
+        (base32 "09r1xy0kk6c9cpz6q0mxr4why373pwxbm439z2ihq3k1d5kk7x4w"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index 960569f3ed..73338c73b3 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 123e6ca7e7..acef5c5836 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>
@@ -2441,7 +2441,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 4c2d4cb29e..4ad8f07c09 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>
@@ -26,6 +26,7 @@
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
+;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
@@ -6946,7 +6947,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