summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm28
-rw-r--r--gnu/packages/c.scm5
-rw-r--r--gnu/packages/code.scm30
-rw-r--r--gnu/packages/compression.scm25
-rw-r--r--gnu/packages/databases.scm2
-rw-r--r--gnu/packages/django.scm2
-rw-r--r--gnu/packages/dns.scm53
-rw-r--r--gnu/packages/file-systems.scm2
-rw-r--r--gnu/packages/finance.scm41
-rw-r--r--gnu/packages/fonts.scm2
-rw-r--r--gnu/packages/fontutils.scm2
-rw-r--r--gnu/packages/games.scm5
-rw-r--r--gnu/packages/gnome.scm33
-rw-r--r--gnu/packages/gnucash.scm6
-rw-r--r--gnu/packages/golang.scm35
-rw-r--r--gnu/packages/haskell-apps.scm4
-rw-r--r--gnu/packages/image.scm9
-rw-r--r--gnu/packages/linux.scm110
-rw-r--r--gnu/packages/lisp-xyz.scm231
-rw-r--r--gnu/packages/mail.scm19
-rw-r--r--gnu/packages/networking.scm2
-rw-r--r--gnu/packages/node.scm8
-rw-r--r--gnu/packages/openstack.scm6
-rw-r--r--gnu/packages/package-management.scm6
-rw-r--r--gnu/packages/patches/cpufrequtils-fix-aclocal.patch46
-rw-r--r--gnu/packages/patches/ganeti-sphinx-compat.patch24
-rw-r--r--gnu/packages/patches/libhx-fix-double-free-bug.patch80
-rw-r--r--gnu/packages/patches/qemu-meson-compat.patch27
-rw-r--r--gnu/packages/patches/qemu-sphinx-compat.patch18
-rw-r--r--gnu/packages/python-compression.scm20
-rw-r--r--gnu/packages/python-web.scm1
-rw-r--r--gnu/packages/python-xyz.scm12
-rw-r--r--gnu/packages/serialization.scm50
-rw-r--r--gnu/packages/shellutils.scm53
-rw-r--r--gnu/packages/suckless.scm31
-rw-r--r--gnu/packages/tcl.scm4
-rw-r--r--gnu/packages/vim.scm29
-rw-r--r--gnu/packages/virtualization.scm37
-rw-r--r--gnu/packages/web.scm4
39 files changed, 838 insertions, 264 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index d0283a5cb2..4d4e18e3a3 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -4808,3 +4808,31 @@ setup, maintenance, supervision, or any long-running processes.")
       (description "Utility to convert @code{lsof} output to a graph showing
 FIFO and UNIX interprocess communication.")
       (license license:bsd-2))))
+
+(define-public runitor
+  (package
+    (name "runitor")
+    (version "0.8.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/bdd/runitor")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "0vjfbyrbp5ywgzdz9j3x0qgjvnq7nw7193x8v9yy6k2cih1zsacn"))))
+    (build-system go-build-system)
+    (arguments
+     `(#:unpack-path "bdd.fi/x/runitor"
+       #:go ,go-1.17
+       #:build-flags '(,(string-append "-ldflags=-X main.Version=" version))
+       #:import-path "bdd.fi/x/runitor/cmd/runitor"
+       #:install-source? #f))
+    (home-page "https://github.com/bdd/runitor")
+    (synopsis "Command runner with healthchecks.io integration")
+    (description
+      "Runitor runs the supplied command, captures its output, and based on its
+exit code reports successful or failed execution to
+@url{https://healthchecks.io,https://healthchecks.io} or your private instance.")
+    (license license:bsd-0)))
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 7fdac40a97..9f30295067 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -4,7 +4,7 @@
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
@@ -259,7 +259,8 @@ whose behaviour is inconsistent across *NIX flavours.")
        (uri (string-append "https://inai.de/files/libhx/"
                            "libHX-" version ".tar.xz"))
        (sha256
-        (base32 "1f4rmarym1j368cbxhqzyvdn5dk4bh8951s19ffqwql16anqsgfr"))))
+        (base32 "1f4rmarym1j368cbxhqzyvdn5dk4bh8951s19ffqwql16anqsgfr"))
+       (patches (search-patches "libhx-fix-double-free-bug.patch"))))
     (build-system gnu-build-system)
     (home-page "https://inai.de/projects/libhx/")
     (synopsis "C library with common data structures and functions")
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6db3d683ce..884283383d 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -15,6 +15,7 @@
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 lu hui <luhuins@163.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -940,3 +941,32 @@ extensions over the standard utility.")
       (description "amalgamate.py aims to make it easy to use SQLite-style C
 source and header amalgamation in projects.")
       (license license:bsd-3))))
+
+(define-public cscope
+  (package
+    (name "cscope")
+    (version "15.9")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://sourceforge/cscope/cscope/"
+                           "v" version "/cscope-" version ".tar.gz"))
+       (sha256
+        (base32 "0ngiv4aj3rr35k3q3wjx0y19gh7i1ydqa0cqip6sjwd8fph5ll65"))))
+    (build-system gnu-build-system)
+    (inputs `(("ncurses" ,ncurses)))
+    (arguments
+     `(#:configure-flags
+       ;; Specify the correct ncurses directory to prevent incorrect fallback
+       ;; on SysV curses.
+       (list (string-append "--with-ncurses="
+                            (assoc-ref %build-inputs "ncurses")))))
+    (home-page "http://cscope.sourceforge.net")
+    (synopsis "Tool for browsing source code")
+    (description
+     "Cscope is a text screen based source browsing tool. Although it is
+primarily designed to search C code (including lex and yacc files), it can
+also be used for C++ code.
+
+Using cscope, you can easily search for where symbols are used and defined.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 38de46a874..a640019abb 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2099,9 +2099,9 @@ single-member files which can't be decompressed in parallel.")
 non-Windows systems without running the actual installer using wine.")
    (license license:zlib)))
 
-(define-public google-brotli
+(define-public brotli
   (package
-    (name "google-brotli")
+    (name "brotli")
     (version "1.0.9")
     (source
      (origin
@@ -2152,20 +2152,21 @@ with @code{deflate} but offers more dense compression.
 The specification of the Brotli Compressed Data Format is defined in RFC 7932.")
     (license license:expat)))
 
-(define-public brotli
-  ;; We used to provide an older version under the name "brotli".
-  (deprecated-package "brotli" google-brotli))
+(define-public google-brotli
+  (deprecated-package "google-brotli" brotli))
 
-(define-public python-google-brotli
+(define-public python-brotli
   (package
-    (inherit google-brotli)
-    (name "python-google-brotli")
+    (inherit brotli)
+    (name "python-brotli")
     (build-system python-build-system)
     (arguments '())
-    (synopsis "Python interface to google-brotli")
-    (description "@code{python-google-brotli} provides a Python interface to
-@code{google-brotli}, an implementation of the Brotli lossless compression
-algorithm.")))
+    (synopsis "Python interface to Brotli")
+    (description "This package provides a Python interface to the @code{brotli}
+package, an implementation of the Brotli lossless compression algorithm.")))
+
+(define-public python-google-brotli
+  (deprecated-package "python-google-brotli" python-brotli))
 
 (define-public ucl
   (package
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index d1c0c940a5..daa47e7c59 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -3779,7 +3779,7 @@ the SQL language using a syntax that reflects the resulting query.")
     (inputs
      `(("apache-thrift" ,apache-thrift "lib")
        ("boost" ,boost)
-       ("brotli" ,google-brotli)
+       ("brotli" ,brotli)
        ("bzip2" ,bzip2)
        ("double-conversion" ,double-conversion)
        ("gflags" ,gflags)
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 921bf13d76..59413ab253 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -32,13 +32,13 @@
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages check)
   #:use-module (gnu packages finance)
   #:use-module (gnu packages geo)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 6620c6b1d9..c770b880c8 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages certs)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages compression)
@@ -69,6 +70,7 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages ragel)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
   #:use-module (gnu packages swig)
@@ -82,11 +84,62 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system trivial))
 
+(define-public cloudflare-cli
+  (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
+        (revision "1"))
+    (package
+      (name "cloudflare-cli")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/earlchew/cloudflare-cli")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0f86g6n86kwykl3jnhqjrdfy8ybkp03ghr3dlr70q2552qw4axw2"))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:install-plan '(("cloudflare-cli" "bin/") ("cloudflare-cli.sh" "bin/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'find-jsonsh
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cloudflare-cli.sh"
+                 (("\\$\\{0%/\\*\\}/jsonsh")
+                  (string-append (assoc-ref inputs "json.sh") "/bin/JSON.sh")))
+               #t))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (wrap-program (string-append (assoc-ref outputs "out") "/bin/cloudflare-cli")
+                 `("PATH" ":" prefix
+                   (,(string-join
+                      (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+                           '("grep" "curl"))
+                      ":"))))
+               #t)))))
+      (inputs
+       `(("bash-minimal" ,bash-minimal)
+         ("curl" ,curl)
+         ("grep" ,grep)
+         ("json.sh" ,json.sh)))
+      (synopsis
+        "CLI to edit Cloudflare DNS records")
+      (description
+        "This command line tool to update Cloudfare DNS records is useful for tasks
+such as updating dynamic DNS records or updating DNS records for the ACME DNS-01
+protocol.")
+      (home-page "https://github.com/earlchew/cloudflare-cli")
+      (license license:expat))))
+
 (define-public ldns
   (package
     (name "ldns")
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 24d5619c8e..2a6fd6e576 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1548,7 +1548,7 @@ Dropbox API v2.")
        ("python-keyrings.alt" ,python-keyrings.alt)
        ("python-privy" ,python-privy)
        ("python-userspacefs" ,python-userspacefs)))
-  (home-page "https://github.com/rianhunter/dbxfs")
+  (home-page "https://thelig.ht/code/dbxfs/")
   (synopsis "User-space file system for Dropbox")
   (description
    "@code{dbxfs} allows you to mount your Dropbox folder as if it were a
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 3c3977b656..03f9904341 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1678,25 +1678,30 @@ define financial transaction records in a text file, read them in memory,
 generate a variety of reports from them, and provides a web interface.")
     (license license:gpl2)))
 
-;; The beancount source ships with elisp in a subdirectory
 (define-public emacs-beancount
-  (package
-    (inherit beancount)
-    (name "emacs-beancount")
-    (build-system emacs-build-system)
-    (arguments
-     `(#:tests? #f ;no tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'install 'chdir-emacs
-           (lambda _
-             (chdir "editors/emacs")
-             #t)))))
-    (inputs '())
-    (native-inputs '())
-    (synopsis "Emacs mode for beancount")
-    (description
-      "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")))
+  ;; Note that upstream has not made any release since this project moved
+  ;; into its own repository (it was originally part of beancount itself)
+  (let ((commit "dbafe6a73d90c1f64d457b356b9dbb43499f70d5")
+        (revision "0"))
+    (package
+      (name "emacs-beancount")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/beancount/beancount-mode")
+               (commit commit)))
+         (sha256
+          (base32
+           "0v9bws2gv5b00x829p7hrcxqgdp7iwxvv1vhfjka81qrw6w1fvjw"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/beancount/beancount-mode")
+      (synopsis "Emacs mode for Beancount")
+      (description
+       "Emacs-beancount is an Emacs mode for the Beancount accounting tool.")
+      (license license:gpl3+))))
 
 (define-public hledger-web
   (package
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index c9a9e4f038..5cf2393177 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -2050,7 +2050,7 @@ It comes in seven weights and Roman, Italic and Oblique styles.")
        ("harfbuzz" ,harfbuzz "bin")
        ("python" ,python-minimal)
        ("python-fonttools" ,python-fonttools)
-       ("python-google-brotli" ,python-google-brotli)))
+       ("python-brotli" ,python-brotli)))
     (arguments
      `(#:make-flags (list "PY=python3"
                           (string-append "DESTDIR=" %output)
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 7e8678e027..053dc18a25 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -313,7 +313,7 @@ work with most software requiring Type 1 fonts.")
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
-     `(("brotli" ,google-brotli)))
+     `(("brotli" ,brotli)))
     (synopsis "Libraries and tools for WOFF2 font format")
     (description "WOFF2 provides libraries and tools to handle the Web Open
 Font Format (WOFF).")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 62dc30aea6..2931d60954 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -12613,7 +12613,7 @@ disassembly of the DOS version, extended with new features.")
 (define-public fheroes2
   (package
     (name "fheroes2")
-    (version "0.9.7")
+    (version "0.9.8")
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
@@ -12633,8 +12633,7 @@ disassembly of the DOS version, extended with new features.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32
-         "0v3zh8a8yxfikcr5vkmy36c57l4nmwisz13mjavn5f7yrirf86fn"))))
+        (base32 "1sc7rmyiciahxh5f6rarhil2hrw8q8sjdssh063grji50mlnrf6a"))))
     (home-page "https://ihhub.github.io/fheroes2/")
     (synopsis "Turn-based strategy game engine")
     (description "@code{fheroes2} is an implementation of Heroes of Might and
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5d36068a51..d2ed60fcfc 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -175,7 +175,6 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -4903,7 +4902,7 @@ libxml to ease remote use of the RESTful API.")
        ("httpd" ,httpd)))
     (propagated-inputs
      ;; libsoup-2.4.pc refers to all of these (except where otherwise noted)
-     `(("brotli" ,google-brotli)
+     `(("brotli" ,brotli)
        ("glib" ,glib)
        ("glib-networking" ,glib-networking)       ; for GIO runtime modules
        ("libpsl" ,libpsl)
@@ -8384,9 +8383,9 @@ usage and information about running processes.")
     (version "3.34.5")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "gnome-bluetooth-" version ".tar.xz"))
               (sha256
                (base32
                 "1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
@@ -8397,6 +8396,8 @@ usage and information about running processes.")
        ("gobject-introspection" ,gobject-introspection)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
+       ("python" ,python)
+       ("python-dbus" ,python-dbus)
        ("xmllint" ,libxml2)))
     (propagated-inputs
      ;; gnome-bluetooth-1.0.pc refers to all these.
@@ -9500,23 +9501,22 @@ Features:
 (define-public gsound
   (package
     (name "gsound")
-    (version "1.0.2")
+    (version "1.0.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
+              (uri (string-append "mirror://gnome/sources/gsound/"
                                   (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "gsound-" version ".tar.xz"))
               (sha256
                (base32
-                "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
-    (build-system glib-or-gtk-build-system)
+                "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gobject-introspection" ,gobject-introspection)
        ("vala" ,vala)))
-    (inputs
-     `(("glib" ,glib)
-       ("libcanberra" ,libcanberra)))
+    (propagated-inputs
+     `(("libcanberra" ,libcanberra)))   ; in Requires.private of gsound.pc
     (home-page "https://wiki.gnome.org/Projects/GSound")
     (synopsis "GObject wrapper for libcanberra")
     (description
@@ -11802,7 +11802,7 @@ GTK+.  It integrates well with the GNOME desktop environment.")
 (define-public apostrophe
   (package
     (name "apostrophe")
-    (version "2.4")
+    (version "2.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -11811,7 +11811,7 @@ GTK+.  It integrates well with the GNOME desktop environment.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz"))))
+                "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
@@ -11855,10 +11855,11 @@ GTK+.  It integrates well with the GNOME desktop environment.")
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("sassc" ,sassc)))
     (home-page "https://gitlab.gnome.org/somas/apostrophe")
     (synopsis "Markdown editor written in Python with GTK+")
-    (description "Apostrophe is a GTK+ based distraction free Markdown editor.
+    (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
 It uses pandoc as back-end for parsing Markdown.")
     (license license:gpl3)))
 
diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm
index 41c387a909..921d5af1bd 100644
--- a/gnu/packages/gnucash.scm
+++ b/gnu/packages/gnucash.scm
@@ -292,14 +292,14 @@ applications and libraries.  It is used by AqBanking.")
 (define-public aqbanking
   (package
     (name "aqbanking")
-    (version "6.3.0")
+    (version "6.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.aquamaniac.de/rdm/attachments/"
-                           "download/372/aqbanking-" version ".tar.gz"))
+                           "download/386/aqbanking-" version ".tar.gz"))
        (sha256
-        (base32 "1k2mhdnk0jc0inq1hmp74m3y7azxrjm8r07x5k1pp4ic0yi5vs50"))))
+        (base32 "061l7qja7x557650kphbg1gzxc52a7557nibgdhv5jwqf8pv8ym9"))))
     (build-system gnu-build-system)
     (arguments
      `(;; Parallel building fails because aqhbci is required before it's
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 5786da586c..51bd9686ec 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -2680,6 +2680,41 @@ time.")
       (home-page "https://godoc.org/golang.org/x/xerrors")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-mod
+  (let ((commit "0f08993efd8a8ec67e75bcccf86b0e1569b0ab0a")
+        (revision "0"))
+    (package
+      (name "go-golang-org-x-mod")
+      (version (git-version "0.5.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://go.googlesource.com/x/mod")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0pl0jc5jvg7hxj4z66zg6kglnq5g7li09f3k9klwvyr4jx5dw88k"))))
+      (build-system go-build-system)
+      (arguments
+       '(#:import-path "golang.org/x/mod/"
+         #:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           ;; Source-only package
+           (delete 'build))))
+      (home-page "https://golang.org/x/mod")
+      (synopsis "Tools to work directly with Go module mechanics")
+      (description
+       "This repository holds packages for writing tools that work directly
+with Go module mechanics.  That is, it is for direct manipulation of Go modules
+themselves.
+
+The specific case of loading packages should still be done by invoking the
+@command{go} command, which remains the single point of truth for package
+loading algorithms.")
+      (license license:bsd-3))))
+
 (define-public go-github-com-burntsushi-toml
   (package
     (name "go-github-com-burntsushi-toml")
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index ca96680b67..994214e900 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -316,14 +316,14 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "8.20210903")
+    (version "8.20211011")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
-        (base32 "1p6zgk98jmxvqdin5xsdxhgq276bjdr2spi0wabj8x0ziry97rvl"))))
+        (base32 "02s7921ihmbndp7lk1nhhiljky02ikq4qax4mhg609qjhbl6piwd"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 2dd64d7c4c..99852fc205 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -31,6 +31,7 @@
 ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -91,6 +92,7 @@
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fonts)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -1868,7 +1870,7 @@ Features:
 (define-public swappy
   (package
     (name "swappy")
-    (version "1.2.1")
+    (version "1.4.0")
     (source
      (origin
        (method git-fetch)
@@ -1877,7 +1879,7 @@ Features:
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "14ac2jmnak7avcz0jhqjm30vk7pv3gq5aq5rdyh84k8c613kkicf"))))
+        (base32 "1s2lp3bz30svqdg6467jvncim0qgl0q1b1nqxnnci6kljbp5g0xh"))))
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
@@ -1886,6 +1888,9 @@ Features:
     (inputs
      `(("gtk+" ,gtk+)
        ("libnotify" ,libnotify)))
+    (propagated-inputs
+     ;; Needed to properly render the icons.
+     `(("font-awesome" ,font-awesome)))
     (home-page "https://github.com/jtheoof/swappy")
     (synopsis "Grab and edit on the fly snapshots of a Wayland compositor")
     (description
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8ec1adbed2..4e0b3ab2c4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -4842,14 +4842,14 @@ about ACPI devices.")
 (define-public acpid
   (package
     (name "acpid")
-    (version "2.0.32")
+    (version "2.0.33")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/acpid2/acpid-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0zhmxnhnhg4v1viw82yjr22kram6k5k1ixznhayk8cnw7q5x7lpj"))))
+                "1s6vf8lqwrcqi14k0ww47pk1kifbvxin73ha7mk1njmk7qdzfmh8"))))
     (build-system gnu-build-system)
     (home-page "https://sourceforge.net/projects/acpid2/")
     (synopsis "Daemon for delivering ACPI events to user-space programs")
@@ -4885,50 +4885,40 @@ also contains the libsysfs library.")
     ;; The rest is mostly gpl2, with a few files indicating gpl2+.
     (license (list license:gpl2 license:gpl2+ license:lgpl2.1+))))
 
-(define-public sysfsutils-1
-  (package
-    (inherit sysfsutils)
-    (version "1.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append
-         "mirror://sourceforge/linux-diag/sysfsutils/sysfsutils-" version
-         "/sysfsutils-" version ".tar.gz"))
-       (sha256
-        (base32 "0kdhs07fm8263pxwd5blwn2x211cg4fk63fyf9ijcdkvzmwxrqq3"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (substitute* "Makefile.in"
-             (("includedir = /usr/include/sysfs")
-              "includedir = @includedir@"))
-           (substitute* "configure"
-             (("includedir='(\\$\\{prefix\\}/include)'" all orig)
-              (string-append "includedir='" orig "/sysfs'")))
-           #t))))
-    (synopsis "System utilities based on Linux sysfs (version 1.x)")))
-
 (define-public cpufrequtils
   (package
     (name "cpufrequtils")
-    (version "0.3")
+    (version "008")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://kernel.org/linux/utils/kernel/cpufreq/"
                            "cpufrequtils-" version ".tar.gz"))
        (sha256
-        (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm"))
-       (patches (search-patches "cpufrequtils-fix-aclocal.patch"))))
+        (base32 "0xjs8j44hh0cz6qpig1n0iw8xjpr6s5qmcmwh965ngapxgarr7af"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("sysfsutils" ,sysfsutils-1)))
     (arguments
-     '(#:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
-                                         (assoc-ref %outputs "out") "/lib"))))
-    (home-page "https://www.kernel.org/pub/linux/utils/kernel/cpufreq/")
+     `(#:tests? #f                      ; no test suite
+       #:make-flags
+       (let ((out (assoc-ref %outputs "out")))
+         (list "PROC=false"             ; obsoleted by sysfs in Linux 2.6(!)
+               (string-append "CC=" ,(cc-for-target))
+               (string-append "LDFLAGS=-Wl,-rpath=" out "/lib")
+               "INSTALL=install"
+               (string-append "bindir=" out "/bin")
+               (string-append "sbindir=" out "/sbin")
+               (string-append "mandir=" out "/share/man")
+               (string-append "includedir=" out "/include")
+               (string-append "libdir=" out "/lib")
+               (string-append "localedir=" out "/share/locale")
+               (string-append "docdir=" out "/share/doc/" ,name)))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
+    (native-inputs
+     `(("gettext" ,gettext-minimal)))
+    (home-page
+     "http://ftp.be.debian.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html")
     (synopsis "Utilities to get and set CPU frequency on Linux")
     (description
      "The cpufrequtils suite contains utilities to retrieve CPU frequency
@@ -5478,7 +5468,7 @@ and copy/paste text in the console and in xterm.")
 (define-public btrfs-progs
   (package
     (name "btrfs-progs")
-    (version "5.14.1")
+    (version "5.14.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -5486,7 +5476,7 @@ and copy/paste text in the console and in xterm.")
                                   "btrfs-progs-v" version ".tar.xz"))
               (sha256
                (base32
-                "0ny5z3x8rqin0aci9qxpjc6dk5y0c1yvgk7353qnv92wai396jnm"))))
+                "1afpa8izagkr9sn5fqrm6687idiqdkcz08ks2j07972kd0rm5il5"))))
     (build-system gnu-build-system)
     (outputs '("out"
                "static"))      ; static versions of the binaries in "out"
@@ -6082,6 +6072,52 @@ commonly found on Microsoft Windows.  It is implemented as a FUSE file system.
 The package provides additional NTFS tools.")
     (license license:gpl2+)))
 
+(define-public ntfs-3g/static
+  (static-package
+   (package
+     (inherit ntfs-3g)
+     (name "ntfs-3g-static")
+     (arguments
+      (substitute-keyword-arguments (package-arguments ntfs-3g)
+        ((#:configure-flags flags)
+         `(append ,flags
+                  (list "--enable-really-static"
+                        ;; The FUSE driver isn't currently used by our initrd.
+                        "--disable-ntfs-3g")))
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-after 'unpack 'make-really-static-really-static
+              (lambda _
+                (substitute* "ntfsprogs/Makefile.in"
+                  ((" -static") " -all-static"))))
+            (delete 'install-link))))))))
+
+(define-public ntfsfix/static
+  (package
+    (name "ntfsfix-static")
+    (version (package-version ntfs-3g/static))
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((ntfs-3g (assoc-ref %build-inputs "ntfs-3g"))
+                (out     (assoc-ref %outputs "out"))
+                (bin     (string-append out "/bin")))
+           (install-file (string-append ntfs-3g "/bin/ntfsfix") bin)
+           (with-directory-excursion bin
+             (remove-store-references "ntfsfix"))))))
+    (inputs
+     `(("ntfs-3g" ,ntfs-3g/static)))
+    (home-page (package-home-page ntfs-3g/static))
+    (synopsis "Statically linked @command{ntfsfix} from ntfs-3g")
+    (description
+     "This package provides a statically linked @command{ntfsfix} taken
+from the ntfs-3g package.  It is meant to be used in initrds.")
+    (license (package-license ntfs-3g/static))))
+
 (define-public rdma-core
   (package
     (name "rdma-core")
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 91d16fb594..4b98718d1a 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -27,6 +27,7 @@
 ;;; Copyright © 2021 Cage <cage-dev@twistfold.it>
 ;;; Copyright © 2021 Cameron Chaparro <cameron@cameronchaparro.com>
 ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -84,7 +85,9 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages readline)
   #:use-module (gnu packages sdl)
+  #:use-module (gnu packages serialization)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
@@ -18827,3 +18830,231 @@ formats within this framework.")
 
 (define-public cl-feeder
   (sbcl-package->cl-source-package sbcl-feeder))
+
+(define-public sbcl-terminfo
+  (let ((commit "b8b2e3ed786bfcf9f1aa4a264cee2e93135080f5")
+        (revision "1"))
+    (package
+      (name "sbcl-terminfo")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/npatrick04/terminfo")
+               (commit commit)))
+         (file-name (git-file-name "terminfo" version))
+         (sha256
+          (base32 "1nmin9rr6f75xdhxysba66xa1dh62fh27w9ad1cvmj0062armf6b"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Terminfo database front end in Common Lisp")
+      (home-page "https://github.com/npatrick04/terminfo")
+      (description
+        "This is a terminfo database front end in Common Lisp.  The package
+provides a method for determining which capabilities a terminal
+(e.g. \"xterm\") has and methods to compile or put commands to a stream.")
+      (license license:expat))))
+
+(define-public cl-terminfo
+  (sbcl-package->cl-source-package sbcl-terminfo))
+
+(define-public ecl-terminfo
+  (sbcl-package->ecl-package sbcl-terminfo))
+
+(define-public sbcl-conium
+  (let ((commit "089adfd8759ec7973bb6f67b98d7a246e67aeb05")
+        (revision "1"))
+    (package
+      (name "sbcl-conium")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/sharplispers/conium")
+               (commit commit)))
+         (file-name (git-file-name "conium" version))
+         (sha256
+          (base32 "0y31za8xr8734p2pf8mrw1jd1fksh2d4y1p12wwjyn8hxxsvsx1w"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("closer-mop" ,sbcl-closer-mop)))
+      (home-page "https://github.com/sharplispers/conium")
+      (synopsis "Portability library for debugger- and compiler-related tasks")
+      (description
+       "Conium is a portability library for debugger- and compiler-related
+tasks in Common Lisp.  It is fork of SWANK-BACKEND.")
+      (license license:public-domain))))
+
+(define-public cl-conium
+  (sbcl-package->cl-source-package sbcl-conium))
+
+(define-public ecl-conium
+  (sbcl-package->ecl-package sbcl-conium))
+
+(define-public sbcl-cl-readline
+  (let ((commit "8438c9ebd92ccc95ebab9cc9cbe6c72d44fccc58")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-readline")
+      (version (git-version "0.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/vindarel/cl-readline")
+               (commit commit)))
+         (file-name (git-file-name "cl-readline" version))
+         (sha256
+          (base32 "14iskvqfw71ssaav483vmqw62lrpznysjs800gjjppxs785p1fa0"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("readline" ,readline)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "cl-readline.lisp"
+                 (("libreadline.so")
+                  (string-append (assoc-ref inputs "readline")
+                                 "/lib/libreadline.so"))))))))
+      (home-page "https://github.com/vindarel/cl-readline")
+      (synopsis "Common Lisp bindings to the GNU Readline library")
+      (description
+        "The Readline library provides a set of functions for use by
+applications that allow users to edit command lines as they are typed in.
+Both Emacs and vi editing modes are available.  The Readline library includes
+additional functions to maintain a list of previously-entered command lines, to
+recall and perhaps reedit those lines, and perform csh-like history expansion on
+previous commands.")
+      (license license:gpl3+))))
+
+(define-public cl-readline
+  (sbcl-package->cl-source-package sbcl-cl-readline))
+
+(define-public ecl-cl-readline
+  (sbcl-package->ecl-package sbcl-cl-readline))
+
+(define-public sbcl-generic-comparability
+  (let ((commit "53fc2846319a6eb46b36581e203e1f1542a8acff")
+        (revision "1"))
+    (package
+      (name "sbcl-generic-comparability")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pnathan/generic-comparability")
+               (commit commit)))
+         (file-name (git-file-name "generic-comparability" version))
+         (sha256
+          (base32 "01ma0cwirxarwwmdwflnh8kmysmr2smh5kyvzhb2074ljxg8yq2p"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (home-page "https://github.com/pnathan/generic-comparability")
+      (synopsis "Implementation of cdr-8")
+      (description
+        "GENERIC-COMPARABILITY is an implementation of CDR-8 (Generic Equality
+and Comparison for Common Lisp).  CDR-8 provides an interface for the EQUALS
+function, which is defined as a general equality predicate, as well as a set of
+ordering (COMPARE) functions for comparison.  The semantics are described in
+the CDR-8 standard.")
+      (license license:llgpl))))
+
+(define-public cl-generic-comparability
+  (sbcl-package->cl-source-package sbcl-generic-comparability))
+
+(define-public ecl-generic-comparability
+  (sbcl-package->ecl-package sbcl-generic-comparability))
+
+(define-public sbcl-cl-libyaml
+  (let ((commit "a7fe9f68bddfd00b7ca467b65b3b41b276336843")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-libyaml")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-libyaml")
+               (commit commit)))
+         (file-name (git-file-name "cl-libyaml" version))
+         (sha256
+          (base32
+           "06pvmackyhq03rjmihpx6w63m6cy8wx78ll5xpwwvd85bgrqq817"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("libyaml" ,libyaml)))
+      (arguments
+       '(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/library.lisp"
+                 (("libyaml.so")
+                  (string-append (assoc-ref inputs "libyaml")
+                                 "/lib/libyaml.so"))))))))
+      (home-page "https://github.com/eudoxia0/cl-libyaml")
+      (synopsis "Libyaml bindings for Common Lisp")
+      (description
+        "This is a binding to the libyaml library.  It's not meant as
+a full library for YAML, just a bare binding with a couple of utility macros.
+For a YAML parser and emitter using this, check out cl-yaml.")
+      (license license:expat))))
+
+(define-public cl-libyaml
+  (sbcl-package->cl-source-package sbcl-cl-libyaml))
+
+(define-public ecl-cl-libyaml
+  (sbcl-package->ecl-package sbcl-cl-libyaml))
+
+(define-public sbcl-cl-yaml
+  (let ((commit "c3202be9a753c51f3bc79538a5a498a8865192aa")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-yaml")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/eudoxia0/cl-yaml")
+               (commit commit)))
+         (file-name (git-file-name "cl-yaml" version))
+         (sha256
+          (base32 "1izjg0v6rf7dh069bbnnr67l30lsqj86wdk7y9ggbgiwh6v9j185"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-libyaml" ,sbcl-cl-libyaml)
+         ("cl-ppcre" ,sbcl-cl-ppcre)
+         ("parse-number" ,sbcl-parse-number)))
+      (native-inputs
+       `(("cl-fad" ,sbcl-cl-fad)
+         ("fiveam" ,sbcl-fiveam)
+         ("generic-comparability" ,sbcl-generic-comparability)
+         ("trivial-benchmark" ,sbcl-trivial-benchmark)
+         ("yason" ,sbcl-yason)))
+      (home-page "https://github.com/eudoxia0/cl-yaml")
+      (synopsis "YAML parser for Common Lisp")
+      (description
+        "This is a YAML parser and emitter for Common Lisp built on top of
+libyaml.")
+      (license license:expat))))
+
+(define-public cl-yaml
+  (sbcl-package->cl-source-package sbcl-cl-yaml))
+
+(define-public ecl-cl-yaml
+  (sbcl-package->ecl-package sbcl-cl-yaml))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2e1d3d069d..709c64d25b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -842,7 +842,7 @@ mailpack.  What can alterMIME do?
 (define-public astroid
   (package
     (name "astroid")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method git-fetch)
@@ -851,14 +851,13 @@ mailpack.  What can alterMIME do?
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3"))
+        (base32 "17m99llggkg7xg72k8xaf7iipax7sgfhqa2a1qnlylndwa42f57b"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; https://github.com/astroidmail/astroid/pull/685
            (substitute* "tests/test_composed_message.cc"
-             (("\\\\n\\.\\.\\.") "\\n...\\n"))
-           #t))))
+             (("\\\\n\\.\\.\\.") "\\n...\\n"))))))
     (build-system cmake-build-system)
     (arguments
      `(#:modules ((guix build cmake-build-system)
@@ -877,8 +876,7 @@ mailpack.  What can alterMIME do?
            ;; ValueError: Namespace Astroid not available
            (lambda _
              (substitute* "tests/CMakeLists.txt"
-               ((".*markdown.*") ""))
-             #t))
+               ((".*markdown.*") ""))))
          (replace 'build
            (lambda _
              (invoke "ninja" "-j" (number->string (parallel-job-count)))))
@@ -887,14 +885,12 @@ mailpack.  What can alterMIME do?
              (let ((xorg-server (assoc-ref inputs "xorg-server")))
                (setenv "HOME" (getcwd))
                (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
-               (setenv "DISPLAY" ":1")
-               #t)))
+               (setenv "DISPLAY" ":1"))))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (setenv "CTEST_OUTPUT_ON_FAILURE" "1")
-               (invoke "ctest" "."))
-             #t))
+               (invoke "ctest" "."))))
          (replace 'install
            (lambda _
              (invoke "ninja" "install")))
@@ -911,8 +907,7 @@ mailpack.  What can alterMIME do?
                                         #f))))
                                inputs)))
                (wrap-program (string-append out "/bin/astroid")
-                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))
-             #t))
+                 `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths))))))
          (add-after 'install 'glib-or-gtk-compile-schemas
            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
          (add-after 'install 'glib-or-gtk-wrap
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 5b53c8053b..ba9137cb39 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1509,7 +1509,7 @@ of the same name.")
      `(("c-ares" ,c-ares)
        ("glib" ,glib)
        ("gnutls" ,gnutls)
-       ("google-brotli" ,google-brotli)
+       ("brotli" ,brotli)
        ("libcap" ,libcap)
        ("libgcrypt" ,libgcrypt)
        ("libnl" ,libnl)
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index fd6dd4cd24..35fee2158d 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -681,7 +681,7 @@ source files.")
              (lambda* (#:key native-inputs inputs #:allow-other-keys)
                (let* ((inputs        (or native-inputs inputs))
                       (c-ares        (assoc-ref inputs "c-ares"))
-                      (google-brotli (assoc-ref inputs "google-brotli"))
+                      (brotli        (assoc-ref inputs "brotli"))
                       (icu4c         (assoc-ref inputs "icu4c"))
                       (nghttp2       (assoc-ref inputs "nghttp2"))
                       (openssl       (assoc-ref inputs "openssl"))
@@ -700,7 +700,7 @@ source files.")
                     (string-append target
                                    "'ldflags': ['-Wl,-rpath="
                                    c-ares "/lib:"
-                                   google-brotli "/lib:"
+                                   brotli "/lib:"
                                    icu4c "/lib:"
                                    nghttp2 "/lib:"
                                    openssl "/lib:"
@@ -816,7 +816,7 @@ source files.")
     (native-inputs
      `(;; Runtime dependencies for binaries used as a bootstrap.
        ("c-ares" ,c-ares)
-       ("google-brotli" ,google-brotli)
+       ("brotli" ,brotli)
        ("icu4c" ,icu4c-67)
        ("libuv" ,libuv-for-node)
        ("nghttp2" ,nghttp2 "lib")
@@ -835,7 +835,7 @@ source files.")
        ("icu4c" ,icu4c-67)
        ("libuv" ,libuv-for-node)
        ("llhttp" ,llhttp-bootstrap)
-       ("google-brotli" ,google-brotli)
+       ("brotli" ,brotli)
        ("nghttp2" ,nghttp2 "lib")
        ("openssl" ,openssl)
        ("zlib" ,zlib)))))
diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm
index 6e36d298f5..1c35fe570f 100644
--- a/gnu/packages/openstack.scm
+++ b/gnu/packages/openstack.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2016, 2017, 2019, 2021 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
@@ -799,13 +799,13 @@ permanence.")
 (define-public python-git-review
   (package
     (name "python-git-review")
-    (version "1.28.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "git-review" version))
        (sha256
-        (base32 "0nn17mfqvsa3ryjz53qjslmf60clc0vx2115kkj66h28p6vsnflf"))))
+        (base32 "1mhywsbisyv028lsj2ksg4g5l8kyimpwxgwzqi08rymi8mb7fv1s"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f                     ; tests require a running Gerrit server
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index f768d7b103..3d8ebbf545 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1248,8 +1248,8 @@ environments.")
     (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
 
 (define-public guix-build-coordinator
-  (let ((commit "76d129dc19cc0e14441ae3a74bbc44e3be570b21")
-        (revision "34"))
+  (let ((commit "a4d0ec6bc564bbe98d3e6c03be41de16edbda928")
+        (revision "35"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1260,7 +1260,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1f624vlk58cznx4383vkhkw61lplv25nqy3qhclsawbm5bih7wcj"))
+                  "0qa7qkskp9xzhyl0fgbm98f8apy8cn2yc9gpxhw0dfc9bkbs1pb9"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/patches/cpufrequtils-fix-aclocal.patch b/gnu/packages/patches/cpufrequtils-fix-aclocal.patch
deleted file mode 100644
index be5767f462..0000000000
--- a/gnu/packages/patches/cpufrequtils-fix-aclocal.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Add an extra layer of quoting to ltmain.sh sanity check.
-
---- a/configure	2005-05-07 14:19:31.000000000 +0200
-+++ b/configure	2015-02-10 11:16:32.456146934 +0100
-@@ -6266,7 +6266,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'`
-+gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
---- a/aclocal.m4	2005-05-07 14:19:25.000000000 +0200
-+++ b/aclocal.m4	2015-02-10 11:16:15.352030318 +0100
-@@ -246,7 +246,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
-+gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   AC_MSG_RESULT(no)
-   echo
---- a/libcpufreq/configure	2005-05-07 14:19:31.000000000 +0200
-+++ b/libcpufreq/configure	2015-02-10 11:16:32.456146934 +0100
-@@ -6266,7 +6266,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[:space:]*VERSION=' $ltmain | sed -e 's|^[:space:]*VERSION=||'`
-+gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   echo "$as_me:$LINENO: result: no" >&5
- echo "${ECHO_T}no" >&6
---- a/libcpufreq/aclocal.m4	2005-05-07 14:19:25.000000000 +0200
-+++ b/libcpufreq/aclocal.m4	2015-02-10 11:16:15.352030318 +0100
-@@ -246,7 +246,7 @@
-   exit 1
- fi
- gentoo_lt_version="1.5.16"
--gentoo_ltmain_version=`grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||'`
-+gentoo_ltmain_version=`[grep '^[[:space:]]*VERSION=' $ltmain | sed -e 's|^[[:space:]]*VERSION=||']`
- if test "$gentoo_lt_version" != "$gentoo_ltmain_version"; then
-   AC_MSG_RESULT(no)
-   echo
diff --git a/gnu/packages/patches/ganeti-sphinx-compat.patch b/gnu/packages/patches/ganeti-sphinx-compat.patch
new file mode 100644
index 0000000000..4e84abbf37
--- /dev/null
+++ b/gnu/packages/patches/ganeti-sphinx-compat.patch
@@ -0,0 +1,24 @@
+Adjust documentation for Sphinx 4.0.
+
+Discussed upstream at <https://github.com/ganeti/ganeti/pull/1615>.
+
+diff --git a/doc/index.rst b/doc/index.rst
+--- a/doc/index.rst
++++ b/doc/index.rst
+@@ -119,7 +119,6 @@ Draft designs
+    design-hotplug.rst
+    design-internal-shutdown.rst
+    design-kvmd.rst
+-   design-location.rst
+    design-linuxha.rst
+    design-location.rst
+    design-lu-generated-jobs.rst
+diff --git a/lib/build/shell_example_lexer.py b/lib/build/shell_example_lexer.py
+--- a/lib/build/shell_example_lexer.py
++++ b/lib/build/shell_example_lexer.py
+@@ -79,4 +79,4 @@ class ShellExampleLexer(RegexLexer):
+ 
+ 
+ def setup(app):
+-  app.add_lexer("shell-example", ShellExampleLexer())
++  app.add_lexer("shell-example", ShellExampleLexer)
diff --git a/gnu/packages/patches/libhx-fix-double-free-bug.patch b/gnu/packages/patches/libhx-fix-double-free-bug.patch
new file mode 100644
index 0000000000..80c2c6ca84
--- /dev/null
+++ b/gnu/packages/patches/libhx-fix-double-free-bug.patch
@@ -0,0 +1,80 @@
+From a08eabc6e5a3e0a9c7a15ca15ff7d450ecb6db88 Mon Sep 17 00:00:00 2001
+From: Jan Engelhardt <jengelh@inai.de>
+Date: Tue, 12 Oct 2021 17:32:43 +0200
+Subject: [PATCH] io: fix a use-after-free in conjunction with HX_realpath
+
+HX_readlink(&x, ...) forgot to set x to nullptr upon error, which
+trips up subsequent calls to HX_readlink with the very same x.
+
+Fixes: v3.26-1-g97f4be2
+---
+ src/io.c          |  8 ++++++--
+ src/tc-realpath.c | 10 ++++++++++
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/src/io.c b/src/io.c
+index 95d6fd6..14078fc 100644
+--- a/src/io.c
++++ b/src/io.c
+@@ -316,8 +316,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path)
+ 		ssize_t ret = readlink(path, *target, linkbuf_size);
+ 		if (ret < 0) {
+ 			int saved_errno = errno;
+-			if (allocate)
++			if (allocate) {
+ 				HXmc_free(*target);
++				*target = nullptr;
++			}
+ 			return -(errno = saved_errno);
+ 		}
+ 		if (static_cast(size_t, ret) < linkbuf_size) {
+@@ -327,8 +329,10 @@ EXPORT_SYMBOL int HX_readlink(hxmc_t **target, const char *path)
+ 		linkbuf_size *= 2;
+ 		if (HXmc_setlen(target, linkbuf_size) == NULL) {
+ 			int saved_errno = errno;
+-			if (allocate)
++			if (allocate) {
+ 				HXmc_free(*target);
++				*target = nullptr;
++			}
+ 			return -(errno = saved_errno);
+ 		}
+ 	}
+diff --git a/src/tc-realpath.c b/src/tc-realpath.c
+index 5dd9aa2..c2ef15a 100644
+--- a/src/tc-realpath.c
++++ b/src/tc-realpath.c
+@@ -11,6 +11,7 @@
+ #include <stdlib.h>
+ #include <libHX/io.h>
+ #include <libHX/option.h>
++#include <libHX/string.h>
+ 
+ static unsigned int rp_flags;
+ static unsigned int rp_absolute;
+@@ -42,6 +43,14 @@ static bool rp_get_options(int *argc, const char ***argv)
+ 	return true;
+ }
+ 
++static void t_1(void)
++{
++	hxmc_t *tmp = HXmc_strinit("");
++	/* two components, so that HX_readlink gets called twice */
++	HX_realpath(&tmp, "/dev/tty", HX_REALPATH_DEFAULT);
++	HXmc_free(tmp);
++}
++
+ int main(int argc, const char **argv)
+ {
+ 	hxmc_t *res;
+@@ -49,6 +58,7 @@ int main(int argc, const char **argv)
+ 
+ 	if (!rp_get_options(&argc, &argv))
+ 		return EXIT_FAILURE;
++	t_1();
+ 
+ 	res = NULL;
+ 	while (--argc > 0) {
+-- 
+2.33.0
+
diff --git a/gnu/packages/patches/qemu-meson-compat.patch b/gnu/packages/patches/qemu-meson-compat.patch
deleted file mode 100644
index e6968c57dc..0000000000
--- a/gnu/packages/patches/qemu-meson-compat.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix a build failure that occurs with newer versions of Meson when
-gdbus-codegen is unavailable.
-
-Taken from upstream:
-https://gitlab.com/qemu-project/qemu/-/commit/5ecfb76ccc056eb6127e44268e475827ae73b9e0
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -3341,7 +3341,7 @@ if ! test "$gio" = "no"; then
-         gio_cflags=$($pkg_config --cflags gio-2.0)
-         gio_libs=$($pkg_config --libs gio-2.0)
-         gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
--        if [ ! -x "$gdbus_codegen" ]; then
-+        if ! has "$gdbus_codegen"; then
-             gdbus_codegen=
-         fi
-         # Check that the libraries actually work -- Ubuntu 18.04 ships
-@@ -5704,6 +5704,8 @@ if test "$gio" = "yes" ; then
-     echo "CONFIG_GIO=y" >> $config_host_mak
-     echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
-     echo "GIO_LIBS=$gio_libs" >> $config_host_mak
-+fi
-+if test "$gdbus_codegen" != "" ; then
-     echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
- fi
- echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
diff --git a/gnu/packages/patches/qemu-sphinx-compat.patch b/gnu/packages/patches/qemu-sphinx-compat.patch
deleted file mode 100644
index 7342ebee4e..0000000000
--- a/gnu/packages/patches/qemu-sphinx-compat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Prevent Sphinx 4 and later from creating subdirectories, which
-the build scripts are not equipped to deal with.
-
-Taken from upstream:
-https://gitlab.com/qemu-project/qemu/-/issues/256
-https://gitlab.com/qemu-project/qemu/-/commit/269a7e97865cb863c9ca19e5f2e6a40ac9eddf82
-
-diff --git a/docs/conf.py b/docs/conf.py
---- a/docs/conf.py
-+++ b/docs/conf.py
-@@ -279,6 +279,7 @@
-      ['Stefan Hajnoczi <stefanha@redhat.com>',
-       'Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>'], 1),
- ]
-+man_make_section_directory = False
- 
- # -- Options for Texinfo output -------------------------------------------
- 
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 6906f7050c..c41f837475 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -261,26 +261,6 @@ the LZ4 frame format.")
 (define-public python2-lzstring
   (package-with-python2 python-lzstring))
 
-(define-public python-brotli
-  (package
-    (name "python-brotli")
-    (version "1.0.9")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "Brotli" version ".zip"))
-        (sha256
-         (base32
-          "0f4433s4wv9masc303kkb1s0a09x81xwr8pdvj0kyxzdl05826sd"))))
-    (build-system python-build-system)
-    (native-inputs
-     `(("unzip" ,unzip)))
-    (home-page "https://github.com/google/brotli")
-    (synopsis "Python bindings for the Brotli compression library")
-    (description
-     "This package provides python bindings for the Brotli compression library.")
-    (license license:asl2.0)))
-
 (define-public bitshuffle
   (package
     (name "bitshuffle")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 5d04c2c7ac..a670fd8de0 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -82,7 +82,6 @@
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 719096d5c9..f89e554d6d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -51,7 +51,7 @@
 ;;; Copyright © 2016, 2018 Tomáš Čech <sleep_walker@gnu.org>
 ;;; Copyright © 2018, 2019, 2020, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
+;;; Copyright © 2018, 2019, 2021 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com>
 ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org>
@@ -3076,14 +3076,14 @@ code introspection, and logging.")
 (define-public python-pbr-minimal
   (package
     (name "python-pbr-minimal")
-    (version "3.0.1")
+    (version "5.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pbr" version))
        (sha256
         (base32
-         "14fs5acnalnb3h62s7q7av239j541fk0n0z0lawh4h09b1s93s6p"))))
+         "1j8k5d4rdhy5bw5ai1vkjzln2albah94in3vvyvxa0n42fv81baz"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))
@@ -6858,7 +6858,7 @@ def customize_build(EXTENSIONS, OPTIONS):
     (inputs
       `(("c-blosc" ,c-blosc)
         ("giflib" ,giflib)
-        ("google-brotli" ,google-brotli)
+        ("brotli" ,brotli)
         ("libjpeg-turbo" ,libjpeg-turbo)
         ("libpng" ,libpng)
         ("libtiff" ,libtiff)
@@ -25382,14 +25382,14 @@ and delegating behavior.")
 (define-public python-lazr-config
   (package
     (name "python-lazr-config")
-    (version "2.2.2")
+    (version "2.2.3")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "lazr.config" version))
         (sha256
          (base32
-          "11xpddgyhyj7sf27wbmrq5lnqk21wnprx3ajycgwlxjamh6sgffd"))))
+          "1qdbrzl61q7cjhbnxvw9y3frcr935y7diwy15xrwcv9ynvw76jmp"))))
     (build-system python-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 352e643c26..dc21dba10b 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -36,10 +36,13 @@
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -477,6 +480,53 @@ it a convenient format to store user input files.")
                (base32
                 "1180ln8blrb0mwzpcf78k49hlki6di65q77rsvglf83kfcyh4d7z"))))))
 
+(define-public json.sh
+  (let ((commit "0d5e5c77365f63809bf6e77ef44a1f34b0e05840") ;no releases
+        (revision "1"))
+    (package
+      (name "json.sh")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dominictarr/JSON.sh")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "14lxvp5xbdk0dcwkjbdp098z1108j8z48zaibndh4i731kkcz43i"))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:install-plan '(("JSON.sh" "bin/"))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests? (invoke "./all-tests.sh"))
+               #t))
+           (add-after 'install 'wrap-program
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (wrap-program (string-append (assoc-ref outputs "out") "/bin/JSON.sh")
+                 `("PATH" ":" prefix
+                   (,(string-join
+                     (map (lambda (in) (string-append (assoc-ref inputs in) "/bin"))
+                          '("grep" "sed"))
+                      ":"))))
+                #t)))))
+      (inputs
+       `(("bash-minimal" ,bash-minimal)
+         ("grep" ,grep)
+         ("sed" ,sed)))
+      (synopsis "Pipeable JSON parser written in shell")
+      (description
+        "This package provides a JSON parser written in shell, compatible with
+ash, Bash, Dash and Zsh.  Pipe JSON to it, and it traverses the JSON objects
+and prints out the path to the current object (as a JSON array) and then the
+object, without whitespace.")
+      (home-page "https://github.com/dominictarr/JSON.sh")
+      (license (list license:expat license:asl2.0))))) ;dual-licensed
+
 (define-public capnproto
   (package
     (name "capnproto")
diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm
index 94b5536df7..9a364d0ade 100644
--- a/gnu/packages/shellutils.scm
+++ b/gnu/packages/shellutils.scm
@@ -10,6 +10,8 @@
 ;;; Copyright © 2020 aecepoglu <aecepoglu@fastmail.fm>
 ;;; Copyright © 2020 Dion Mendel <guix@dm9.info>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -138,6 +140,57 @@ text.")
 as you type.")
     (license license:expat)))
 
+(define-public zsh-syntax-highlighting
+  (package
+    (name "zsh-syntax-highlighting")
+    (version "0.7.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zsh-users/zsh-syntax-highlighting")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "039g3n59drk818ylcyvkciv8k9mf739cv6v4vis1h9fv9whbcmwl"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("zsh" ,zsh)))
+    (arguments
+     ;; FIXME: Tests fail when running test regexp
+     ;; there is no pcre module in the Guix zsh package
+     `(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (add-after 'unpack 'patch-paths
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "Makefile"
+                 (("/usr/local") out)
+                 (("share/\\$\\(NAME\\)") "share/zsh/plugins/$(NAME)")))))
+         (add-after 'patch-paths 'make-writable
+           (lambda _
+             (for-each make-file-writable
+                       '("docs/highlighters.md"
+                         "README.md"))))
+         (add-before 'build 'add-all-md
+           (lambda _
+             (invoke "make" "all")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "make" "test")
+               (invoke "make" "perf")))))))
+    (home-page "https://github.com/zsh-users/zsh-syntax-highlighting")
+    (synopsis "Fish shell-like syntax highlighting for Zsh")
+    (description
+     "This package provides syntax highlighting for Zsh.  It enables
+highlighting of commands whilst they are typed at a Zsh prompt into an
+interactive terminal.  This helps in reviewing commands before running them,
+particularly in catching syntax errors.")
+    (license license:bsd-3)))
+
 (define-public sh-z
   (package
     (name "sh-z")
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 4200793021..bb8099be55 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -488,6 +489,36 @@ few minutes.")
     (home-page "https://tools.suckless.org/sent")
     (license license:x11)))
 
+(define-public wmname
+  (package
+    (name "wmname")
+    (version "0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dl.suckless.org/tools/wmname-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "1i82ilhbk36hspc2j0fbpg27wjj7xnvzpv1ppgf6fccina4d36jm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+       #:phases                         ; no tests
+       (modify-phases %standard-phases
+         (delete 'configure))))         ; no configure script
+    (inputs
+     `(("libx11" ,libx11)))
+    (home-page "https://tools.suckless.org/x/wmname/")
+    (synopsis "Print or set the window manager name")
+    (description "@command{wmname} prints/sets the window manager name
+property of the root window similar to how @command{hostname} behaves.  It is
+useful for fixing problems with JDK versions and other broken programs
+assuming a reparenting window manager for instance.")
+    (license license:expat)))
+
 (define-public xbattmon
   (package
     (name "xbattmon")
diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm
index 5fccfa5da9..2ad10416cb 100644
--- a/gnu/packages/tcl.scm
+++ b/gnu/packages/tcl.scm
@@ -260,7 +260,7 @@ interfaces (GUIs) in the Tcl language.")
 (define-public perl-tk
   (package
     (name "perl-tk")
-    (version "804.034")
+    (version "804.036")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -268,7 +268,7 @@ interfaces (GUIs) in the Tcl language.")
                    version ".tar.gz"))
              (sha256
               (base32
-               "1qiz55dmw7hm1wgpjdzf2jffwcj0hisr3kf80qi8lli3qx2b39py"))))
+               "0pha40m97fzafjnq8vwkbi5sml6xv8jki6qi60rxrzmxlrqp5aij"))))
     (build-system perl-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("libx11" ,libx11)
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index f91954f50c..f337e901e4 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -1067,3 +1067,32 @@ your code every time you make a change.  @code{Vim-slime} is an attempt at
 getting some of these features into Vim.  It works with any REPL and isn't tied
 to Lisp.")
       (license license:expat))))
+
+(define-public vim-paredit
+  ;; The last tagged version is from August 2013.
+  (let ((commit "97d51d099523b37bb35cbcf3564cbfb46e66e4ec")
+        (revision "1"))
+    (package
+      (name "vim-paredit")
+      (version (git-version "0.9.11" revision commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/kovisoft/paredit")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32 "07d5s20r0ssd7rir45vy0fqlci44gha1a81rcilgar227f3nw328"))))
+      (build-system copy-build-system)
+      (arguments
+       '(#:install-plan
+         '(("doc" "share/vim/vimfiles/")
+           ("plugin" "share/vim/vimfiles/"))))
+      (home-page "https://github.com/kovisoft/paredit")
+      (synopsis "Vim plugin for structured editing of Lisp S-expressions")
+      (description
+       "Paredit performs structured editing of Lisp S-expressions in Vim.
+@code{Paredit.vim} is similar to @code{paredit.el} for Emacs.")
+      ;; License listed in plugin/paredit.vim.
+      (license license:public-domain))))
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 5ab95e51cd..77b2997142 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -149,7 +149,7 @@
 (define-public qemu
   (package
     (name "qemu")
-    (version "6.0.0")
+    (version "6.1.0")
     (source
      (origin
        (method url-fetch)
@@ -157,10 +157,8 @@
                            version ".tar.xz"))
        (sha256
         (base32
-         "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"))
+         "15iw7982g6vc4jy1l9kk1z9sl5bm1bdbwr74y7nvwjs1nffhig7f"))
        (patches (search-patches "qemu-CVE-2021-20203.patch"
-                                "qemu-meson-compat.patch"
-                                "qemu-sphinx-compat.patch"
                                 "qemu-build-info-manual.patch"))
        (modules '((guix build utils)))
        (snippet
@@ -218,12 +216,10 @@
              ;; Ensure the executables created by these source files reference
              ;; /bin/sh from the store so they work inside the build container.
              (substitute* '("block/cloop.c" "migration/exec.c"
-                            "net/tap.c" "tests/qtest/libqtest.c")
+                            "net/tap.c" "tests/qtest/libqtest.c"
+                            "tests/qtest/vhost-user-blk-test.c")
                (("/bin/sh") (which "sh")))
-             (substitute* "Makefile"
-               (("SHELL = /usr/bin/env bash -o pipefail")
-                "SHELL = bash -o pipefail"))
-             (substitute* "tests/qemu-iotests/check"
+             (substitute* "tests/qemu-iotests/testenv.py"
                (("#!/usr/bin/env python3")
                 (string-append "#!" (which "python3"))))))
          (add-before 'configure 'fix-optionrom-makefile
@@ -344,6 +340,7 @@ exec smbd $@")))
                      ("pkg-config" ,pkg-config)
                      ("python-wrapper" ,python-wrapper)
                      ("python-sphinx" ,python-sphinx)
+                     ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)
                      ("texinfo" ,texinfo)
                      ;; The following static libraries are required to build
                      ;; the static output of QEMU.
@@ -510,8 +507,6 @@ firmware blobs.  You can
 (define-public ganeti
   (package
     (name "ganeti")
-    ;; Note: we use a pre-release for Python 3 compatibility as well as many
-    ;; other fixes.
     (version "3.0.1")
     (source (origin
               (method git-fetch)
@@ -523,6 +518,7 @@ firmware blobs.  You can
               (file-name (git-file-name name version))
               (patches (search-patches "ganeti-shepherd-support.patch"
                                        "ganeti-shepherd-master-failover.patch"
+                                       "ganeti-sphinx-compat.patch"
                                        "ganeti-haskell-compat.patch"
                                        "ganeti-haskell-pythondir.patch"
                                        "ganeti-disable-version-symlinks.patch"))))
@@ -533,6 +529,9 @@ firmware blobs.  You can
                            (guix build python-build-system))
        #:modules (,@%gnu-build-system-modules
                   ((guix build haskell-build-system) #:prefix haskell:)
+                  (srfi srfi-1)
+                  (srfi srfi-26)
+                  (ice-9 match)
                   (ice-9 rdelim))
 
        ;; The default test target includes a lot of checks that are only really
@@ -716,7 +715,7 @@ firmware blobs.  You can
                     (compdir (string-append out "/etc/bash_completion.d")))
                (mkdir-p compdir)
                (copy-file "doc/examples/bash_completion"
-                             (string-append compdir "/ganeti"))
+                          (string-append compdir "/ganeti"))
                ;; The one file contains completions for many different
                ;; executables.  Create symlinks for found completions.
                (with-directory-excursion compdir
@@ -735,9 +734,9 @@ firmware blobs.  You can
                                       ;; Note that 'burnin' is listed with the
                                       ;; absolute file name, which is why we
                                       ;; run everything through 'basename'.
-                                      (cons (basename (car (reverse (string-split
-                                                                     line #\ ))))
-                                            progs))
+                                      (match (string-split line #\ )
+                                        ((commands ... prog)
+                                         (cons (basename prog) progs))))
                                 (loop (read-line port) progs)))))))))))
          ;; Wrap all executables with GUIX_PYTHONPATH.  We can't borrow
          ;; the phase from python-build-system because we also need to wrap
@@ -756,7 +755,7 @@ firmware blobs.  You can
                             (or (string-contains shebang "/bin/bash")
                                 (string-contains shebang "/bin/sh")))))))
 
-               (define (wrap? file)
+               (define* (wrap? file #:rest _)
                  ;; Do not wrap shell scripts because some are meant to be
                  ;; sourced, which breaks if they are wrapped.  We do wrap
                  ;; the Haskell executables because some call out to Python
@@ -769,9 +768,9 @@ firmware blobs.  You can
                            (wrap-program file
                              `("GUIX_PYTHONPATH" ":" prefix
                                (,(getenv "GUIX_PYTHONPATH")))))
-                         (filter wrap?
-                                 (append (find-files (string-append lib "/ganeti"))
-                                         (find-files sbin))))))))))
+                         (append-map (cut find-files <> wrap?)
+                                     (list (string-append lib "/ganeti")
+                                           sbin)))))))))
     (native-inputs
      `(("haskell" ,ghc)
        ("cabal" ,cabal-install)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 206520440d..507a804ca4 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4537,14 +4537,14 @@ and updated by RFC 2732.")
 (define-public perl-uri-fetch
   (package
     (name "perl-uri-fetch")
-    (version "0.13")
+    (version "0.15")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
                                   "URI-Fetch-" version ".tar.gz"))
               (sha256
                (base32
-                "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
+                "0355rnw3xbgfwy9fgs6zrjmrsychzmwpkc9jcd9mrbkd9kr3k7rp"))))
     (build-system perl-build-system)
     (arguments
      `(#:tests? #f)) ; Tests require internet connection to succeed