summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2022-06-01 12:31:09 +0300
committerEfraim Flashner <efraim@flashner.co.il>2022-06-01 12:42:04 +0300
commit64c043e63a4be97f59fd1906c47973a74eedda67 (patch)
tree37b15dfb4830e4f874edca87b521b6e9cdc3c81b /gnu
parentb1f763de54dc2b8e240d0f01f7948ce76f67243e (diff)
parent75af73e1b7ac58770122d8831faa3a8158638bb0 (diff)
downloadguix-64c043e63a4be97f59fd1906c47973a74eedda67.tar.gz
Merge remote-tracking branch 'origin/master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/image.scm24
-rw-r--r--gnu/local.mk32
-rw-r--r--gnu/packages/ada.scm29
-rw-r--r--gnu/packages/admin.scm58
-rw-r--r--gnu/packages/assembly.scm19
-rw-r--r--gnu/packages/astronomy.scm53
-rw-r--r--gnu/packages/audio.scm168
-rw-r--r--gnu/packages/base.scm67
-rw-r--r--gnu/packages/bioconductor.scm1966
-rw-r--r--gnu/packages/bioinformatics.scm957
-rw-r--r--gnu/packages/bittorrent.scm43
-rw-r--r--gnu/packages/boost.scm7
-rw-r--r--gnu/packages/check.scm315
-rw-r--r--gnu/packages/chemistry.scm92
-rw-r--r--gnu/packages/chromium.scm4
-rw-r--r--gnu/packages/compression.scm12
-rw-r--r--gnu/packages/cpp.scm4
-rw-r--r--gnu/packages/cran.scm850
-rw-r--r--gnu/packages/crates-io.scm142
-rw-r--r--gnu/packages/cross-base.scm3
-rw-r--r--gnu/packages/cups.scm3
-rw-r--r--gnu/packages/databases.scm224
-rw-r--r--gnu/packages/debian.scm151
-rw-r--r--gnu/packages/dico.scm36
-rw-r--r--gnu/packages/diffoscope.scm11
-rw-r--r--gnu/packages/display-managers.scm143
-rw-r--r--gnu/packages/djvu.scm369
-rw-r--r--gnu/packages/education.scm203
-rw-r--r--gnu/packages/emacs-xyz.scm231
-rw-r--r--gnu/packages/embedded.scm30
-rw-r--r--gnu/packages/engineering.scm3
-rw-r--r--gnu/packages/enlightenment.scm31
-rw-r--r--gnu/packages/esolangs.scm50
-rw-r--r--gnu/packages/finance.scm17
-rw-r--r--gnu/packages/fontutils.scm70
-rw-r--r--gnu/packages/freedesktop.scm170
-rw-r--r--gnu/packages/freeipmi.scm6
-rw-r--r--gnu/packages/game-development.scm211
-rw-r--r--gnu/packages/games.scm39
-rw-r--r--gnu/packages/gcc.scm4
-rw-r--r--gnu/packages/gimp.scm208
-rw-r--r--gnu/packages/gl.scm44
-rw-r--r--gnu/packages/glib.scm70
-rw-r--r--gnu/packages/gnome.scm173
-rw-r--r--gnu/packages/gnupg.scm71
-rw-r--r--gnu/packages/gnuzilla.scm1459
-rw-r--r--gnu/packages/graph.scm12
-rw-r--r--gnu/packages/graphics.scm70
-rw-r--r--gnu/packages/graphviz.scm36
-rw-r--r--gnu/packages/gtk.scm228
-rw-r--r--gnu/packages/guile-wm.scm51
-rw-r--r--gnu/packages/guile-xyz.scm91
-rw-r--r--gnu/packages/hardware.scm36
-rw-r--r--gnu/packages/haskell-apps.scm4
-rw-r--r--gnu/packages/image-processing.scm139
-rw-r--r--gnu/packages/image.scm19
-rw-r--r--gnu/packages/iso-codes.scm6
-rw-r--r--gnu/packages/java.scm4
-rw-r--r--gnu/packages/key-mon.scm25
-rw-r--r--gnu/packages/language.scm437
-rw-r--r--gnu/packages/libffi.scm3
-rw-r--r--gnu/packages/libusb.scm6
-rw-r--r--gnu/packages/linux.scm32
-rw-r--r--gnu/packages/lirc.scm15
-rw-r--r--gnu/packages/llvm.scm19
-rw-r--r--gnu/packages/machine-learning.scm82
-rw-r--r--gnu/packages/mail.scm78
-rw-r--r--gnu/packages/maths.scm47
-rw-r--r--gnu/packages/music.scm570
-rw-r--r--gnu/packages/networking.scm6
-rw-r--r--gnu/packages/nss.scm10
-rw-r--r--gnu/packages/nutrition.scm160
-rw-r--r--gnu/packages/ocaml.scm16
-rw-r--r--gnu/packages/ocr.scm17
-rw-r--r--gnu/packages/openbox.scm20
-rw-r--r--gnu/packages/password-utils.scm45
-rw-r--r--gnu/packages/patches/4store-fix-buildsystem.patch56
-rw-r--r--gnu/packages/patches/4store-unset-preprocessor-directive.patch16
-rw-r--r--gnu/packages/patches/breezy-fix-gio.patch338
-rw-r--r--gnu/packages/patches/casync-renameat2-declaration.patch27
-rw-r--r--gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch58
-rw-r--r--gnu/packages/patches/emacs-helpful-fix-docstring-test.patch18
-rw-r--r--gnu/packages/patches/gcc-12-cross-environment-variables.patch54
-rw-r--r--gnu/packages/patches/gourmet-sqlalchemy-compat.patch18
-rw-r--r--gnu/packages/patches/guile-ac-d-bus-fix-tests.patch28
-rw-r--r--gnu/packages/patches/itk-snap-alt-glibc-compat.patch22
-rw-r--r--gnu/packages/patches/mia-fix-boost-headers.patch479
-rw-r--r--gnu/packages/patches/mozjs17-aarch64-support.patch60
-rw-r--r--gnu/packages/patches/mozjs24-aarch64-support.patch21
-rw-r--r--gnu/packages/patches/mozjs38-pkg-config-version.patch24
-rw-r--r--gnu/packages/patches/mozjs38-shell-version.patch67
-rw-r--r--gnu/packages/patches/mozjs38-tracelogger.patch608
-rw-r--r--gnu/packages/patches/mozjs38-version-detection.patch180
-rw-r--r--gnu/packages/patches/mozjs60-riscv64-support.patch122
-rw-r--r--gnu/packages/patches/openbox-python3.patch165
-rw-r--r--gnu/packages/patches/python2-parameterized-docstring-test.patch18
-rw-r--r--gnu/packages/patches/python2-pygobject-2-deprecation.patch39
-rw-r--r--gnu/packages/patches/python2-subprocess32-disable-input-test.patch18
-rw-r--r--gnu/packages/patches/rapicorn-isnan.patch87
-rw-r--r--gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch117
-rw-r--r--gnu/packages/patches/vtk-7-gcc-10-compat.patch14
-rw-r--r--gnu/packages/patches/vtk-7-hdf5-compat.patch38
-rw-r--r--gnu/packages/patches/vtk-7-python-compat.patch16
-rw-r--r--gnu/packages/patches/wicd-bitrate-none-fix.patch24
-rw-r--r--gnu/packages/patches/wicd-get-selected-profile-fix.patch16
-rw-r--r--gnu/packages/patches/wicd-urwid-1.3.patch18
-rw-r--r--gnu/packages/patches/wicd-wpa2-ttls.patch38
-rw-r--r--gnu/packages/patchutils.scm29
-rw-r--r--gnu/packages/pdf.scm83
-rw-r--r--gnu/packages/polkit.scm2
-rw-r--r--gnu/packages/protobuf.scm8
-rw-r--r--gnu/packages/pulseaudio.scm52
-rw-r--r--gnu/packages/python-build.scm33
-rw-r--r--gnu/packages/python-check.scm82
-rw-r--r--gnu/packages/python-compression.scm32
-rw-r--r--gnu/packages/python-crypto.scm119
-rw-r--r--gnu/packages/python-science.scm387
-rw-r--r--gnu/packages/python-web.scm348
-rw-r--r--gnu/packages/python-xyz.scm3117
-rw-r--r--gnu/packages/python.scm280
-rw-r--r--gnu/packages/qt.scm144
-rw-r--r--gnu/packages/radio.scm24
-rw-r--r--gnu/packages/rdf.scm40
-rw-r--r--gnu/packages/rsync.scm4
-rw-r--r--gnu/packages/sagemath.scm6
-rw-r--r--gnu/packages/security-token.scm3
-rw-r--r--gnu/packages/sphinx.scm78
-rw-r--r--gnu/packages/statistics.scm241
-rw-r--r--gnu/packages/sync.scm67
-rw-r--r--gnu/packages/syncthing.scm2
-rw-r--r--gnu/packages/syndication.scm25
-rw-r--r--gnu/packages/terminals.scm6
-rw-r--r--gnu/packages/text-editors.scm36
-rw-r--r--gnu/packages/time.scm75
-rw-r--r--gnu/packages/tor.scm11
-rw-r--r--gnu/packages/version-control.scm109
-rw-r--r--gnu/packages/video.scm124
-rw-r--r--gnu/packages/vim.scm7
-rw-r--r--gnu/packages/virtualization.scm67
-rw-r--r--gnu/packages/web-browsers.scm17
-rw-r--r--gnu/packages/web.scm54
-rw-r--r--gnu/packages/wget.scm95
-rw-r--r--gnu/packages/wicd.scm197
-rw-r--r--gnu/packages/wm.scm37
-rw-r--r--gnu/packages/wxwidgets.scm73
-rw-r--r--gnu/packages/xdisorg.scm7
-rw-r--r--gnu/packages/xml.scm25
-rw-r--r--gnu/services.scm2
-rw-r--r--gnu/services/desktop.scm58
-rw-r--r--gnu/services/herd.scm36
-rw-r--r--gnu/services/networking.scm62
-rw-r--r--gnu/system/image.scm8
-rw-r--r--gnu/system/linux-container.scm3
153 files changed, 7152 insertions, 13123 deletions
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index 3e8b94e2d6..ddfd34c111 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -95,16 +95,18 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
                            (estimate-partition-size root)
                            size)))))))
 
-(define* (make-vfat-image partition target root)
+(define* (make-vfat-image partition target root fs-bits)
   "Handle the creation of VFAT partition images.  See 'make-partition-image'."
   (let ((size (partition-size partition))
-        (label (partition-label partition)))
-    (invoke "fakeroot" "mkdosfs" "-n" label "-C" target
-            "-F" "16" "-S" "1024"
-            (size-in-kib
-             (if (eq? size 'guess)
-                 (estimate-partition-size root)
-                 size)))
+        (label (partition-label partition))
+        (flags (partition-flags partition)))
+    (apply invoke "fakeroot" "mkdosfs" "-n" label "-C" target
+                          "-F" (number->string fs-bits)
+                          (size-in-kib
+                           (if (eq? size 'guess)
+                               (estimate-partition-size root)
+                               size))
+                    (if (member 'esp flags) (list "-S" "1024") '()))
     (for-each (lambda (file)
                 (unless (member file '("." ".."))
                   (invoke "mcopy" "-bsp" "-i" target
@@ -120,8 +122,10 @@ ROOT directory to populate the image."
     (cond
      ((string-prefix? "ext" type)
       (make-ext-image partition target root))
-     ((string=? type "vfat")
-      (make-vfat-image partition target root))
+     ((or (string=? type "vfat") (string=? type "fat16"))
+      (make-vfat-image partition target root 16))
+     ((string=? type "fat32")
+      (make-vfat-image partition target root 32))
      (else
       (raise (condition
               (&message
diff --git a/gnu/local.mk b/gnu/local.mk
index 88ae52cdbf..fe9576d1de 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -612,7 +612,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/web-browsers.scm			\
   %D%/packages/webkit.scm			\
   %D%/packages/wget.scm				\
-  %D%/packages/wicd.scm				\
   %D%/packages/wine.scm				\
   %D%/packages/wireservice.scm				\
   %D%/packages/wm.scm				\
@@ -826,8 +825,6 @@ MODULES_NOT_COMPILED +=				\
 
 patchdir = $(guilemoduledir)/%D%/packages/patches
 dist_patch_DATA =						\
-  %D%/packages/patches/4store-fix-buildsystem.patch		\
-  %D%/packages/patches/4store-unset-preprocessor-directive.patch	\
   %D%/packages/patches/a2ps-CVE-2001-1593.patch	\
   %D%/packages/patches/a2ps-CVE-2014-0466.patch	\
   %D%/packages/patches/a2ps-CVE-2015-8107.patch	\
@@ -917,6 +914,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/bloomberg-bde-cmake-module-path.patch	\
   %D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch	\
   %D%/packages/patches/bpftrace-disable-bfd-disasm.patch	\
+  %D%/packages/patches/breezy-fix-gio.patch			\
   %D%/packages/patches/byobu-writable-status.patch		\
   %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch	\
   %D%/packages/patches/cabal-install-base16-bytestring1.0.patch		\
@@ -926,7 +924,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/calibre-no-updates-dialog.patch		\
   %D%/packages/patches/calibre-remove-test-sqlite.patch		\
   %D%/packages/patches/calibre-remove-test-unrar.patch		\
-  %D%/packages/patches/casync-renameat2-declaration.patch	\
   %D%/packages/patches/catdoc-CVE-2017-11110.patch		\
   %D%/packages/patches/circos-remove-findbin.patch		\
   %D%/packages/patches/cdparanoia-fpic.patch			\
@@ -1023,11 +1020,13 @@ dist_patch_DATA =						\
   %D%/packages/patches/elm-offline-package-registry.patch	\
   %D%/packages/patches/elm-reactor-static-files.patch		\
   %D%/packages/patches/elogind-revert-polkit-detection.patch	\
+  %D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch	\
   %D%/packages/patches/emacs-exec-path.patch			\
   %D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch	\
   %D%/packages/patches/emacs-git-email-missing-parens.patch	\
   %D%/packages/patches/emacs-fix-scheme-indent-function.patch	\
   %D%/packages/patches/emacs-json-reformat-fix-tests.patch	\
+  %D%/packages/patches/emacs-helpful-fix-docstring-test.patch	\
   %D%/packages/patches/emacs-highlight-stages-add-gexp.patch	\
   %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch	\
   %D%/packages/patches/emacs-libgit-use-system-libgit2.patch    \
@@ -1130,6 +1129,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gcc-9-strmov-store-file-names.patch	\
   %D%/packages/patches/gcc-12-strmov-store-file-names.patch	\
   %D%/packages/patches/gcc-10-cross-environment-variables.patch \
+  %D%/packages/patches/gcc-12-cross-environment-variables.patch \
   %D%/packages/patches/gcolor3-update-libportal-usage.patch	\
   %D%/packages/patches/gd-fix-tests-on-i686.patch		\
   %D%/packages/patches/gd-brect-bounds.patch			\
@@ -1212,6 +1212,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
   %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
   %D%/packages/patches/go-skip-gc-test.patch			\
+  %D%/packages/patches/gourmet-sqlalchemy-compat.patch		\
   %D%/packages/patches/gpaste-fix-paths.patch			\
   %D%/packages/patches/gpm-glibc-2.26.patch			\
   %D%/packages/patches/gpodder-disable-updater.patch		\
@@ -1234,6 +1235,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-3.0-relocatable.patch		\
   %D%/packages/patches/guile-linux-syscalls.patch		\
   %D%/packages/patches/guile-3.0-linux-syscalls.patch		\
+  %D%/packages/patches/guile-ac-d-bus-fix-tests.patch		\
   %D%/packages/patches/guile-cross-compilation.patch		\
   %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
   %D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
@@ -1298,6 +1300,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ipxe-reproducible-geniso.patch	        \
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
+  %D%/packages/patches/itk-snap-alt-glibc-compat.patch		\
   %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch	\
   %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch	\
   %D%/packages/patches/jsoncpp-pkg-config-version.patch		\
@@ -1487,6 +1490,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mesa-skip-tests.patch			\
   %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch	\
   %D%/packages/patches/mhash-keygen-test-segfault.patch		\
+  %D%/packages/patches/mia-fix-boost-headers.patch		\
   %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch	\
   %D%/packages/patches/mingw-w64-6.0.0-gcc.patch		\
   %D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch	\
@@ -1503,13 +1507,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/monero-use-system-miniupnpc.patch			\
   %D%/packages/patches/mono-mdoc-timestamping.patch		\
   %D%/packages/patches/mosaicatcher-unbundle-htslib.patch	\
-  %D%/packages/patches/mozjs17-aarch64-support.patch		\
-  %D%/packages/patches/mozjs24-aarch64-support.patch		\
-  %D%/packages/patches/mozjs38-pkg-config-version.patch		\
-  %D%/packages/patches/mozjs38-shell-version.patch		\
-  %D%/packages/patches/mozjs38-tracelogger.patch		\
-  %D%/packages/patches/mozjs38-version-detection.patch		\
-  %D%/packages/patches/mozjs60-riscv64-support.patch		\
   %D%/packages/patches/mrrescue-support-love-11.patch		\
   %D%/packages/patches/mtools-mformat-uninitialized.patch	\
   %D%/packages/patches/mumps-build-parallelism.patch		\
@@ -1564,6 +1561,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/onnx-skip-model-downloads.patch		\
   %D%/packages/patches/openboardview-use-system-imgui.patch	\
   %D%/packages/patches/openboardview-use-system-utf8.patch	\
+  %D%/packages/patches/openbox-python3.patch			\
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch		\
   %D%/packages/patches/openfoam-4.1-cleanup.patch			\
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch	\
@@ -1703,13 +1701,11 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-mox3-python3.6-compat.patch	\
   %D%/packages/patches/python-typing-inspect-fix.patch		\
   %D%/packages/patches/python-packaging-test-arch.patch		\
-  %D%/packages/patches/python2-parameterized-docstring-test.patch	\
   %D%/packages/patches/python-paste-remove-timing-test.patch	\
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch	\
   %D%/packages/patches/python-pycrypto-time-clock.patch		\
   %D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
   %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
-  %D%/packages/patches/python2-pygobject-2-deprecation.patch	\
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
   %D%/packages/patches/python-pytorch-runpath.patch		\
   %D%/packages/patches/python-pytorch-system-libraries.patch	\
@@ -1719,7 +1715,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
   %D%/packages/patches/python-seaborn-kde-test.patch		\
   %D%/packages/patches/python-seaborn-2690.patch		\
-  %D%/packages/patches/python2-subprocess32-disable-input-test.patch	\
   %D%/packages/patches/python-unittest2-python3-compat.patch	\
   %D%/packages/patches/python-unittest2-remove-argparse.patch	\
   %D%/packages/patches/python-versioneer-guix-support.patch	\
@@ -1747,7 +1742,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ragel-char-signedness.patch		\
   %D%/packages/patches/randomjungle-disable-static-build.patch	\
   %D%/packages/patches/range-v3-build-with-gcc10.patch	\
-  %D%/packages/patches/rapicorn-isnan.patch			\
   %D%/packages/patches/rapidjson-gcc-compat.patch		\
   %D%/packages/patches/raptor2-heap-overflow.patch		\
   %D%/packages/patches/ratpoints-sturm_and_rp_private.patch	\
@@ -1931,18 +1925,18 @@ dist_patch_DATA =						\
   %D%/packages/patches/vinagre-newer-freerdp.patch             \
   %D%/packages/patches/vinagre-newer-rdp-parameters.patch      \
   %D%/packages/patches/virglrenderer-CVE-2017-6386.patch 	\
+  %D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch	\
   %D%/packages/patches/vsearch-unbundle-cityhash.patch		\
   %D%/packages/patches/vte-CVE-2012-2738-pt1.patch			\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch	\
+  %D%/packages/patches/vtk-7-gcc-10-compat.patch		\
+  %D%/packages/patches/vtk-7-hdf5-compat.patch			\
+  %D%/packages/patches/vtk-7-python-compat.patch		\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
-  %D%/packages/patches/wicd-bitrate-none-fix.patch		\
-  %D%/packages/patches/wicd-get-selected-profile-fix.patch	\
-  %D%/packages/patches/wicd-urwid-1.3.patch			\
-  %D%/packages/patches/wicd-wpa2-ttls.patch			\
   %D%/packages/patches/widelands-add-missing-map-include.patch	\
   %D%/packages/patches/widelands-system-wide_minizip.patch	\
   %D%/packages/patches/wmctrl-64-fix.patch			\
diff --git a/gnu/packages/ada.scm b/gnu/packages/ada.scm
index a3bba245ec..ea3e9c365b 100644
--- a/gnu/packages/ada.scm
+++ b/gnu/packages/ada.scm
@@ -149,32 +149,3 @@ Ada system.  Being an interpreter, it does not implement most representation
 clauses, and thus does not support systems programming close to the machine
 level.")
     (license license:gpl2+)))
-
-(define-public python2-langkit
-  (let ((commit "fe0bc8bf60dbd2937759810df76ac420d99fc15f")
-        (revision "0"))
-    (package
-      (name "python2-langkit")
-      (version (git-version "0.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/AdaCore/langkit")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "1abqgw2p8pb1pm54my5kkbbixfhc6l0bwajdv1xlzyrh31xki3wx"))
-                (file-name (string-append name "-" version "-checkout"))))
-      (build-system python-build-system)
-      (propagated-inputs
-       (list python2-docutils python2-enum34 python2-funcy python2-mako))
-      (arguments
-       `(#:python ,python-2
-         #:tests? #f))           ; Tests would requite gprbuild (Ada).
-      (synopsis "Semantic analysis tool generator in Python")
-      (description "@code{Langkit} is a tool whose purpose is to make it easy
-to create syntactic and semantic analysis engines.  Write a language
-specification in our Python DSL and Langkit will generate for you an
-Ada library with bindings for the C and Python programming languages.")
-      (home-page "https://github.com/AdaCore/langkit/")
-      (license license:gpl3+))))   ; and gcc runtime library exception
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index d22753c64f..2d817fc00f 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -2567,42 +2567,6 @@ degradation and failure.")
 specified directories.")
     (license license:expat)))
 
-(define-public graphios
-  (package
-   (name "graphios")
-   (version "2.0.3")
-   (source
-    (origin
-      (method url-fetch)
-      (uri (pypi-uri "graphios" version))
-      (sha256
-       (base32
-        "1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
-   (build-system python-build-system)
-   (arguments
-    ;; Be warned: Building with Python 3 succeeds, but the build process
-    ;; throws a syntax error that is ignored.
-    `(#:python ,python-2
-      #:phases
-      (modify-phases %standard-phases
-        (add-before 'build 'fix-setup.py
-          (lambda* (#:key outputs #:allow-other-keys)
-            ;; Fix hardcoded, unprefixed file names.
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* '("setup.py")
-                (("/etc") (string-append out "/etc"))
-                (("/usr") out)
-                (("distro_ver = .*") "distro_ver = ''"))
-              #t))))))
-   (home-page "https://github.com/shawn-sterling/graphios")
-   (synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
-   (description
-    "Graphios is a script to emit nagios perfdata to various upstream metrics
-processing and time-series systems.  It's currently compatible with Graphite,
-Statsd, Librato and InfluxDB.  Graphios can emit Nagios metrics to any number
-of supported upstream metrics systems simultaneously.")
-   (license license:gpl2+)))
-
 (define-public ansible-core
   (package
     (name "ansible-core")
@@ -3191,10 +3155,12 @@ rules is done with the @code{auditctl} utility.")
                    (,(python-path ndiff)))))))
          ;; These are the tests that do not require network access.
          (replace 'check
-           (lambda _ (invoke "make"
-                             "check-nse"
-                             "check-ndiff"
-                             "check-dns"))))
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (invoke "make"
+                       "check-nse"
+                       "check-ndiff"
+                       "check-dns")))))
        ;; Nmap can't cope with out-of-source building.
        #:out-of-source? #f))
     (home-page "https://nmap.org/")
@@ -4541,7 +4507,7 @@ supplied by the user when logging in.")
 (define-public jc
   (package
     (name "jc")
-    (version "1.13.4")
+    (version "1.19.0")
     (source
      (origin
        ;; The PyPI tarball lacks the test suite.
@@ -4551,8 +4517,16 @@ supplied by the user when logging in.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
+        (base32 "021zk0y8kb6v3qf3hwfg8qjzzmrca039nz3fjywiy2njmbhr8hyi"))))
     (build-system python-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; XXX Guix's America/Los_Angeles time zone is somehow broken.
+               (add-before 'check 'hack-time-zone
+                 (lambda _
+                   (substitute* (find-files "tests" "^test.*\\.py$")
+                     (("America/Los_Angeles") "PST8PDT")))))))
     (propagated-inputs
      (list python-pygments python-ruamel.yaml python-xmltodict))
     (home-page "https://github.com/kellyjonbrazil/jc")
diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm
index b2830716e1..ca50b00a06 100644
--- a/gnu/packages/assembly.scm
+++ b/gnu/packages/assembly.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -342,7 +343,7 @@ package for the Game Boy and Game Boy Color.  It consists of:
 (define-public wla-dx
   (package
     (name "wla-dx")
-    (version "9.12")
+    (version "10.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -351,12 +352,20 @@ package for the Game Boy and Game Boy Color.  It consists of:
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1wlbqv2rgk9q6m9an1mi0i29250zl8lw7zipki2bbi9mczpyczli"))))
+                "1nh2k2xn5fj389gq68f3fxgrxakgn8c6dw2ffqay86s3706hac9w"))))
     (build-system cmake-build-system)
-    (native-inputs
-     `(("sphinx" ,python-sphinx)))      ; to generate man pages
+    (native-inputs (list python-sphinx)) ; to generate man pages
     (arguments
-     `(#:tests? #f))                    ; no tests
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'copy-tests-to-build-directory
+           (lambda _
+             (copy-recursively "../source/tests" "tests")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (let ((sh (which "sh")))
+               (when tests?
+                 (invoke sh "../source/run_tests.sh"))))))))
     (home-page "https://github.com/vhelin/wla-dx")
     (synopsis "Assemblers for various processors")
     (description "WLA DX is a set of tools to assemble assembly files to
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index c209b1538f..93c45d5780 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
-;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
@@ -39,6 +39,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
@@ -71,6 +72,41 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
+(define-public calceph
+  (package
+    (name "calceph")
+    (version  "3.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-"
+             version ".tar.gz"))
+       (sha256
+        (base32 "078wn773pwf4pg9m0h0l00g4aq744pq1rb6kz6plgdpzp3hhpk1k"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list gfortran))
+    (home-page "https://www.imcce.fr/inpop/calceph")
+    (properties `((release-monitoring-url . ,home-page)))
+    (synopsis "Astronomical library to access the binary planetary ephemeris files")
+    (description
+     "The CALCEPH Library is designed to access the binary planetary ephemeris files,
+such INPOPxx and JPL DExxx ephemeris files, (called @code{original JPL binary} or
+@code{INPOP 2.0 or 3.0 binary} ephemeris files in the next sections) and the SPICE
+kernel files (called @code{SPICE} ephemeris files in the next sections).  At the
+moment, supported SPICE files are:
+
+@itemize
+@item text Planetary Constants Kernel (KPL/PCK) files;
+@item binary PCK (DAF/PCK) files;
+@item binary SPK (DAF/SPK) files containing segments of type 1, 2, 3, 5, 8, 9,
+12, 13, 17, 18, 19, 20, 21, 102, 103 and 120;
+@item meta kernel (KPL/MK) files;
+@item frame kernel (KPL/FK) files (only basic support).
+@end itemize\n")
+    (license license:cecill)))
+
 (define-public cfitsio
   (package
     (name "cfitsio")
@@ -107,21 +143,20 @@ in FITS files.")
 (define-public python-fitsio
   (package
     (name "python-fitsio")
-    (version "1.1.5")
+    (version "1.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "fitsio" version))
        (sha256
-        (base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))
+        (base32 "0q8siijys9kmjnqvyipjgh6hkhf4fwvr1swhsf4if211i9b0m1xy"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove the bundled cfitsio
         `(begin
            (delete-file-recursively "cfitsio3490")
            (substitute* "MANIFEST.in"
-             (("recursive-include cfitsio3490.*$\n") ""))
-           #t))))
+             (("recursive-include cfitsio3490.*$\n") ""))))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -748,13 +783,13 @@ astronomy and astrophysics.")
 (define-public python-astroquery
   (package
     (name "python-astroquery")
-    (version "0.4.5")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "astroquery" version))
        (sha256
-        (base32 "06xy0qzqmps6z5vwfkh5fkhr151p7g94r2j0mvp1rc8zns22y010"))))
+        (base32 "1vhkzsqlgn3ji5by2rdf2gwklhbyzvpzb1iglalhqjkkrdaaaz1h"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -1366,13 +1401,13 @@ Moon position, etc.")
 (define-public python-jplephem
   (package
     (name "python-jplephem")
-    (version "2.16")
+    (version "2.17")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "jplephem" version))
        (sha256
-        (base32 "1xvivnsywjaf5lxn3kyg2jhhq393gcwkjrl634m8dn52ypidrcdb"))))
+        (base32 "09xaibxnwbzzs3x9g3ibqa2la17z3r6in93321glh02dbibfbip1"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 3639fe4b1a..8ec78f665c 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 okapi <okapi@firemail.cc>
-;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
@@ -617,8 +617,7 @@ Filter) modules follow the convention of 1V / Octave.")
         "--enable-jack"
         "--enable-sndfile"
         "--enable-samplerate"
-        "--enable-avcodec")
-       #:python ,python-2))
+        "--enable-avcodec")))
     (inputs
      (list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec
     (native-inputs
@@ -2240,23 +2239,23 @@ synchronous execution of all clients, and low latency operation.")
 ;; jack-2 implement the same API.  JACK2 is provided primarily as a client
 ;; program for users who might benefit from the D-BUS features.
 (define-public jack-2
-  (package (inherit jack-1)
+  (package
+    (inherit jack-1)
     (name "jack2")
-    (version "1.9.14")
+    (version "1.9.21")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://github.com/jackaudio/jack2/releases/"
-                                 "download/v" version "/jack2-"
-                                 version ".tar.gz"))
-             (file-name (string-append name "-" version ".tar.gz"))
-             (sha256
-              (base32
-               "0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackaudio/jack2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0sbrffmdbajvrk7iqvsvrnwnpvmicvbjyq3f52r6ashdsznsz03b"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f  ; no check target
-       #:configure-flags '("--dbus"
-                           "--alsa")
+     `(#:tests? #f                      ; no check target
+       #:configure-flags '("--dbus" "--alsa")
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-linkflags
@@ -2270,16 +2269,13 @@ synchronous execution of all clients, and low latency operation.")
                ((".*CFLAGS.*-Wall.*" m)
                 (string-append m
                                "    conf.env.append_unique('LINKFLAGS',"
-                               "'-Wl,-rpath=" %output "/lib')\n")))
-             #t))
+                               "'-Wl,-rpath=" %output "/lib')\n")))))
          (add-after 'install 'wrap-python-scripts
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure 'jack_control' runs with the correct PYTHONPATH.
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (getenv "GUIX_PYTHONPATH")))
-               (wrap-program (string-append out "/bin/jack_control")
-                 `("GUIX_PYTHONPATH" ":" prefix (,path))))
-             #t)))))
+             (wrap-program (search-input-file outputs "bin/jack_control")
+               `("GUIX_PYTHONPATH" ":"
+                 prefix (,(getenv "GUIX_PYTHONPATH")))))))))
     (inputs
      (list alsa-lib
            dbus
@@ -2306,17 +2302,15 @@ synchronous execution of all clients, and low latency operation.")
                 "05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
     (build-system waf-build-system)
     (arguments
-     `(#:tests? #f                      ; no check target
-       #:python ,python-2))
+     `(#:tests? #f))                    ; no check target
     (inputs
-     `(("lv2" ,lv2)
-       ("lilv" ,lilv)
-       ("suil" ,suil)
-       ("gtk2" ,gtk+-2)
-       ("gtk3" ,gtk+)
-       ("gtkmm" ,gtkmm-2)
-       ("qtbase" ,qtbase-5)
-       ("jack" ,jack-1)))
+     (list lv2
+           lilv
+           suil
+           gtk
+           gtkmm
+           qtbase-5
+           jack-1))
     (native-inputs
      (list pkg-config))
     (home-page "https://drobilla.net/software/jalv/")
@@ -2568,9 +2562,6 @@ compensation, (de)interleaving, and byte-swapping
 cross-platform audio input/output stream library.")
     (license license:expat)))
 
-(define-public python2-pyaudio
-  (package-with-python2 python-pyaudio))
-
 (define-public python-pyliblo
   (package
     (name "python-pyliblo")
@@ -2597,9 +2588,6 @@ to send and receive OSC messages using a nice and simple Python API.  Also
 included are the command line utilities @code{send_osc} and @code{dump_osc}.")
     (license license:lgpl2.1+)))
 
-(define-public python2-pyliblo
-  (package-with-python2 python-pyliblo))
-
 (define-public python-soundfile
   (package
     (name "python-soundfile")
@@ -2807,37 +2795,33 @@ software.")
     (description "An LV2 port of the mda EPiano VSTi.")))
 
 (define-public lvtk
-  (package
-    (name "lvtk")
-    (version "1.2.0")
-    (source (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/lvtk/lvtk")
-                   (commit version)))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "1b01zvzl70ana6l1kn8fgyr7msnn3c7x61cgw7fdpp50322352p8"))))
-    (build-system waf-build-system)
-    (arguments
-     `(#:tests? #f  ; no check target
-       #:python ,python-2
-       #:configure-flags
-       (list (string-append "--boost-includes="
-                            (assoc-ref %build-inputs "boost")
-                            "/include"))))
-    (inputs
-     (list boost gtkmm-2 lv2))
-    (native-inputs
-     (list pkg-config))
-    (home-page "https://github.com/lvtk/lvtk")
-    (synopsis "C++ libraries for LV2 plugins")
-    (description
-     "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
+  ;; Use the latest commit, as the latest release was made in 2014 and depends
+  ;; on Python 2.
+  (let ((commit "a73feabe772f9650aa071e6a4df660e549ab7c48")
+        (revision "0"))
+    (package
+      (name "lvtk")
+      (version (git-version "1.2.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/lvtk/lvtk")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0scmv8b4jlm88d21dqqchjy98wb93zclc9x960h213gdi871vsaj"))))
+      (build-system waf-build-system)
+      (arguments (list #:tests? #f))    ;no check target
+      (inputs (list boost gtkmm lv2))
+      (native-inputs (list pkg-config))
+      (home-page "https://github.com/lvtk/lvtk")
+      (synopsis "C++ libraries for LV2 plugins")
+      (description
+       "The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
 extensions into easy to use C++ classes.  It is the successor of
 lv2-c++-tools.")
-    (license license:gpl3+)))
+      (license license:isc))))
 
 (define-public openal
   (package
@@ -3163,49 +3147,6 @@ using Guix System.")
     ;; GNU Library (not Lesser) General Public License.
     (license license:lgpl2.0+)))
 
-(define-public raul
-  (package
-    (name "raul")
-    (version "0.8.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://download.drobilla.net/raul-"
-                                  version ".tar.bz2"))
-              (sha256
-               (base32
-                "09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
-    (build-system waf-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f)) ; no check target
-    (inputs
-     (list glib boost))
-    (native-inputs
-     (list pkg-config))
-    (home-page "https://drobilla.net/software/raul/")
-    (synopsis "Real-time audio utility library")
-    (description
-     "Raul (Real-time Audio Utility Library) is a C++ utility library primarily
-aimed at audio/musical applications.")
-    (license license:gpl2+)))
-
-(define-public raul-devel
-  (let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
-        (revision "1"))
-    (package (inherit raul)
-      (name "raul")
-      (version (string-append "0.8.9-" revision "."
-                              (string-take commit 9)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://git.drobilla.net/raul.git")
-                      (commit commit)))
-                (file-name (string-append name "-" version "-checkout"))
-                (sha256
-                 (base32
-                  "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
-
 (define-public resample
   (package
     (name "resample")
@@ -4347,9 +4288,6 @@ It is currently fairly complete for PCM devices, and has some support for
 mixers.")
     (license license:psfl)))
 
-(define-public python2-pyalsaaudio
-  (package-with-python2 python-pyalsaaudio))
-
 (define-public ldacbt
   (package
     (name "ldacbt")
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 5d9db0746d..4bdc3e7792 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -85,14 +85,14 @@
 (define-public hello
   (package
     (name "hello")
-    (version "2.12")
+    (version "2.12.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnu/hello/hello-" version
                                   ".tar.gz"))
               (sha256
                (base32
-                "1ayhp9v4m4rdhjmnl2bq3cibrbqqkgjbl3s7yk2nhlh8vj3ay16g"))))
+                "086vqwk2wl8zfs47sq2xpjc9k066ilmb8z6dn0q6ymwjzlm196cd"))))
     (build-system gnu-build-system)
     (synopsis "Hello, GNU world: An example GNU package")
     (description
@@ -930,6 +930,60 @@ with the Linux kernel.")
 
 ;; Below are old libc versions, which we use mostly to build locale data in
 ;; the old format (which the new libc cannot cope with.)
+(define-public glibc-2.32
+  (package
+    (inherit glibc)
+    (version "2.32")
+    (source (origin
+              (inherit (package-source glibc))
+              (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn"))
+              (patches (search-patches
+                        "glibc-skip-c++.patch"
+                        "glibc-ldd-powerpc.patch"
+                        "glibc-ldd-x86_64.patch"
+                        "glibc-dl-cache.patch"
+                        "glibc-hidden-visibility-ldconfig.patch"
+                        "glibc-versioned-locpath.patch"
+                        "glibc-allow-kernel-2.6.32.patch"
+                        "glibc-reinstate-prlimit64-fallback.patch"
+                        "glibc-supported-locales.patch"
+                        "glibc-hurd-clock_t_centiseconds.patch"
+                        "glibc-2.31-hurd-clock_gettime_monotonic.patch"
+                        "glibc-hurd-signal-sa-siginfo.patch"
+                        "glibc-hurd-mach-print.patch"
+                        "glibc-hurd-gettyent.patch"))
+              #;
+              (patches (search-patches "glibc-ldd-x86_64.patch"
+                                       "glibc-hidden-visibility-ldconfig.patch"
+                                       "glibc-versioned-locpath.patch"
+                                       "glibc-allow-kernel-2.6.32.patch"
+                                       "glibc-reinstate-prlimit64-fallback.patch"
+                                       "glibc-supported-locales.patch"
+                                       "glibc-hurd-clock_t_centiseconds.patch"
+                                       "glibc-hurd-clock_gettime_monotonic.patch"
+                                       "glibc-hurd-signal-sa-siginfo.patch"))))
+
+    (arguments
+     (substitute-keyword-arguments (package-arguments glibc)
+       ((#:make-flags flags '())
+        ;; Arrange so that /etc/rpc & co. go to $out/etc.
+        `(list (string-append "sysconfdir="
+                              (assoc-ref %outputs "out")
+                              "/etc")))
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'configure 'set-etc-rpc-installation-directory
+             (lambda* (#:key outputs #:allow-other-keys)
+               ;; Install the rpc data base file under `$out/etc/rpc'.
+               (let ((out (assoc-ref outputs "out")))
+                 (substitute* "sunrpc/Makefile"
+                   (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
+                    (string-append out "/etc/rpc" suffix "\n"))
+                   (("^install-others =.*$")
+                    (string-append "install-others = " out "/etc/rpc\n"))))))))))))
 
 (define-public glibc-2.31
   (package
@@ -1175,6 +1229,15 @@ test environments.")
    (make-glibc-utf8-locales glibc)))
 
 ;; Packages provided to ease use of binaries linked against the previous libc.
+(define-public glibc-locales-2.32
+  (package (inherit (make-glibc-locales glibc-2.32))
+           (name "glibc-locales-2.32")))
+(define-public glibc-locales-2.31
+  (package (inherit (make-glibc-locales glibc-2.31))
+           (name "glibc-locales-2.31")))
+(define-public glibc-locales-2.30
+  (package (inherit (make-glibc-locales glibc-2.30))
+           (name "glibc-locales-2.30")))
 (define-public glibc-locales-2.29
   (package (inherit (make-glibc-locales glibc-2.29))
            (name "glibc-locales-2.29")))
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 4baa80dcb1..176f7ecc6d 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -358,14 +358,14 @@ provided by NCBI (GRCh38, 2013-12-17) and stored in Biostrings objects.")
 (define-public r-bsgenome-hsapiens-ucsc-hg19-masked
   (package
     (name "r-bsgenome-hsapiens-ucsc-hg19-masked")
-    (version "1.3.99")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "BSgenome.Hsapiens.UCSC.hg19.masked"
-                                     version 'annotation))
-              (sha256
-               (base32
-                "0452pyah0kv1vsrsjbrqw4k2rm8lc2vc771dzib45gnnfz86qxrr"))))
+    (version "1.3.993")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "BSgenome.Hsapiens.UCSC.hg19.masked"
+                              version 'annotation))
+       (sha256
+        (base32 "19533ihgad67bzhavycv6z708012ylz9cw1qdfmk2b7ikf3kiaz9"))))
     (properties
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19.masked")))
     (build-system r-build-system)
@@ -696,14 +696,14 @@ annotations for the genome of the model mouse Mus musculus.")
 (define-public r-bsgenome-hsapiens-ucsc-hg19
   (package
     (name "r-bsgenome-hsapiens-ucsc-hg19")
-    (version "1.4.0")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome.Hsapiens.UCSC.hg19"
                                      version 'annotation))
               (sha256
                (base32
-                "1y0nqpk8cw5a34sd9hmin3z4v7iqm6hf6l22cl81vlbxqbjibxc8"))))
+                "06lx7q7i52lg3vkjkqy492z9ianzgi4nhs9m1jrxjjb4hgbnbyjv"))))
     (properties
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19")))
     (build-system r-build-system)
@@ -720,14 +720,13 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.")
 (define-public r-bsgenome-hsapiens-ucsc-hg38
   (package
     (name "r-bsgenome-hsapiens-ucsc-hg38")
-    (version "1.4.1")
+    (version "1.4.4")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome.Hsapiens.UCSC.hg38"
                                      version 'annotation))
               (sha256
-               (base32
-                "1ql08pvi4vv0ynvg4qs9kysw1c7s3crkgin6zxvgzqk6fray9mvi"))))
+               (base32 "03xmh6q99nqjxz29m6j0ymxlk22jq0nlvpf4a2yhg3hgnxqkakh2"))))
     (properties
      `((upstream-name . "BSgenome.Hsapiens.UCSC.hg38")))
     (build-system r-build-system)
@@ -892,19 +891,18 @@ track.  The database is exposed as a @code{TxDb} object.")
 (define-public r-txdb-hsapiens-ucsc-hg38-knowngene
   (package
     (name "r-txdb-hsapiens-ucsc-hg38-knowngene")
-    (version "3.4.6")
+    (version "3.15.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "TxDb.Hsapiens.UCSC.hg38.knownGene"
                                      version 'annotation))
               (sha256
-               (base32
-                "12j7rri9r129v9w1yiqadg952dx462dh092sxif3r5kk8l7bxkn9"))))
+               (base32 "1y9fqhkk5wgny43bxc0j82afy49vz34rblcmcfmwavngdkpnj879"))))
     (properties
      `((upstream-name . "TxDb.Hsapiens.UCSC.hg38.knownGene")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-genomicfeatures))
+     (list r-annotationdbi r-genomicfeatures))
     (home-page
      "https://bioconductor.org/packages/TxDb.Hsapiens.UCSC.hg38.knownGene/")
     (synopsis "Annotation package for human genome in TxDb format")
@@ -1081,14 +1079,13 @@ data (chip hgu133plus2) assembled using data from public repositories.")
 (define-public r-pfam-db
   (package
     (name "r-pfam-db")
-    (version "3.8.2")
+    (version "3.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "PFAM.db" version 'annotation))
        (sha256
-        (base32
-         "0rn1arzzcniy3yyc4yc44vn40g0cqss37dhwnvsgxpfayqq1k59s"))))
+        (base32 "03vjfb9vx1gxrw1jkq6y4i46qhjj9z2mkdiflglbd6kpfrgnl0z7"))))
     (properties `((upstream-name . "PFAM.db")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1169,13 +1166,12 @@ All datasets are restricted to protein coding genes.")
 (define-public r-adductdata
   (package
     (name "r-adductdata")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "adductData" version 'experiment))
               (sha256
-               (base32
-                "0bp74p06gskwn2xl1srpnmsq27ajsrlynkzw6fcmvwwjcrzljmnj"))))
+               (base32 "02r7p1645vhhf7wn5x0aklmf7l97h6fjb8v9mldim4waccmpyg48"))))
     (properties `((upstream-name . "adductData")))
     (build-system r-build-system)
     (propagated-inputs (list r-annotationhub r-experimenthub))
@@ -1191,29 +1187,28 @@ albumin} (HSA).")
 (define-public r-aneufinderdata
   (package
    (name "r-aneufinderdata")
-   (version "1.18.0")
+   (version "1.24.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "AneuFinderData" version 'experiment))
             (sha256
-             (base32
-              "02vb3kmza5hv8bc424fdmfif608xvpdb759w8882kac8izpv29ks"))))
+             (base32 "0cncb8km0sc2xh95rgnnm38kys5ml0n8gh8cl6x7ls1xh9sm83f7"))))
    (build-system r-build-system)
    (home-page "https://bioconductor.org/packages/AneuFinderData/")
    (synopsis "Data package for @code{AneuFinder}")
-   (description "This package contains data used by @code{AneuFinder}.")
+   (description "This package contains whole-genome single cell sequencing data for
+demonstration purposes in the @code{AneuFinder} package.")
    (license license:artistic2.0)))
 
 (define-public r-arrmdata
   (package
     (name "r-arrmdata")
-    (version "1.18.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ARRmData" version 'experiment))
               (sha256
-               (base32
-                "0r1y3zn7ly4k3ngx55vfavn9s6aidbddlv2fbmj7hj3hvpslmyly"))))
+               (base32 "1cjzr58426s9z2bwjz3wzlkh52fv0q85cw4gbjnhwakh9sr3dd5p"))))
     (properties
      `((upstream-name . "ARRmData")))
     (build-system r-build-system)
@@ -1227,14 +1222,13 @@ from Illumina 450k methylation arrays.")
 (define-public r-biscuiteerdata
   (package
     (name "r-biscuiteerdata")
-    (version "1.6.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biscuiteerData" version 'experiment))
        (sha256
-        (base32
-         "1d7zibjf0qccmdnzdxh7wy1h943yhnbf8zdix72486pvhzm124zj"))))
+        (base32 "0nda6b8mkv93s513y0xfgxvi7zn8v07jx323ii709rknlncm6qqw"))))
     (properties
      `((upstream-name . "biscuiteerData")))
     (build-system r-build-system)
@@ -1251,13 +1245,13 @@ biscuiteer.")
 (define-public r-celldex
   (package
     (name "r-celldex")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "celldex" version 'experiment))
        (sha256
-        (base32 "04w60fx3s3wlirmr65nsz6d7ig48j9fzimdr8kbdqv1g80ivdcq1"))))
+        (base32 "1fjldmhb9yg6yr3aq5ldvc8xwqw71ix4cdlr53xxckgwljjq7x10"))))
     (properties `((upstream-name . "celldex")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1280,14 +1274,13 @@ single-cell data or deconvolution of bulk RNA-seq.")
 (define-public r-chromstardata
   (package
     (name "r-chromstardata")
-    (version "1.16.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromstaRData" version 'experiment))
        (sha256
-        (base32
-         "0ph80d53598635bb8g61acg5rqwnj8644a0gh297r4hgbvwlflab"))))
+        (base32 "1ajwnkibpi01c93nrplxhy6grw8jj5219g4pii4rkan4k5815kv1"))))
     (properties `((upstream-name . "chromstaRData")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/chromstaRData/")
@@ -1300,14 +1293,13 @@ chromstaR package.")
 (define-public r-copyhelper
   (package
     (name "r-copyhelper")
-    (version "1.6.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CopyhelpeR" version 'experiment))
        (sha256
-        (base32
-         "0x7cyynjmxls9as2gg0iyp9x5fpalxmdjq914ss7i84i9zyk5bhq"))))
+        (base32 "0klrnxck0q14birnpwzkiwmj77hwdn6gazvdg0lqn9y6j5mbkyx1"))))
     (properties `((upstream-name . "CopyhelpeR")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/CopyhelpeR/")
@@ -1324,14 +1316,13 @@ GenomicRanges Bioconductor package.")
 (define-public r-genelendatabase
   (package
     (name "r-genelendatabase")
-    (version "1.18.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geneLenDataBase" version 'experiment))
        (sha256
-        (base32
-         "03gm4pvsfascx7kjg0jycpf4f572mja68wwmwigs390vbmawyb4a"))))
+        (base32 "0p4rmd3qszsnyn47mfbk96zfa0bhpyyvsh4ma1ligjrsnmkicsaz"))))
     (properties
      `((upstream-name . "geneLenDataBase")))
     (build-system r-build-system)
@@ -1347,13 +1338,13 @@ genomes and gene ID formats, largely based on the UCSC table browser.")
 (define-public r-genomationdata
   (package
     (name "r-genomationdata")
-    (version "1.22.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "genomationData" version 'experiment))
-              (sha256
-               (base32
-                "0igjsvfnws3498j65ifniw0kbxfqpfr59rcjddqvq4zsj453fx1g"))))
+    (version "1.28.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "genomationData" version 'experiment))
+       (sha256
+        (base32 "0ckdgmarndpz6r0y9sd4nmypzjgivj32w2890yl15xmxkx4397fh"))))
     (properties
      `((upstream-name . "genomationData")))
     (build-system r-build-system)
@@ -1370,19 +1361,42 @@ genomation package.  Included are Chip Seq, Methylation and Cage data,
 downloaded from Encode.")
     (license license:gpl3+)))
 
+(define-public r-msdata
+  (package
+    (name "r-msdata")
+    (version "0.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "msdata" version 'experiment))
+       (sha256
+        (base32 "0nqb7d7fa9l15bxy3s9wmy2h79jb6ldwww0hzk5mifabacmzx691"))))
+    (properties `((upstream-name . "msdata")))
+    (build-system r-build-system)
+    (home-page "https://bioconductor.org/packages/msdata")
+    (synopsis "Various Mass Spectrometry raw data example files")
+    (description
+     "This package provides Ion Trap positive ionization mode data in mzML file
+format.  It includes a subset from 500-850 m/z and 1190-1310 seconds,
+including MS2 and MS3, intensity threshold 100.000; extracts from FTICR Apex
+III, m/z 400-450; a subset of UPLC - Bruker micrOTOFq data, both mzML and mz5;
+LC-MSMS and MRM files from proteomics experiments; and PSI mzIdentML example
+files for various search engines.")
+    (license license:gpl2+)))
+
 (define-public r-pasilla
   (package
     (name "r-pasilla")
-    (version "1.14.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "pasilla" version 'experiment))
-              (sha256
-               (base32
-                "0h124i2fb2lbj2k48zzf1n7ldqa471bs26fbd9vw50299aqx28x0"))))
+    (version "1.24.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "pasilla" version 'experiment))
+       (sha256
+        (base32 "1vsxh7mv2krkbdqs5gsgjsxarjbll0bpyk94syrwh56z67n7jyib"))))
     (build-system r-build-system)
-    (propagated-inputs
-     (list r-biocstyle r-dexseq r-knitr r-rmarkdown))
+    (propagated-inputs (list r-dexseq))
+    (native-inputs (list r-knitr))
     (home-page "https://www.bioconductor.org/packages/pasilla/")
     (synopsis "Data package with per-exon and per-gene read counts")
     (description "This package provides per-exon and per-gene read counts
@@ -1394,13 +1408,13 @@ by Brooks et al., Genome Research 2011.")
 (define-public r-hsmmsinglecell
   (package
     (name "r-hsmmsinglecell")
-    (version "1.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "HSMMSingleCell" version 'experiment))
-              (sha256
-               (base32
-                "1vxnr8gr6md85g39csy7g2sqqajiqgyvznys2qa9yixd2b01yph9"))))
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "HSMMSingleCell" version 'experiment))
+       (sha256
+        (base32 "12whx0pl9461xbak5r9zi6ggx5is8sk6mgrbjwlmx3mbr9am116v"))))
     (properties
      `((upstream-name . "HSMMSingleCell")))
     (build-system r-build-system)
@@ -1423,13 +1437,13 @@ resulting in a complete gene expression profile for each cell.")
 (define-public r-all
   (package
     (name "r-all")
-    (version "1.26.0")
-    (source (origin
-              (method url-fetch)
-              (uri (bioconductor-uri "ALL" version 'experiment))
-              (sha256
-               (base32
-                "1z7kpjw4ndj6fkxwvhqf3gawhrn26ksrlns7j2c78qzxqmjndik9"))))
+    (version "1.38.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "ALL" version 'experiment))
+       (sha256
+        (base32 "0410045x327wmfkksshd8yishw4yxij08vn8p65cdj7hb3qy3p0z"))))
     (properties `((upstream-name . "ALL")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1447,14 +1461,13 @@ the form of an @code{exprSet} object.")
 (define-public r-affydata
   (package
     (name "r-affydata")
-    (version "1.32.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affydata" version 'experiment))
        (sha256
-        (base32
-         "1l9qhmjqgbrdl9cmd74rlnvmvr6mslbmckb83n0211whp2i0b7h5"))))
+        (base32 "1d8ims7hks536v739r5hhfkkzyzqrf398aqal3hzyfm0psv15jbp"))))
     (properties `((upstream-name . "affydata")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1470,13 +1483,13 @@ package @code{affy}.")
 (define-public r-gagedata
   (package
     (name "r-gagedata")
-    (version "2.28.0")
+    (version "2.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gageData" version 'experiment))
        (sha256
-        (base32 "16lmnvmbykvbdgwyx7r2jc217gb9nidn81860v5kri99g97j4jdn"))))
+        (base32 "00s2aig9r0bvk45brc0shildrgl2z0i0k8xlvqc9h1s274nnslk9"))))
     (properties `((upstream-name . "gageData")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/gageData")
@@ -1496,14 +1509,13 @@ yeast are also included.")
 (define-public r-curatedtcgadata
   (package
     (name "r-curatedtcgadata")
-    (version "1.8.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "curatedTCGAData" version 'experiment))
        (sha256
-        (base32
-         "02y6cgihmsl9b4a9mmcdjjgjp06lpz04biyvxd3n5lk5gnqd9r3y"))))
+        (base32 "0h3mpwy6lhyn8hfry13sdjgb35gqyi3g26igfjqzshc5wvsniwpr"))))
     (properties
      `((upstream-name . "curatedTCGAData")))
     (build-system r-build-system)
@@ -1514,6 +1526,7 @@ yeast are also included.")
            r-multiassayexperiment
            r-s4vectors
            r-summarizedexperiment))
+    (native-inputs (list r-knitr))
     (home-page "https://bioconductor.org/packages/curatedTCGAData/")
     (synopsis "Curated data from The Cancer Genome Atlas")
     (description
@@ -1529,13 +1542,13 @@ across the entire multi-'omics experiment.")
 (define-public r-tcgabiolinksgui-data
   (package
     (name "r-tcgabiolinksgui-data")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TCGAbiolinksGUI.data" version 'experiment))
        (sha256
-        (base32 "08zmlvycq3jz1zy0715x9f21nf3465c51k7w2jq12sfbap36pmjm"))))
+        (base32 "1mb2z59acs1pi1gqvgjyh62wnmbxskc5l0p42gpjajsjip5x1x7g"))))
     (properties `((upstream-name . "TCGAbiolinksGUI.data")))
     (build-system r-build-system)
     (native-inputs (list r-knitr))
@@ -1551,13 +1564,13 @@ TCGAbiolinksGUI package.")
 (define-public r-abarray
   (package
     (name "r-abarray")
-    (version "1.62.0")
+    (version "1.64.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ABarray" version))
               (sha256
                (base32
-                "0yh7jmkwdg3kmm98ii0cxbla3s5bwy84fpg6xcpggsrriwzwfb5k"))))
+                "0kjq00i2mb21xyjjs3jy09ps80f11cy37wywzjvmxyjxzbsk4d7r"))))
     (properties `((upstream-name . "ABarray")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase r-multtest))
@@ -1577,13 +1590,13 @@ into folders according to the analysis settings used.")
 (define-public r-absseq
   (package
     (name "r-absseq")
-    (version "1.48.0")
+    (version "1.50.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ABSSeq" version))
               (sha256
                (base32
-                "0l2hh6qv4lhw1g1kciw2f3ssj3lw83hqxnkmxzmv7snik3k6i650"))))
+                "1kwl0gcqwbgblwvpbvqlgnsi91km77j11f0q1f0gd6hhnv38mmlv"))))
     (properties `((upstream-name . "ABSSeq")))
     (build-system r-build-system)
     (propagated-inputs (list r-limma r-locfit))
@@ -1606,13 +1619,13 @@ ranking by fold-change and visualization.")
 (define-public r-adam
   (package
     (name "r-adam")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ADAM" version))
               (sha256
                (base32
-                "18zwci0ab54q7rdwj0n63w0i14lfrb4cccp09bcrq10gl1ki07f5"))))
+                "1cgcjykik9hjrwlvvgaccprcrimgq5kwh9cj6367yk9m574a4gmn"))))
     (properties `((upstream-name . "ADAM")))
     (build-system r-build-system)
     (propagated-inputs (list r-dplyr
@@ -1641,13 +1654,13 @@ functionally associated genes} (GFAG).")
 (define-public r-adamgui
   (package
     (name "r-adamgui")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ADAMgui" version))
               (sha256
                (base32
-                "0n06bb9djigha0249lxx84pn9q0xiryxbv25qsc3p2h46iaxi3wq"))))
+                "0vvd5qdwkfcr7zg7z63x3vvrcg63r6c9p383yvcg2lp8zmx8hsbs"))))
     (properties `((upstream-name . "ADAMgui")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1689,13 +1702,13 @@ the @code{GFAGpathUi} function.")
 (define-public r-adimpute
   (package
     (name "r-adimpute")
-    (version "1.4.0")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ADImpute" version))
               (sha256
                (base32
-                "1bkq1hd8sqg9r28r70a9vd3gb2nsmg6dybf002d621p88cdfjib2"))))
+                "0885kd8mpmwjpzpx14pi6l3mqcvsixk10vkf5h4sqb7di0nnna4w"))))
     (properties `((upstream-name . "ADImpute")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1738,13 +1751,13 @@ results from different methods into an ensemble.")
 (define-public r-adsplit
   (package
     (name "r-adsplit")
-    (version "1.64.0")
+    (version "1.66.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "adSplit" version))
               (sha256
                (base32
-                "1b4ck371h3a76m5h0brvlzsyg1g6q5fjrhra5hqv9pwxr330h9r2"))))
+                "1wl2gd0b7krf485clw67cxayp0g9argklkzn8nw1vrkil0vvr4jm"))))
     (properties `((upstream-name . "adSplit")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1766,13 +1779,13 @@ the supporting gene set is determined.")
 (define-public r-affixcan
   (package
     (name "r-affixcan")
-    (version "1.12.0")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AffiXcan" version))
               (sha256
                (base32
-                "06yn87briv2141jqad934gg5rcd90w5nghrgmbhqnmwafn72gj9d"))))
+                "0wj9shzmlxpksbxny571xzfcmmqqzjlk1vq4mx1is2r6ma7jkblq"))))
     (properties `((upstream-name . "AffiXcan")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1794,13 +1807,13 @@ expression values are known.")
 (define-public r-affyrnadegradation
   (package
     (name "r-affyrnadegradation")
-    (version "1.40.0")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AffyRNADegradation" version))
               (sha256
                (base32
-                "00hzr62xn1i1w4g8krsxhivzwn8hd7hwhkdxyrpz6cs9vgr4x9kd"))))
+                "16akwmpzwxai7ks5bvc1yyb9sx2scv9b9gas5avb0sk5fk0h3nsf"))))
     (properties `((upstream-name . "AffyRNADegradation")))
     (build-system r-build-system)
     (propagated-inputs (list r-affy))
@@ -1819,13 +1832,13 @@ of samples that are affected by RNA degradation.")
 (define-public r-agdex
   (package
     (name "r-agdex")
-    (version "1.42.0")
+    (version "1.44.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AGDEX" version))
               (sha256
                (base32
-                "0y0q4zdybr5hlsi7qy2hf6c2sqr2z2211wz36dz70jkqyr0ggw64"))))
+                "0c44fw5ajdjc13409rn3lsv0jhlqa2qcak9b1k8hpig486xxzsr9"))))
     (properties `((upstream-name . "AGDEX")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase r-gseabase))
@@ -1846,13 +1859,13 @@ experiment.")
 (define-public r-aggregatebiovar
   (package
     (name "r-aggregatebiovar")
-    (version "1.4.0")
+    (version "1.6.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "aggregateBioVar" version))
               (sha256
                (base32
-                "1wbfp1pf62di6pzxsf36lmzk6y9dllz1n4iv3mhpb1x8cvy4hqqk"))))
+                "0ngg12bgr95m4wm12scmrb55dgy4909c6qrg169l6dkng99v4nx1"))))
     (properties `((upstream-name . "aggregateBioVar")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1880,13 +1893,13 @@ bulk RNA-seq tools.")
 (define-public r-agilp
   (package
     (name "r-agilp")
-    (version "3.26.0")
+    (version "3.28.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "agilp" version))
               (sha256
                (base32
-                "02cyc2y4v3y16zlrnax2c96b2qfxj6b2j37ps4g2gdqgas08n9xp"))))
+                "1pm329y2nfcnx98ggxq0prdd5pxfcl5iylvsjjnhw5lyz1awg1yf"))))
     (properties `((upstream-name . "agilp")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/agilp")
@@ -1902,13 +1915,13 @@ but which also provides utilities which may be useful for other platforms.")
 (define-public r-adductomicsr
   (package
     (name "r-adductomicsr")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "adductomicsR" version))
               (sha256
                (base32
-                "0cnvxrk0h3r6jpa4g4qismg6zk5c7rf8lqixg89c24i98gffkbcl"))))
+                "0623qf06xgdsyz0in2wnxwvpdw8kj6cnwf8vlqmgp7g0n3w701ys"))))
     (properties `((upstream-name . "adductomicsR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1977,13 +1990,13 @@ objects are used so that other packages could be used as well.")
 (define-public r-aneufinder
   (package
     (name "r-aneufinder")
-    (version "1.22.0")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AneuFinder" version))
               (sha256
                (base32
-                "0xn8952fkchhx7m8dam6gjy86j551xp1cs67510s1qrmfgzpkjp0"))))
+                "1acsp987jv2x4qwbgy3y7ff4r2qz7680b0nbr37m4lmncqfgh8yl"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -2019,14 +2032,14 @@ sequencing data.")
 (define-public r-biocversion
   (package
     (name "r-biocversion")
-    (version "3.14.0")
+    (version "3.15.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocVersion" version))
        (sha256
         (base32
-         "0qwzkh2alw7xhjprh719la0lg1q38pmjbipy3s2fy79m4xy8y8ik"))))
+         "0rs4nyza4hqqk204d037gi013135wgfhx5asq2dsdjc9vk5nwzfn"))))
     (properties `((upstream-name . "BiocVersion")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BiocVersion/")
@@ -2039,13 +2052,13 @@ of Bioconductor.")
 (define-public r-biocgenerics
   (package
     (name "r-biocgenerics")
-    (version "0.40.0")
+    (version "0.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocGenerics" version))
               (sha256
                (base32
-                "0nr5x4r8f2krnfrxm7wrzgzr7nbljypi985cbwx5hxhn95zmfifh"))))
+                "0iv9bnpw2hycndwbmjsszqfwrksz6dfr6qcz78jkssc9ldsgmdhc"))))
     (properties
      `((upstream-name . "BiocGenerics")))
     (build-system r-build-system)
@@ -2059,13 +2072,13 @@ packages.")
 (define-public r-coverageview
   (package
     (name "r-coverageview")
-    (version "1.32.0")
+    (version "1.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "CoverageView" version))
               (sha256
                (base32
-                "0sb1h5qsk41c9xisq73agqh502wv6p2j1k45s32a4bkdynf696as"))))
+                "0mh66l4yh6rpd1r7qbqwh5jkklqyvpfiap0zcqhz9kimssm2pbbp"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-s4vectors
@@ -2086,13 +2099,13 @@ how the coverage distributed across the genome.")
 (define-public r-cummerbund
   (package
    (name "r-cummerbund")
-   (version "2.36.0")
+   (version "2.38.0")
    (source (origin
              (method url-fetch)
              (uri (bioconductor-uri "cummeRbund" version))
              (sha256
               (base32
-               "0130hrlz2jabbshis1g11ndda8b8vlirzi7a004li3cgdghscxql"))))
+               "1p4anmi436zykp0ir307g75g23kj8b7shxg4r65qq6zdwflphm0q"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-biobase
@@ -2116,24 +2129,32 @@ used visualizations.")
 (define-public r-dearseq
   (package
     (name "r-dearseq")
-    (version "1.6.0")
+    (version "1.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "dearseq" version))
        (sha256
         (base32
-         "07vr27rv3z86ajd62c0ilvfgz9z35qsiwwi5pv4sygbhnnjwh3rc"))))
+         "1f144k5gsclcmsnlsbisr2mivk91dbkci83wx1kznw6i15p4cpj1"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-ggplot2
+     (list r-compquadform
+           r-dplyr
+           r-ggplot2
            r-kernsmooth
+           r-magrittr
            r-matrixstats
            r-patchwork
            r-pbapply
+           r-reshape2
+           r-rlang
            r-statmod
            r-survey
-           r-kernsmooth))
+           r-tibble
+           r-viridislite))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/borishejblum/dearseq")
     (synopsis "DEA for RNA-seq data through a robust variance component test")
     (description
@@ -2146,13 +2167,13 @@ set analyses, and can deal with repeated or longitudinal data.")
 (define-public r-decipher
   (package
     (name "r-decipher")
-    (version "2.22.0")
+    (version "2.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DECIPHER" version))
               (sha256
                (base32
-                "0a9k3f70jmd17kxf1zjmdzrfjs0dmwfad2zgz6wihxh5s1shc8qm"))))
+                "045q2bfzgq1yzhyrzvrhrnmlpka4gikrajxxwv05szksy5nvp7q5"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biostrings
@@ -2167,16 +2188,57 @@ set analyses, and can deal with repeated or longitudinal data.")
 biological sequences.")
     (license license:gpl3)))
 
+(define-public r-decoupler
+  (package
+    (name "r-decoupler")
+    (version "2.2.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "decoupleR" version))
+       (sha256
+        (base32 "0q1w8yw3bwx8ai5z8rw8lz97w4cplxijq93634hza2vgkig1ck9m"))))
+    (properties `((upstream-name . "decoupleR")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-broom
+           r-dplyr
+           r-magrittr
+           r-matrix
+           r-purrr
+           r-rlang
+           r-stringr
+           r-tibble
+           r-tidyr
+           r-tidyselect
+           r-withr))
+    (native-inputs (list r-knitr))
+    (home-page "https://saezlab.github.io/decoupleR/")
+    (synopsis "Computational methods to infer biological activities from omics data")
+    (description
+     "Many methods allow us to extract biological activities from omics data using
+information from prior knowledge resources, reducing the dimensionality for
+increased statistical power and better interpretability.  decoupleR is a
+Bioconductor package containing different statistical methods to extract these
+signatures within a unified framework.  decoupleR allows the user to flexibly
+test any method with any resource.  It incorporates methods that take into
+account the sign and weight of network interactions.  decoupleR can be used
+with any omic, as long as its features can be linked to a biological process
+based on prior knowledge.  For example, in transcriptomics gene sets regulated
+by a transcription factor, or in phospho-proteomics phosphosites that are
+targeted by a kinase.")
+    (license license:gpl3)))
+
 (define-public r-deepsnv
   (package
     (name "r-deepsnv")
-    (version "1.40.0")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "deepSNV" version))
               (sha256
                (base32
-                "1wi6j6yb6i9fs9yszfywqz3w50mhl85dkfmr4w3phwvkf0xkn81w"))))
+                "0si1x2bi5pff1dicpqg7hv4ziq46vm7lic72724ljsclpz9bfv6q"))))
     (properties `((upstream-name . "deepSNV")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2206,13 +2268,13 @@ bases such as COSMIC.")
 (define-public r-delayedarray
   (package
     (name "r-delayedarray")
-    (version "0.20.0")
+    (version "0.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DelayedArray" version))
               (sha256
                (base32
-                "1cm6zh01mvhiq7zrik7q3dmgxinyjz1nyg6rfj93kpkvcb5d4wpj"))))
+                "11id63qza9dxl1364gllqafxmx25a0q22jv5q8h709bgc3f0grqy"))))
     (properties
      `((upstream-name . "DelayedArray")))
     (build-system r-build-system)
@@ -2236,13 +2298,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
 (define-public r-derfinderhelper
   (package
     (name "r-derfinderhelper")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "derfinderHelper" version))
        (sha256
-        (base32 "06x0wy2wzpngak1pnrj2p0xzlx1nbcz0hs3p9q5ic6ib2rgwrh35"))))
+        (base32 "0r7zbx5bfmh5cjs12y8d9qwz53nz340gdy3sx7zcn4rzn7rpslp5"))))
     (properties `((upstream-name . "derfinderHelper")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2261,13 +2323,13 @@ calculation in parallel.")
 (define-public r-drimseq
   (package
     (name "r-drimseq")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DRIMSeq" version))
        (sha256
-        (base32 "0y2jb0hb633id038zmwnfny6h4ai77fdyy02f77vha1z8xg5nl02"))))
+        (base32 "1dph483ij43ayw0z5dbnp6gwp53ka7k5si1hp3miac7z8dqzv94l"))))
     (properties `((upstream-name . "DRIMSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2296,13 +2358,13 @@ results.")
 (define-public r-bluster
   (package
    (name "r-bluster")
-   (version "1.4.0")
+   (version "1.6.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "bluster" version))
             (sha256
              (base32
-              "1j24l12i3aga4qd827sj8b160yvrhlznggb4piddkmhjc0sppbjm"))))
+              "1g496yc7mdhshf6r0n8xhj7ax936ia5z2cx72lqyk2vzzzl5c4v8"))))
    (properties `((upstream-name . "bluster")))
    (build-system r-build-system)
    (propagated-inputs
@@ -2326,13 +2388,13 @@ and evaluate clustering results.")
 (define-public r-ideoviz
   (package
     (name "r-ideoviz")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IdeoViz" version))
               (sha256
                (base32
-                "0cclk2pcb2mvsfxhw0zq3qlnfkblb1gqxnn7xypmlf0bm6hcvl4g"))))
+                "1wwh3ifdijhpm58lw7cmnx084xwfxnc7i0206w8rhrjnvnq6ljh3"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -2350,13 +2412,13 @@ arbitrary genomic intervals along chromosomal ideogram.")
 (define-public r-iranges
   (package
     (name "r-iranges")
-    (version "2.28.0")
+    (version "2.30.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IRanges" version))
               (sha256
                (base32
-                "07zs231wbfwwc1c1165rhp711fbss40p9l8kyjjv9flzpr3hr1pg"))))
+                "0hfx5n0b4pqrrc1w2dik596803ly8ffnxfs768iy5l5kr8wwyc8k"))))
     (properties
      `((upstream-name . "IRanges")))
     (build-system r-build-system)
@@ -2378,13 +2440,13 @@ possible.")
 (define-public r-isoformswitchanalyzer
   (package
     (name "r-isoformswitchanalyzer")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IsoformSwitchAnalyzeR" version))
        (sha256
-        (base32 "14bqf39gw5ab5r9sr3afkig1jbzdvds1bmcvc6bpb45kschx7fwf"))))
+        (base32 "0n1gb9azxa1mxpsqvw3i3kf72f45nyjj1kgwwrzhd88n3g63lvkd"))))
     (properties `((upstream-name . "IsoformSwitchAnalyzeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2580,14 +2642,14 @@ performing parallel computations on multicore machines.")
 (define-public r-affy
   (package
     (name "r-affy")
-    (version "1.72.0")
+    (version "1.74.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affy" version))
        (sha256
         (base32
-         "0z66pyn2020h3x22xabkmnjxb20kbgblivvk7mqjk9134wvvf15a"))))
+         "02l77y4d4m4jwgkb3jdaskv6shmba5292whp0i29mg9asxv4rdc7"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-affyio
@@ -2608,14 +2670,14 @@ analysis.")
 (define-public r-affycomp
   (package
     (name "r-affycomp")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycomp" version))
        (sha256
         (base32
-         "0kawlfff82ikrbrfyyy38zm5wj5xdri2ii9wgwilnq50z5qc6r21"))))
+         "0aq5p56sqpvba0yhgd75302s9bazchh1izgymng6cpb78y5wfpj0"))))
     (properties `((upstream-name . "affycomp")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase))
@@ -2629,14 +2691,14 @@ measures for Affymetrix Oligonucleotide Arrays.")
 (define-public r-affycompatible
   (package
     (name "r-affycompatible")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AffyCompatible" version))
        (sha256
         (base32
-         "1qlfh1gcwa6akd5dhdqh260yaw1j6dap6a15ghwf74rchi5218sg"))))
+         "0x3lj1jgqq67389rzfklah5p878ns9b4fpdpz455m2gq9sk7qsda"))))
     (properties
      `((upstream-name . "AffyCompatible")))
     (build-system r-build-system)
@@ -2655,14 +2717,14 @@ Command Console} (AGCC)-compatible sample annotation files.")
 (define-public r-affycontam
   (package
     (name "r-affycontam")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyContam" version))
        (sha256
         (base32
-         "1vw3nxg9jvlw0zg9h70w2ww8l42qpyvgf12hsla9hyyfhj3m6i9f"))))
+         "1pyd4rj6pp139kvhh97whi4afvx029w5lglr4mnscw7m3f618v0p"))))
     (properties `((upstream-name . "affyContam")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2678,14 +2740,14 @@ problems in CEL-level data to help evaluate performance of quality metrics.")
 (define-public r-affycoretools
   (package
     (name "r-affycoretools")
-    (version "1.66.0")
+    (version "1.68.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affycoretools" version))
        (sha256
         (base32
-         "1ccyaj129ii9f47r41qsy34y6ck4wna55j8vz3v3hbldddn93f40"))))
+         "05x64hy5jpmg973biwq4q9gzy1n0iqc0pxrix1f6bri1w6vil3ww"))))
     (properties `((upstream-name . "affycoretools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2720,14 +2782,14 @@ to streamline the more common analyses that a Biostatistician might see.")
 (define-public r-affyio
   (package
     (name "r-affyio")
-    (version "1.64.0")
+    (version "1.66.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affyio" version))
        (sha256
         (base32
-         "02lqdq8hcldkf9qbyhhllkm3smpqc51sn2d9gbkm74r96fx37lvm"))))
+         "19cw82qvzkz6vh2gm302y7digsf6xif7c9l2q9s6lkx2yflqpgfp"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-zlibbioc))
@@ -2744,14 +2806,14 @@ CDF file formats.")
 (define-public r-affxparser
   (package
     (name "r-affxparser")
-    (version "1.66.0")
+    (version "1.68.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "affxparser" version))
        (sha256
         (base32
-         "1bd0f8ifj6l7dx2m3wpmd0mji2gdf39mzgcjf9lbvvmbqnbxbcal"))))
+         "16x92gwsy7zdyz4md4cw847xn2ymqd6gqsn0rlr2nnf3qmnjnils"))))
     (properties `((upstream-name . "affxparser")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/affxparser")
@@ -2772,14 +2834,14 @@ structure.")
 (define-public r-annotate
   (package
     (name "r-annotate")
-    (version "1.72.0")
+    (version "1.74.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotate" version))
        (sha256
         (base32
-         "0p7q5hdk7003q72vg4hrgdzn463spybxhrkvcq3a6l6jkgy9sf84"))))
+         "0x6vddpiw2g713vicf70198x8dlrwf36p8jjygdsfnl56ls5bh2g"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -2799,13 +2861,13 @@ microarrays.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.56.2")
+    (version "1.58.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "01zwq14msbbwzxv8rgpmyr74ymvhq0vnmxkxxwd886iac5vjlgi8"))))
+                "15cwy7lic89jwl3dr7j4pb5bx457jdpvzvylr71624s0p0j9rgwn"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
@@ -2829,13 +2891,13 @@ annotation data packages using SQLite data storage.")
 (define-public r-annotationfilter
   (package
     (name "r-annotationfilter")
-    (version "1.18.0")
+    (version "1.20.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationFilter" version))
               (sha256
                (base32
-                "15fp1228yb06jm5cblvhw3qv9mlpbjfggaz2nvi3p46mby1vs64w"))))
+                "082lpcd6yr2nkxndlck2wqqd3nfdx7lnpw8barxgv41q4l7v4ald"))))
     (properties
      `((upstream-name . "AnnotationFilter")))
     (build-system r-build-system)
@@ -2854,14 +2916,14 @@ used by @code{ensembldb}, @code{Organism.dplyr}, and other packages.")
 (define-public r-annotationforge
   (package
     (name "r-annotationforge")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationForge" version))
        (sha256
         (base32
-         "02wvni5q560idi6677g5f4md73z4qzjl5yycxv5dbvgbl2picisz"))))
+         "18rcfadxdaggyjj3rj17nbvgddlqs6zlr5jmq9a02kin59czvzz8"))))
     (properties
      `((upstream-name . "AnnotationForge")))
     (build-system r-build-system)
@@ -2886,14 +2948,14 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-annotationhub
   (package
     (name "r-annotationhub")
-    (version "3.2.2")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationHub" version))
        (sha256
         (base32
-         "08dk4h07gpi3rk9s80wrbx2ww2chj688qzbwlx8n4dz788lqbfz8"))))
+         "03dmbx43rsv9xv94lk12gpraq47ryc13jijwma3q05hl9wn8xjxs"))))
     (properties `((upstream-name . "AnnotationHub")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2927,14 +2989,14 @@ by the user, helping with quick and reproducible access.")
 (define-public r-aroma-light
   (package
     (name "r-aroma-light")
-    (version "3.24.0")
+    (version "3.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "aroma.light" version))
        (sha256
         (base32
-         "12qa85hsp8d1xhgn27iymknbhpnp9bd7hsgqxwvp1i8kki06z5hp"))))
+         "1240v9wvsf205g998ms19hncki8g6shidg09dy5np9pqpiix4vys"))))
     (properties `((upstream-name . "aroma.light")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2951,14 +3013,14 @@ classes.")
 (define-public r-bamsignals
   (package
     (name "r-bamsignals")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bamsignals" version))
        (sha256
         (base32
-         "03m3yaagplh7j4q5hp3cfcdqwsnh1pwrlla9cv3ajnfd83s8ncqv"))))
+         "0ywbxq829hclhr5bb6p77rspxvfs580zlwd2f5kr3an6rdgyx9ky"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
@@ -2981,13 +3043,13 @@ paired-end data.")
 (define-public r-biobase
   (package
     (name "r-biobase")
-    (version "2.54.0")
+    (version "2.56.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biobase" version))
               (sha256
                (base32
-                "0kar2kgaayp5l7xv9zcxj61l01m8jlwnppql6qf01wsz36dacgww"))))
+                "1mnxky78an079p60427cjvk4fzilp0xzy6b85fq274qvdcrz8jbv"))))
     (properties
      `((upstream-name . "Biobase")))
     (build-system r-build-system)
@@ -3003,13 +3065,13 @@ on Bioconductor or which replace R functions.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.50.3")
+    (version "2.52.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "01mv05fj5iqvjb5xz9k92kx1a9d95mprb6isy57n0x20vd3cxdx1"))))
+                "0yn3kanyrplc89a900xiz33nw1v23mkljvd5isizgs8gzvwzf8xg"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
@@ -3041,13 +3103,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.28.3")
+    (version "1.30.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "0lkp7m2l66zq8yl788mkvi9kpb1haywxpf6ip9xl5y6iwm1w2b8p"))))
+                "0rqvwhs6d8ls1rq7j5ywl5k0qgblxpzimilyw335bi1yad5s10h3"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -3094,13 +3156,13 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.62.0")
+    (version "2.64.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "11qkw863mkfz3mc55v2gmfr4w3xziqfb5pq3hmjqpn8vpw8ax3xq"))))
+                "1sz52hz89l9w2y2bvyis7kczslk1xnskls9l2bn1s3dhnjzdzhg8"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
@@ -3122,14 +3184,14 @@ biological sequences or sets of sequences.")
 (define-public r-biovizbase
   (package
     (name "r-biovizbase")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biovizBase" version))
        (sha256
         (base32
-         "0kg71p7sqfvxal0c19zrws1ffaqgyi8p605l3z6mkq5ldi26pajz"))))
+         "1ffzf7yvl47l8v8a50m8g9q33hgwvxg4fcm8ld2yy8hd2zl86zyd"))))
     (properties `((upstream-name . "biovizBase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3164,13 +3226,13 @@ effort and encourages consistency.")
 (define-public r-bsgenome
   (package
     (name "r-bsgenome")
-    (version "1.62.0")
+    (version "1.64.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome" version))
               (sha256
                (base32
-                "1b023dpy8ygq0kd6qy0mk97c66gzpf39y2s0n89kmv61z5sg0jyi"))))
+                "17gqrmaf6xxghgrzcansl9gfw3ghkrqp87swlnwgyghqvflr5qxc"))))
     (properties
      `((upstream-name . "BSgenome")))
     (build-system r-build-system)
@@ -3195,14 +3257,14 @@ genome data packages and support for efficient SNP representation.")
 (define-public r-category
   (package
     (name "r-category")
-    (version "2.60.0")
+    (version "2.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Category" version))
        (sha256
         (base32
-         "164zp4la9rqnp5vpn2y2p6plc5yxyk2kmn0z3d2flla54zc1b427"))))
+         "07js03cfdd6gzbzw14iavlqxynfcqszh988v6k1a3h074wxiivqd"))))
     (properties `((upstream-name . "Category")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3226,13 +3288,13 @@ analysis.")
 (define-public r-chipseeker
   (package
     (name "r-chipseeker")
-    (version "1.30.3")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ChIPseeker" version))
               (sha256
                (base32
-                "1f9m1p1viiigkmv15r2mknjrfw047jw1fylpqz5ipigc3jrphj1g"))))
+                "001f85nk4myk9vgs05inlj2dfby4802p1iyzkfqg332yk52gsbl7"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -3272,14 +3334,14 @@ annotation, distance to TSS, and overlap of peaks or genes.")
 (define-public r-chipseq
   (package
     (name "r-chipseq")
-    (version "1.44.0")
+    (version "1.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chipseq" version))
        (sha256
         (base32
-         "1jw209bfh1c22mqs9z44qx3pmca9m68rhxp0p9bvbmqsnqwrndi6"))))
+         "1vh0hvgnw7ykj401v1q807sl14s4nixp1d8xbm41n01q6w8x834i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
@@ -3298,20 +3360,21 @@ experiments.")
 (define-public r-complexheatmap
   (package
     (name "r-complexheatmap")
-    (version "2.10.0")
+    (version "2.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ComplexHeatmap" version))
        (sha256
         (base32
-         "124w74mk0zk035wyr7cimblzx5blags4n5c8f83mp7iimxcb4gcn"))))
+         "15b49vlkl89prcw70mlw066z0gxhs26x8dpfn6qr3gz7hihygs65"))))
     (properties
      `((upstream-name . "ComplexHeatmap")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-circlize
            r-clue
+           r-codetools
            r-colorspace
            r-digest
            r-doparallel
@@ -3337,14 +3400,14 @@ self-defined annotation graphics.")
 (define-public r-copywriter
   (package
     (name "r-copywriter")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CopywriteR" version))
        (sha256
         (base32
-         "0xm5gjzi4r1xzyn7r669blqxhyhmbk9rh9k2gn696j14hbhc1hcy"))))
+         "1k11kvam96hpg71hz2n9cfzizmb7d1bmq5zfvm34s7fn09is60xb"))))
     (properties `((upstream-name . "CopywriteR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3408,14 +3471,14 @@ distribution.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "0whk29zrmv9mrlc4w5ghy0fd29v8hfr8jccwgrn59mf3mkmfb2b9"))))
+         "06mvb0jqn2fg96wfwspv0kzpa8xpimzaldrcy8m2d4yk76xwsdr7"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3446,14 +3509,14 @@ distribution.")
 (define-public r-dexseq
   (package
     (name "r-dexseq")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DEXSeq" version))
        (sha256
         (base32
-         "1wd4bjd0a53s689yvb2lxzdiy0synh6ncfcly3cfw37kpdj8lds1"))))
+         "1dzx9mvm8pvcrwr88rin3flnpmzp3vq8mvspx9s8virqhv1102am"))))
     (properties `((upstream-name . "DEXSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3491,13 +3554,13 @@ exploration of the results.")
 (define-public r-diffcyt
   (package
     (name "r-diffcyt")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "diffcyt" version))
        (sha256
-        (base32 "1yc9mlc0ifb7h6rzskq97bsdq1kwdp5qq9l9mciwyxf6yjkmv5ni"))))
+        (base32 "0mysylzmg24g7lm1xan4yklzqmskfgh53j6vjcz2gzakz5rq3rdb"))))
     (properties `((upstream-name . "diffcyt")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3529,14 +3592,14 @@ adapted from transcriptomics.")
 (define-public r-dirichletmultinomial
   (package
     (name "r-dirichletmultinomial")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DirichletMultinomial" version))
        (sha256
         (base32
-         "06nallp9jj2vmaa7d18g6hiymjc109szdv8sp51r87n7s38bvyq6"))))
+         "15l0h2qz80lmrm5rva3v7lkgddn42igyxxwims57zwpwyhrk9bmx"))))
     (properties
      `((upstream-name . "DirichletMultinomial")))
     (build-system r-build-system)
@@ -3556,14 +3619,14 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
 (define-public r-edaseq
   (package
     (name "r-edaseq")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EDASeq" version))
        (sha256
         (base32
-         "1vygfdxbjcww7sqzc3j7sp7w13dx10vlzy9z31flf7345qp6blj7"))))
+         "1qnpbmhxvqsma7ihi6yp3ad962xcanlxald84k2szh011ipxj7ws"))))
     (properties `((upstream-name . "EDASeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3596,13 +3659,13 @@ global-scaling and full-quantile normalization.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.36.0")
+    (version "3.38.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "1d18kdfi9vjhhw5kwfy5airrd3c16fh4wbwppbhwgawm038mwavk"))))
+                "1q933m76155gy30wgps2gdd8pxzsfhppydjqn0fhjrwj6kqz8mik"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3621,14 +3684,14 @@ CAGE.")
 (define-public r-ensembldb
   (package
     (name "r-ensembldb")
-    (version "2.18.4")
+    (version "2.20.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ensembldb" version))
        (sha256
         (base32
-         "1nsdcsghhh3ikv0hbn1aazdam7a6pqf1p6rz68ll2h6965kl4qzp"))))
+         "183rs74ngfvn9xz36csch495pqaash90yhhikm73m7b2bc37ziwz"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -3666,14 +3729,14 @@ chromosome region or transcript models of lincRNA genes.")
 (define-public r-fastseg
   (package
     (name "r-fastseg")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fastseg" version))
        (sha256
         (base32
-         "1ds0hhc41nhfj3lmvld8nk2p547wd80b3yq7fjlf3dl3wfaxzy80"))))
+         "1cr1b1jbgp1z1zpf71kl7mljbm2jpi6b97bf3bll3gnagfm489hy"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase r-biocgenerics r-genomicranges r-iranges
@@ -3693,14 +3756,14 @@ microarrays or GRanges for sequencing data.")
 (define-public r-gage
   (package
     (name "r-gage")
-    (version "2.44.0")
+    (version "2.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gage" version))
        (sha256
         (base32
-         "1spndmvl8wlz3z3wsvzi0fg9nzk81xi8c220pg2rf81j9181nkar"))))
+         "03hx188h98qrbpjlf8v9sg2vqyfv49rp4c18ir11pg6hwqqrxh7b"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi r-go-db r-graph r-keggrest))
@@ -3721,14 +3784,14 @@ analysis using other methods.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.76.0")
+    (version "1.78.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "05ba33m99dg414lasn36mjmkd9lvrxgpamy1qj2zvi31i9vkq6y2"))))
+         "1lp3alnljhsil8zylf8rvf8ik4wmsyciy3ij4rr9l4191dkkp4aq"))))
     (build-system r-build-system)
     (native-inputs
      (list gfortran r-knitr))
@@ -3745,13 +3808,13 @@ high-throughput sequencing experiments.")
 (define-public r-geneoverlap
   (package
     (name "r-geneoverlap")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GeneOverlap" version))
               (sha256
                (base32
-                "18l5dc4xcy1xa2h3sfw92w9rq9v0mnclamjxmzs5fqi469y5mwmm"))))
+                "0nqwa3x9q1hl9nm06hqzzrn00rirc9kj6s320csjlf7x6rcidr93"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-rcolorbrewer r-gplots))
@@ -3764,13 +3827,13 @@ and visualize the results.")
 (define-public r-genomation
   (package
     (name "r-genomation")
-    (version "1.26.0")
+    (version "1.28.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "genomation" version))
               (sha256
                (base32
-                "0ynwsrlnp98iyz4bl2s7plin0k9iy9zix4jy4v38lcqg6n4iz00j"))))
+                "0rvay7gs4g2wi6h42kln8xwy9b05axj1x8mkfayl6pnnlva6xj79"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biostrings
@@ -3811,13 +3874,13 @@ genomic intervals.  In addition, it can use BAM or BigWig files as input.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.30.1")
+    (version "1.32.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "1ly851w6xy144qvmpdv7p64yc45bqxmvny2rzgz691h3qbin3x55"))))
+                "1n37bwb2fqmdgqbn19rgsd2qn8vbdhv6khdwjr7v12bwabcbx9xh"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
@@ -3838,13 +3901,13 @@ names in their natural, rather than lexicographic, order.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "1jwksis94mk8bmdggk0w3kvxqwp4di6x78xgsjk6ij54710adyq9"))))
+                "1ifmlc0488f5yzcf4p92dmdc7psxl5c0aa7qpxjk0a07gf7lldbi"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
@@ -3871,13 +3934,13 @@ alignments.")
 (define-public r-genomicfeatures
   (package
     (name "r-genomicfeatures")
-    (version "1.46.5")
+    (version "1.48.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "1fhahqh87cikfrwqkm2z4nq3jyi530qvsbmf09j2hyhsm87hhrgg"))))
+                "18ain5s0ry6w0ki4c0czvwax2ncigrldyac30a6mlbzyaga6i54h"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -3915,14 +3978,14 @@ extracting the desired features in a convenient format.")
 (define-public r-genomicfiles
   (package
     (name "r-genomicfiles")
-    (version "1.30.0")
+    (version "1.32.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicFiles" version))
        (sha256
         (base32
-         "0i5y6dk6z18yqj5k4zy756c6l57z9jq2w5a5dksh2di4qgdgjx3x"))))
+         "06ycfna26klx27vvsnlpgv46bymfrc8z0zkpag7nm4m23153ivkz"))))
     (properties `((upstream-name . "GenomicFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3949,13 +4012,13 @@ provide added flexibility for data combination and manipulation.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.46.1")
+    (version "1.48.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "133r27wsdyppjv9kq0d2xamx007lkf416nnlaygs4hs3a76p9xwx"))))
+                "088rv1aclwq265pdg4hmks73nl0125vk0vigyi44n3djkrdx48yn"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
@@ -3976,14 +4039,14 @@ manipulating genomic intervals and variables defined along a genome.")
 (define-public r-gostats
   (package
     (name "r-gostats")
-    (version "2.60.0")
+    (version "2.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOstats" version))
        (sha256
         (base32
-         "1f8wqdl0swnvs59i6ljjcaglfqv314n8zxy4crpx806gbjzpn76z"))))
+         "121ly9vifarg8y7mc468571bbs0xv4sx6sflm5zcdqf0p83yvjrm"))))
     (properties `((upstream-name . "GOstats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4007,14 +4070,14 @@ testing and other simple calculations.")
 (define-public r-gseabase
   (package
     (name "r-gseabase")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GSEABase" version))
        (sha256
         (base32
-         "1i8rryvagxk2pd8nl4a6yldwv82yx869nvv95jf8v00bna08f4d6"))))
+         "1qhvgyg392fd98h2qnmfmhg7mil5hp9cy3qmkqs4x1bhpv1m978g"))))
     (properties `((upstream-name . "GSEABase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4036,14 +4099,14 @@ Enrichment Analysis} (GSEA).")
 (define-public r-hpar
   (package
     (name "r-hpar")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hpar" version))
        (sha256
         (base32
-         "1inajapdhjxg0vwhsdnhfq22h3fv7ad7m1lv58y5v41p59av1w76"))))
+         "07c6r703d5xp7y9bqmqalxgna2qrbk1h5s0d992m7360k259mgrj"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -4056,14 +4119,14 @@ the Human Protein Atlas project.")
 (define-public r-rhtslib
   (package
     (name "r-rhtslib")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhtslib" version))
        (sha256
         (base32
-         "0pwmzwjf6agfp3bq6w8s3piwmzwjdd474qd8zmbzrm772qbadfr4"))))
+         "07kws6afkxbmxq4w357mwwl712pdd16alvz7iqijjd2x7rjchj2f"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
     ;; Without this a temporary directory ends up in the Rhtslib.so binary,
@@ -4085,13 +4148,13 @@ of other R packages who wish to make use of HTSlib.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.68.0")
+    (version "1.70.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "0k6dil8ljgp5qr87m7hxli4igb36fbxiwczaqc5pi8mlfh70fqj5"))))
+                "11b0z7py0im6y43k55xpzz5jnvc0ram9rk3n1n4mwhvs0vhy39r2"))))
     (native-inputs
      (list gfortran))
     (build-system r-build-system)
@@ -4105,14 +4168,14 @@ microarray data, using nearest neighbor averaging.")
 (define-public r-interactivedisplaybase
   (package
     (name "r-interactivedisplaybase")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "interactiveDisplayBase" version))
        (sha256
         (base32
-         "1pi887192k1jifb4k3pf2jn5hcl1xmmy6vwl22r9njsprdyb3kab"))))
+         "0fdwx5ch0ch8axdkfiq7zzhhq5hwcvd6kf8fggw9nd3ah1yjwbdg"))))
     (properties
      `((upstream-name . "interactiveDisplayBase")))
     (build-system r-build-system)
@@ -4130,14 +4193,14 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-keggrest
   (package
     (name "r-keggrest")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGREST" version))
        (sha256
         (base32
-         "1np3i1k7rki9akh70156ggmid52yy0is9q5vd3s45ra7an0ap279"))))
+         "0hzlm6nzmx0iyjh063512a3ghc1xqb58g5z2bnd2wl4y42iww7bg"))))
     (properties `((upstream-name . "KEGGREST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4154,13 +4217,13 @@ Shiny-based display methods for Bioconductor objects.")
 (define-public r-lfa
   (package
     (name "r-lfa")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lfa" version))
        (sha256
-        (base32 "02b90xjb2lfm86hbsdrvzpv20pijnq78ibz4dwjzqd9v4xhia3wr"))))
+        (base32 "044866h4fnxmzb3sh9vmrd2smgsbcqgvd19dgwxisi418cad577l"))))
     (properties `((upstream-name . "lfa")))
     (build-system r-build-system)
     (propagated-inputs (list r-corpcor))
@@ -4175,13 +4238,13 @@ Binomial data via estimation of latent structure in the natural parameter.")
 (define-public r-limma
   (package
     (name "r-limma")
-    (version "3.50.3")
+    (version "3.52.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "limma" version))
               (sha256
                (base32
-                "1p46sif1aygmw2p8ifiylxrrbfbgvcsa0zp40nxlxawc7h56rybp"))))
+                "193l3z2jv0kr91nl4r64p3jzb2rai9k8akx1zw7303nsnwpiiaay"))))
     (build-system r-build-system)
     (home-page "http://bioinf.wehi.edu.au/limma")
     (synopsis "Package for linear models for microarray and RNA-seq data")
@@ -4194,13 +4257,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-methylkit
   (package
     (name "r-methylkit")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "methylKit" version))
               (sha256
                (base32
-                "02px46h2ynprss7kwll3i0jz0clrdg0bys70jacd432xw34nm2sx"))))
+                "00asjzv05avfg0rrkmfbdqd6xx8d18zi72n3b1kf9wj81z2d2a35"))))
     (properties `((upstream-name . "methylKit")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4268,14 +4331,14 @@ throughput genetic sequencing data sets using regression methods.")
 (define-public r-mutationalpatterns
   (package
     (name "r-mutationalpatterns")
-    (version "3.4.1")
+    (version "3.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MutationalPatterns" version))
        (sha256
         (base32
-         "0i6fq6736gvrqn45r7nrhl0ns45qwj1bl4yc6qlalw2g46mjxf6k"))))
+         "113b2hrc0n47qz144xhky93jcm6qh6flzadq5y0plga5jrz0rnwg"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -4314,14 +4377,14 @@ in SNV base substitution data.")
 (define-public r-msnbase
   (package
     (name "r-msnbase")
-    (version "2.20.4")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnbase" version))
        (sha256
         (base32
-         "0d3b0i154dyz1wvy2jwf5831bzbmalw7rzvxj8rd7658zjhghgzc"))))
+         "1xzn0k3c2wn6c6gv90hddy3c201sg927342zrw9ig2xap0r053x3"))))
     (properties `((upstream-name . "MSnbase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4359,14 +4422,14 @@ of mass spectrometry based proteomics data.")
 (define-public r-msnid
   (package
     (name "r-msnid")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MSnID" version))
        (sha256
         (base32
-         "0dks5h3vp9ly8x24px2rl5blqicxybpxjnxvg2p1bwq8zvjkm38p"))))
+         "1yiw95p40nz0pvq7s4i0xg02r9yqmnknak00z4lkw8jij3w3rkkq"))))
     (properties `((upstream-name . "MSnID")))
     (build-system r-build-system)
     (arguments
@@ -4416,14 +4479,14 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
 (define-public r-mzid
   (package
     (name "r-mzid")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzID" version))
        (sha256
         (base32
-         "0r001amd4m99cv0ixw38rpz0zv0xqb0qyvs16bz1i4a756391qri"))))
+         "1q1aqyya9nd494s7m3rdaf3kixipdrwbj825g40kdljwrg85y961"))))
     (properties `((upstream-name . "mzID")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4447,19 +4510,17 @@ specific parser.")
 (define-public r-mzr
   (package
     (name "r-mzr")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mzR" version))
        (sha256
         (base32
-         "1azq0wjjy6n5xc721gjz6afm43ajz15b4p34vgsdjzwg9qn1vrs1"))
+         "1dqa03hb42kbqfg15ksijdkyf9pr54gcl3in4mzjkld5sdi8ncds"))
        (modules '((guix build utils)))
        (snippet
-        '(begin
-           (delete-file-recursively "src/boost")
-           #t))))
+        '(delete-file-recursively "src/boost"))))
     (properties `((upstream-name . "mzR")))
     (build-system r-build-system)
     (arguments
@@ -4473,12 +4534,9 @@ specific parser.")
                (("\\ARCH_OBJS=" line)
                 (string-append line
                                "\nBOOST_LIBS=-lboost_system -lboost_regex \
--lboost_iostreams -lboost_thread -lboost_filesystem -lboost_chrono\n")))
-             #t)))))
+-lboost_iostreams -lboost_thread -lboost_filesystem -lboost_chrono\n"))))))))
     (inputs
-     (list ;; Our default boost package won't work here, unfortunately, even with
-           ;; mzR version 2.28.0.
-           boost-for-mysql ; use this instead of the bundled boost sources
+     (list boost ; use this instead of the bundled boost sources
            zlib))
     (propagated-inputs
      (list r-biobase
@@ -4486,8 +4544,7 @@ specific parser.")
            r-ncdf4
            r-protgenerics
            r-rcpp
-           r-rhdf5lib
-           r-zlibbioc))
+           r-rhdf5lib))
     (native-inputs
      (list r-knitr))
     (home-page "https://github.com/sneumann/mzR/")
@@ -4504,14 +4561,14 @@ previously been used in XCMS.")
 (define-public r-organismdbi
   (package
     (name "r-organismdbi")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "OrganismDbi" version))
        (sha256
         (base32
-         "0zp6x2iqhn9s3xp07yilnr6hn73acvkdai5xip4iiwjdlnfffj83"))))
+         "1xklaiyd4mv9sf9211flq1s68fhdn53y2i4l1k2ib39a4l6y9cyr"))))
     (properties `((upstream-name . "OrganismDbi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4536,14 +4593,14 @@ the fact that each of these packages implements a select methods.")
 (define-public r-pcamethods
   (package
     (name "r-pcamethods")
-    (version "1.86.0")
+    (version "1.88.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "pcaMethods" version))
        (sha256
         (base32
-         "1fj2v6sna4lbw7ar9h93y2g4pzylqqp7760ih425gcai7s19xdrg"))))
+         "1087sl7y707zld7zpf3ly51gnmdp93vn90dwa5440v7qawvg2h9b"))))
     (properties `((upstream-name . "pcaMethods")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4605,14 +4662,14 @@ chromosome.  Both tumor-normal paired and tumor-only analyses are supported.")
 (define-public r-protgenerics
   (package
     (name "r-protgenerics")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ProtGenerics" version))
        (sha256
         (base32
-         "0x53pk7h47gjza1q5pz7jb1qqhwa9z2rr5fr61qc92zl3mqk57m0"))))
+         "04hcgj4q8dbzp1a29rbww2bxxrg679pgys3m09p0ydkpsx76rq05"))))
     (properties `((upstream-name . "ProtGenerics")))
     (build-system r-build-system)
     (home-page "https://github.com/lgatto/ProtGenerics")
@@ -4625,14 +4682,14 @@ proteomics packages.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "0k2p1lwdvix4n742a97lv988rx5kg8cvcmzgyzj0538n1nz0lxk0"))))
+         "0ph089vxla49sng0pdwiyh9rpk9i96cbsx5q2jn46jj4x51ijc7y"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4647,13 +4704,13 @@ the graph algorithms contained in the Boost library.")
 (define-public r-rcas
   (package
     (name "r-rcas")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "RCAS" version))
               (sha256
                (base32
-                "02zwz7c8ljmdcfxj54xns0a31sj616x63q63wxhxa1nb4dhgmvk7"))))
+                "05sj2ab7bxgf41gkmjaskhqm0198xlir1sw3f73x8rjg14rssmqf"))))
     (properties `((upstream-name . "RCAS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4697,14 +4754,14 @@ library implementing most of the pipeline's features.")
 (define-public r-regioner
   (package
     (name "r-regioner")
-    (version "1.26.1")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "regioneR" version))
        (sha256
         (base32
-         "0k500fdmv5l0v7b9pj73bjk3h9k261mfqi6vl52khlw0fafn9b6p"))))
+         "11whi2v211xiz9s7cjl14d8vavlry2fmhvx12rma25wkjmhrpa3f"))))
     (properties `((upstream-name . "regioneR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4728,14 +4785,14 @@ region sets and other genomic features.")
 (define-public r-reportingtools
   (package
     (name "r-reportingtools")
-    (version "2.34.0")
+    (version "2.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReportingTools" version))
        (sha256
         (base32
-         "06kwf87h84xgswkrm7brmgr9aj1nf6cxp24hrfymkzq2pha5y5j7"))))
+         "0r8cdqzfh1jxkghhk3j8x3y9kkmdyg9ibfhsic15jqkmp1im6khh"))))
     (properties
      `((upstream-name . "ReportingTools")))
     (build-system r-build-system)
@@ -4778,13 +4835,13 @@ browser.")
 (define-public r-rhdf5
   (package
     (name "r-rhdf5")
-    (version "2.38.1")
+    (version "2.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rhdf5" version))
               (sha256
                (base32
-                "1mlwp7bblhbpmd90sxj02zpq1q3fyg8v7ankyjb1y284xaymp02y"))))
+                "00cp90mnb8p83jiflm6x4x0qf4p7gvgh47jk9jry6j3qyvfqaiff"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-rhdf5filters r-rhdf5lib))
@@ -4805,14 +4862,14 @@ the available RAM.")
 (define-public r-rhdf5filters
   (package
     (name "r-rhdf5filters")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rhdf5filters" version))
        (sha256
         (base32
-         "05b015pyp3g1crmm2d3ldsa7r5w0khmf87qbl4fv16r6pdggha78"))))
+         "1ipg0v8nqz1imj63scqmpiswcxbl4ankg3knfq4p06ic6ypbbmvs"))))
     (properties `((upstream-name . "rhdf5filters")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4831,13 +4888,13 @@ HDF5 datasets.")
 (define-public r-rsamtools
   (package
     (name "r-rsamtools")
-    (version "2.10.0")
+    (version "2.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Rsamtools" version))
               (sha256
                (base32
-                "0v6b3j45ivd9f04fpfs1vjwby5pi30mf5683bjxim01vi2krj9yh"))))
+                "1wll703if12qrn0d11ljwf7rqhs4lb27fzyyz1hqwvzn3v361s10"))))
     (properties
      `((upstream-name . "Rsamtools")))
     (build-system r-build-system)
@@ -4896,13 +4953,13 @@ tab-delimited (tabix) files.")
 (define-public r-rtracklayer
   (package
     (name "r-rtracklayer")
-    (version "1.54.0")
+    (version "1.56.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rtracklayer" version))
               (sha256
                (base32
-                "11bh9khra2qdmicppi6ya43kf8f1z13ak92vkl6nr5f20k54cphc"))))
+                "1d9sak1xrrkcvj0q3vnp6w2k0nx2k2ajhsbq0dyb4nhcghp5w8fd"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -4975,13 +5032,13 @@ differential expression analysis, RNAseq data and related problems.")
 (define-public r-scannotatr
   (package
     (name "r-scannotatr")
-    (version "1.0.0")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scAnnotatR" version))
        (sha256
-        (base32 "08jq04ckjw8a5y753almc5bl8vnn4j6qp2zb7bb9w3ql3ddy7b21"))))
+        (base32 "067q57kabhqd1z8l3d91fw74aaw89nb48gm6fll4hv00nqza3n5b"))))
     (properties `((upstream-name . "scAnnotatR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5012,13 +5069,13 @@ cell types based on specific research needs.")
 (define-public r-scdblfinder
   (package
     (name "r-scdblfinder")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scDblFinder" version))
        (sha256
-        (base32 "0wzmmcsnjybgzbc5rn4i72n26j9n59dfy1zg8ij0q8p4276jplsd"))))
+        (base32 "0y14dvdm16b3bvlrnz03adfylm1kj6jrp2fwciyldij2lfal90y0"))))
     (properties `((upstream-name . "scDblFinder")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5028,9 +5085,14 @@ cell types based on specific research needs.")
            r-biocsingular
            r-bluster
            r-delayedarray
+           r-genomeinfodb
+           r-genomicranges
            r-igraph
+           r-iranges
            r-mass
            r-matrix
+           r-rsamtools
+           r-rtracklayer
            r-s4vectors
            r-scater
            r-scran
@@ -5049,17 +5111,59 @@ includes methods formerly found in the scran package, and the new fast and
 comprehensive scDblFinder method.")
     (license license:gpl3)))
 
+(define-public r-scmap
+  (package
+    (name "r-scmap")
+    (version "1.18.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (bioconductor-uri "scmap" version))
+       (sha256
+        (base32 "0pfwaa9pgml11b84rpf7afdkmg8kxb4srgpc56571vaz388xrv7l"))))
+    (properties `((upstream-name . "scmap")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-biobase
+           r-biocgenerics
+           r-dplyr
+           r-e1071
+           r-ggplot2
+           r-googlevis
+           r-matrixstats
+           r-proxy
+           r-randomforest
+           r-rcpp
+           r-rcpparmadillo
+           r-reshape2
+           r-s4vectors
+           r-singlecellexperiment
+           r-summarizedexperiment))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/hemberg-lab/scmap")
+    (synopsis "Tool for unsupervised projection of single cell RNA-seq data")
+    (description
+     "@dfn{Single-cell RNA-seq} (scRNA-seq) is widely used to investigate the
+composition of complex tissues since the technology allows researchers to
+define cell-types using unsupervised clustering of the transcriptome.
+However, due to differences in experimental methods and computational
+analyses, it is often challenging to directly compare the cells identified in
+two different experiments.  @code{scmap} is a method for projecting cells from
+a scRNA-seq experiment onto the cell-types or individual cells identified in a
+different experiment.")
+    (license license:gpl3)))
+
 (define-public r-seqlogo
   (package
     (name "r-seqlogo")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqLogo" version))
        (sha256
         (base32
-         "013hwj2lp29nqa8mkvm25aliarg0k725crg4cpsbj0iiskyrs6rl"))))
+         "1lk3238m17acmd6lgjjbpscyxw8fm63wv34kbbr478wcih1wbwxr"))))
     (properties `((upstream-name . "seqLogo")))
     (build-system r-build-system)
     (native-inputs
@@ -5075,13 +5179,13 @@ Stephens (1990).")
 (define-public r-seqpattern
   (package
     (name "r-seqpattern")
-    (version "1.26.0")
+    (version "1.28.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "seqPattern" version))
               (sha256
                (base32
-                "1mik575qaxw9h9qyjn971207pfgbc8p1mx60jrb20jbrrihgg2na"))))
+                "0nrrlr1nl9zxmp88qq8jn7wgmda6jh0xvp4nph94w4nwjsyb7xqn"))))
     (properties
      `((upstream-name . "seqPattern")))
     (build-system r-build-system)
@@ -5098,14 +5202,14 @@ reference point and sorted by a user defined feature.")
 (define-public r-shortread
   (package
     (name "r-shortread")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ShortRead" version))
        (sha256
         (base32
-         "1p17v15wd3v6w9ligpjjk28vy8k2ql57y2hhm8y6vnv9y3nagjsx"))))
+         "0303198b4v2wjah9kc829kn01030996l6di4jpf8q5ccd212rjhq"))))
     (properties `((upstream-name . "ShortRead")))
     (build-system r-build-system)
     (inputs
@@ -5141,14 +5245,14 @@ ungapped alignment formats.")
 (define-public r-simplifyenrichment
   (package
     (name "r-simplifyenrichment")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "simplifyEnrichment" version))
        (sha256
         (base32
-         "05d9yjd8s7q1q78qmnx5xfrz9ppswc2cpfmjj47d338w783lwk98"))))
+         "1g3kfa17p60jkk4l34vc5hdq83w082qsxbjvpqw7r9rdd8d79z2q"))))
     (properties
      `((upstream-name . "simplifyEnrichment")))
     (build-system r-build-system)
@@ -5158,9 +5262,11 @@ ungapped alignment formats.")
            r-circlize
            r-clue
            r-cluster
+           r-colorspace
            r-complexheatmap
            r-digest
            r-getoptlong
+           r-globaloptions
            r-go-db
            r-gosemsim
            r-matrix
@@ -5180,13 +5286,13 @@ and comparing the clusterings.")
 (define-public r-transcriptr
   (package
     (name "r-transcriptr")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "transcriptR" version))
        (sha256
-        (base32 "1p5l2z3szx3qh02x7r81ajl7yc5wqsri6q6pzw83livmalcli5yy"))))
+        (base32 "1zc6aasd5nzwl9jxr0rdriiq85adqdbfi5b9m3jyf69pa71sgy03"))))
     (properties `((upstream-name . "transcriptR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5230,14 +5336,14 @@ able to deal also with novel and case specific events.")
 (define-public r-trajectoryutils
   (package
     (name "r-trajectoryutils")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TrajectoryUtils" version))
        (sha256
         (base32
-         "0pzm1h69bg04a2v09r8c6pb3pix6f3n5dylvbv7wsp574qfaqyd1"))))
+         "07hcr3zplxlzlwc13wh9006m5kaqm57cm1b2x74bpp857f2q93dj"))))
     (properties
      `((upstream-name . "TrajectoryUtils")))
     (build-system r-build-system)
@@ -5257,13 +5363,13 @@ structures to hold pseudotime inference results.")
 (define-public r-slingshot
   (package
    (name "r-slingshot")
-   (version "2.2.1")
+   (version "2.4.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "slingshot" version))
             (sha256
              (base32
-              "10kjpmckhzjf41yfhzg7c8idqa9cxz33r4rza6rwihnqnw1liff3"))))
+              "0xapi66l5z2qdqns3fcjqcjal6npqj7rxra60lwjvbrq49pq69p2"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-igraph
@@ -5289,13 +5395,13 @@ graph construction.")
 (define-public r-stager
   (package
     (name "r-stager")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "stageR" version))
        (sha256
-        (base32 "0vpx0v04hgkhzi0bm7ipnb9xr37n5wvnnr45lljgni8pwabfkf6y"))))
+        (base32 "0ns3ih6l4na6irshrc5iy4d9qf7hrnqq3ndnlcjb2i1cn38l2w9y"))))
     (properties `((upstream-name . "stageR")))
     (build-system r-build-system)
     (propagated-inputs (list r-summarizedexperiment))
@@ -5312,13 +5418,13 @@ Biology at
 (define-public r-stringdb
   (package
     (name "r-stringdb")
-    (version "2.6.5")
+    (version "2.8.4")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "STRINGdb" version))
        (sha256
-        (base32 "0n2r2zc2sx1a2a8wqqxz6z7i4ynaj18iwbwgif7469n13agji5mv"))))
+        (base32 "1jn6080v6097zpqsr4gfbx31gqqdhpzjrk63avk3v3xwawmf2379"))))
     (properties `((upstream-name . "STRINGdb")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5345,13 +5451,13 @@ that integrates the various evidences.")
 (define-public r-structuralvariantannotation
   (package
     (name "r-structuralvariantannotation")
-    (version "1.10.1")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "StructuralVariantAnnotation" version))
        (sha256
-        (base32 "009l27kb9gvwwf57dwxfribhfhvn4z5pw8yc847l6pkbzqggx678"))))
+        (base32 "0f3x74ic3blg8nm5xlv79k0n8j3fpl98mmhfanqfzmdl0g3j6wx6"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-assertthat
@@ -5382,13 +5488,13 @@ involving two separate genomic loci encoded as GRanges objects.")
 (define-public r-summarizedexperiment
   (package
     (name "r-summarizedexperiment")
-    (version "1.24.0")
+    (version "1.26.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SummarizedExperiment" version))
               (sha256
                (base32
-                "0qpnx2aii9vs7fcp0ax5j77ysbhi4qhjhm35vnygs3isbrjn925a"))))
+                "02vlqzmslyijs09jl0gdjxqjjnnl4yqbqqqlb4vb7nr0fspmyz39"))))
     (properties
      `((upstream-name . "SummarizedExperiment")))
     (build-system r-build-system)
@@ -5416,14 +5522,14 @@ samples.")
 (define-public r-sva
   (package
     (name "r-sva")
-    (version "3.42.0")
+    (version "3.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "sva" version))
        (sha256
         (base32
-         "0clzid9di2qfgc5bvnqx312k3inj1lc599ckqkllvr894wxb7mdj"))))
+         "0ka259rn0la0hjslj7w24q1dyyh79h84nw6mxp7armqbfjb207a4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-edger
@@ -5447,14 +5553,14 @@ unmodeled, or latent sources of noise.")
 (define-public r-systempiper
   (package
     (name "r-systempiper")
-    (version "2.0.8")
+    (version "2.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "systemPipeR" version))
        (sha256
         (base32
-         "0ajlw9yg6fha76rkkmsk5niq99s33k9437bkgi9whgh3pa6bkab2"))))
+         "1yybbff29gwv6rm0nw4yjw73bbl5prfj8gj4zky917smjfd459im"))))
     (properties `((upstream-name . "systemPipeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5490,13 +5596,13 @@ annotation infrastructure.")
 (define-public r-topgo
   (package
     (name "r-topgo")
-    (version "2.46.0")
+    (version "2.48.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "topGO" version))
               (sha256
                (base32
-                "01vykf8bzwm2k7cfj09r6il6qaycjy10wpaxbn13f21p66r5nlm2"))))
+                "125r42ymk1irjmwk4sywjkcshs71s26p3zsvryfdvf56k5w162v6"))))
     (properties
      `((upstream-name . "topGO")))
     (build-system r-build-system)
@@ -5523,13 +5629,13 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-tximport
   (package
     (name "r-tximport")
-    (version "1.22.0")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tximport" version))
               (sha256
                (base32
-                "0w6pr7s9j8l4fpn3przbfrsyxvzxc3ficgsychvhq3bami9np8g4"))))
+                "1cnra82pvwz79a1hkw0phc6aa3v43r5p4nx8xyx5wzmkd7rjkc8x"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -5580,13 +5686,13 @@ R, enabling interactive analysis and visualization of genome-scale data.")
 (define-public r-variantannotation
   (package
     (name "r-variantannotation")
-    (version "1.40.0")
+    (version "1.42.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "VariantAnnotation" version))
               (sha256
                (base32
-                "1r9kayp0hxcwls08lv2fh0cmf9ks0lqx3k31c1zn4asw4dyqpgva"))))
+                "12d5hkx6pby6l2asyg4jp4jb2x17ybwhqd55rl64h37mwcndbdg1"))))
     (properties
      `((upstream-name . "VariantAnnotation")))
     (propagated-inputs
@@ -5618,14 +5724,14 @@ coding changes and predict coding outcomes.")
 (define-public r-vsn
   (package
     (name "r-vsn")
-    (version "3.62.0")
+    (version "3.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "vsn" version))
        (sha256
         (base32
-         "03p2wdjbjnrn1ddyz0fbn04mdxpsmv83qhh3apj6azshl0bs1j2x"))))
+         "1ja7vdjvgx671l57f9fzfn4vc6q7xzfmqs4krg2rdyfaaf531gqf"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-affy r-biobase r-ggplot2 r-lattice r-limma))
@@ -5687,13 +5793,13 @@ inference.")
 (define-public r-xina
   (package
     (name "r-xina")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "XINA" version))
        (sha256
-        (base32 "14j1rn3p7i0rlqkbbg0a6pyhb97ifzvsbw6vfxw9pna7zv7rbhsp"))))
+        (base32 "03gf7mqpnwx12kny9fsaskgrw83b0wi2cf1j4dbq46pfxjx34v1g"))))
     (properties `((upstream-name . "XINA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5723,13 +5829,13 @@ molecular functions, respectively, and produces intuitive graphical outputs.")
 (define-public r-xmapbridge
   (package
     (name "r-xmapbridge")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "xmapbridge" version))
        (sha256
-        (base32 "1zsqhisbq6f9qgw9f0a6ixxh635h3qm17117yfns5nnfw73ndlgi"))))
+        (base32 "1n3nxc4jwxf5z32i70sza52nyk29adhp8vc3hac7r5b8mbi6gg10"))))
     (properties `((upstream-name . "xmapbridge")))
     (build-system r-build-system)
     (home-page "https://git.bioconductor.org/packages/xmapbridge")
@@ -5750,13 +5856,13 @@ describing each of the graphs.")
 (define-public r-xvector
   (package
     (name "r-xvector")
-    (version "0.34.0")
+    (version "0.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "XVector" version))
               (sha256
                (base32
-                "07r4qgmnifw9jk2srjg0cvl310j0f9y35jrg0zqhlvhmyhg6n2c0"))))
+                "1f3sbqy279gb9k13l73j00ixywa1havlqy81zx766r1xkz15nvhk"))))
     (properties
      `((upstream-name . "XVector")))
     (build-system r-build-system)
@@ -5784,13 +5890,13 @@ describing each of the graphs.")
 (define-public r-zlibbioc
   (package
     (name "r-zlibbioc")
-    (version "1.40.0")
+    (version "1.42.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "zlibbioc" version))
               (sha256
                (base32
-                "0a0dl7z58zxdj6938zbxixphgljj1giylk1nd05bb7qsccmp0xhj"))))
+                "0w0y9jixdk6akmasn55g9g0nhlh93hbca5bwx5w1fypnvqrqpxzv"))))
     (properties
      `((upstream-name . "zlibbioc")))
     (build-system r-build-system)
@@ -5803,13 +5909,13 @@ libraries for systems that do not have these available via other means.")
 (define-public r-zellkonverter
   (package
     (name "r-zellkonverter")
-    (version "1.4.0")
+    (version "1.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zellkonverter" version))
        (sha256
-        (base32 "1ihp2f23lpdfgf3qliy22vrq8czm353hyhqf74r5r712190k6pgg"))))
+        (base32 "1w3qi35vk289cpky1pb0wgg1hr55s5kdw7np98i9c1vmwi3gvwr7"))))
     (properties `((upstream-name . "zellkonverter")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5835,14 +5941,14 @@ saving AnnData objects to disk.")
 (define-public r-geneplotter
   (package
     (name "r-geneplotter")
-    (version "1.72.0")
+    (version "1.74.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geneplotter" version))
        (sha256
         (base32
-         "1b7ngp9l00vrymx3d3nsda546s7p4ifr90idn3x2v4ilf38rfhp8"))))
+         "13230mzrdralnvf9jp032s16a8mk3kx5476nnvpa4pvcgp1i1ijc"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotate
@@ -5860,14 +5966,14 @@ saving AnnData objects to disk.")
 (define-public r-oligoclasses
   (package
     (name "r-oligoclasses")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligoClasses" version))
        (sha256
         (base32
-         "1ia2f19swiwb0552nfwkai4gl0av07cj75b6jwiviqa1bli09264"))))
+         "1m4x50gl1fm5waa531v7ml0q229q65qn9cgiwnvjg721fvra7mdk"))))
     (properties `((upstream-name . "oligoClasses")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5895,14 +6001,14 @@ packages.")
 (define-public r-oligo
   (package
     (name "r-oligo")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "oligo" version))
        (sha256
         (base32
-         "1cmnnq0d5xsjsx8c8n8wcl6l9d31sbglb8yrsibykcvnhw15fsf6"))))
+         "0y7j96rafm9b85sxq2483i73685i3j67lk33fn8nfcav6lmsv5vy"))))
     (properties `((upstream-name . "oligo")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -5931,14 +6037,14 @@ Affymetrix (CEL files) and NimbleGen arrays (XYS files).")
 (define-public r-qvalue
   (package
     (name "r-qvalue")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "qvalue" version))
        (sha256
         (base32
-         "1mn2qmqn89lfsx7rg54d1lwz45bfx0b91q6ahf43a1yzrrhwn138"))))
+         "0cvhm5cldcnnxwa293dig1pj9lvj2hnz9zh4gfr25sw0xlcjzmyw"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ggplot2 r-reshape2))
@@ -5985,13 +6091,13 @@ integration with @code{Rcpp}.")
 (define-public r-apeglm
   (package
    (name "r-apeglm")
-   (version "1.16.0")
+   (version "1.18.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "apeglm" version))
             (sha256
              (base32
-              "11w4vyc1sllmm5lh42krhidazid78n4s3lhikpy9kk2l57jmifbr"))))
+              "1ppwk4g66x46hpqsfsvhl12398d1srqr47nmp0y2gz212kff0rby"))))
    (properties `((upstream-name . "apeglm")))
    (build-system r-build-system)
    (propagated-inputs
@@ -6012,13 +6118,13 @@ posterior for individual coefficients.")
 (define-public r-greylistchip
   (package
    (name "r-greylistchip")
-   (version "1.26.0")
+   (version "1.28.1")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "GreyListChIP" version))
             (sha256
              (base32
-              "1h7h27q6l9d8j0shklyrh135zrwx56v4zzmm21cj1b7dvmwvpbcv"))))
+              "0w52vwvjarql19bsv40b80yn701qx8c9d0clsjhj85wmzj2p6dhg"))))
    (properties `((upstream-name . "GreyListChIP")))
    (build-system r-build-system)
    (propagated-inputs
@@ -6039,14 +6145,14 @@ signal in the input, that lead to spurious peaks during peak calling.")
 (define-public r-diffbind
   (package
     (name "r-diffbind")
-    (version "3.4.11")
+    (version "3.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DiffBind" version))
        (sha256
         (base32
-         "1xprj3x3s3yh6fwsdcl4zgfbhn640422x1lhhrmvdr836jr8sxcj"))))
+         "0izlk8vmmal4dj0bjxhgzr25arfa9zgdv06rm70w7ylr0gl84pzr"))))
     (properties `((upstream-name . "DiffBind")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6117,13 +6223,13 @@ processing to visualization and annotation.")
 (define-public r-mbkmeans
   (package
     (name "r-mbkmeans")
-    (version "1.10.0")
+    (version "1.12.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "mbkmeans" version))
               (sha256
                (base32
-                "03hpj218s8fynmk1s50s0rinhsljikxdrff06yc8ysbyc6hyfb4k"))))
+                "1f5krzlyqljz763vkp1a50danjn78xhn35s8qqdvzrmwyx0fzphg"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -6149,14 +6255,14 @@ large datasets, including support for on-disk data representation.")
 (define-public r-multtest
   (package
     (name "r-multtest")
-    (version "2.50.0")
+    (version "2.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "multtest" version))
        (sha256
         (base32
-         "03z71r7g318nwwgiz0k8qwbhghw1hhdhh1an4qnb0nc62c5x9kns"))))
+         "037wcmwk1wvhjxgmlvnk289pkwishi1753ajkmy9x14xlmldix82"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-survival r-biocgenerics r-biobase r-mass))
@@ -6184,13 +6290,13 @@ expressed genes in DNA microarray experiments.")
 (define-public r-graph
   (package
     (name "r-graph")
-    (version "1.72.0")
+    (version "1.74.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "graph" version))
               (sha256
                (base32
-                "0x31lz3qimxmng6w99xnqazaj943d94b04nbziad4jfv7c1bc2h0"))))
+                "1b8hrjwjg82kicls1496fxfzv75xjvq2k6r9apzsd3qlbyg3ilg4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics))
@@ -6277,14 +6383,14 @@ determining dependencies between variables, code improvement suggestions.")
 (define-public r-chippeakanno
   (package
     (name "r-chippeakanno")
-    (version "3.28.1")
+    (version "3.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPpeakAnno" version))
        (sha256
         (base32
-         "0v2qz3rp5lmj3s1ziahjqym6cjlh4wdvf050k1x6dx8404jhi8kw"))))
+         "1ch636j3zd6hcfnl455vjs36wffrdhwzyvkbikcwjg7idiknjdkf"))))
     (properties `((upstream-name . "ChIPpeakAnno")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6331,13 +6437,13 @@ enrichedGO (addGeneIDs).")
 (define-public r-matrixgenerics
   (package
    (name "r-matrixgenerics")
-   (version "1.6.0")
+   (version "1.8.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "MatrixGenerics" version))
             (sha256
              (base32
-              "1s75p8rrmj24r0vcbaiyw8xg8y84j388mv6iawai7pypfcl8s1z3"))))
+              "0s7s39v9lqniirjgp8lbmffw0c8rsp6bndgzy1zlyh5vivfih0f5"))))
    (properties
     `((upstream-name . "MatrixGenerics")))
    (build-system r-build-system)
@@ -6358,12 +6464,12 @@ incompatibilities.")
 (define-public r-marray
   (package
     (name "r-marray")
-    (version "1.72.0")
+    (version "1.74.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "marray" version))
               (sha256
-               (base32 "1la805y8j522vpiazm1z6wpq4ibia9bib5fpiia5mxmpzmqg6gzz"))))
+               (base32 "0awfz0akz3sylyw1jxhxgadv1rqdzvy9v11933yxkl9a8m9ngm8i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-limma))
@@ -6377,12 +6483,12 @@ normalization and quality checking.")
 (define-public r-cghbase
   (package
    (name "r-cghbase")
-   (version "1.54.0")
+   (version "1.56.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHbase" version))
             (sha256
-             (base32 "1kfxw126bddfy67cmf8dca9qq4bg7fkxjf8iaikplhvs5hl7bp4d"))))
+             (base32 "1q8yy60r4g5nyv2gbfdgk192xd73c0rrjr668d5616ddb7sx8wcr"))))
    (properties `((upstream-name . "CGHbase")))
    (build-system r-build-system)
    (propagated-inputs
@@ -6396,12 +6502,12 @@ the @code{arrayCGH} packages.")
 (define-public r-cghcall
   (package
    (name "r-cghcall")
-   (version "2.56.0")
+   (version "2.58.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "CGHcall" version))
             (sha256
-             (base32 "1r4y8zakgmdbnpwgp14kwh4iwqgqcmjq2yg4nc7j37p09bw1c8zr"))))
+             (base32 "1qpsibp4gb09sn6fkwwrdjkh3a28lqfbk18c6fvn4m386j96ps65"))))
    (properties `((upstream-name . "CGHcall")))
    (build-system r-build-system)
    (propagated-inputs
@@ -6415,12 +6521,12 @@ the @code{arrayCGH} packages.")
 (define-public r-qdnaseq
   (package
     (name "r-qdnaseq")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "QDNAseq" version))
               (sha256
-               (base32 "1sza9br8agpdz1k9fn5wisir44sj8v0rk4wbx35d2c2kp9q70pqj"))))
+               (base32 "0s360s72lfn9vjml88gg1m40n61s0dc66ilzgfjdcp65djdxxfvm"))))
     (properties `((upstream-name . "QDNAseq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6447,14 +6553,14 @@ respectively.")
 (define-public r-bayseq
   (package
     (name "r-bayseq")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "baySeq" version))
        (sha256
         (base32
-         "1zgxwb287ccz4wqsjxmffknnzziv12l4yrw7df912dxz6yccvd8r"))))
+         "1yqykndyv32s2rk7x86qf410qr0pigc8z4gdkl8vhj4dgyr47n2j"))))
     (properties `((upstream-name . "baySeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6471,14 +6577,14 @@ more complex hypotheses) via empirical Bayesian methods.")
 (define-public r-chipcomp
   (package
     (name "r-chipcomp")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPComp" version))
        (sha256
         (base32
-         "1wdy92y5l3wa3zgg59w69rd7gdwf4z1waa4i2cccniccz463p1xq"))))
+         "06q34y59gf1iz0rs7y5x8ndy1wa95j65rfmz37aym5c46ijqsnq0"))))
     (properties `((upstream-name . "ChIPComp")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6505,14 +6611,14 @@ datasets.")
 (define-public r-riboprofiling
   (package
     (name "r-riboprofiling")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RiboProfiling" version))
        (sha256
         (base32
-         "1szlzvm8ggjc40k4z2fxxa2h28g6j9wj2g5aw480v9hgyvvdw5lx"))))
+         "08m4rc530bkzcc43iwzg2fw9cjlf4wc2d8akv5vblsb42xdn8sqp"))))
     (properties `((upstream-name . "RiboProfiling")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6546,14 +6652,14 @@ assessment, principal component analysis on codon coverage.")
 (define-public r-riboseqr
   (package
     (name "r-riboseqr")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "riboSeqR" version))
        (sha256
         (base32
-         "0nnhjvjl4c9yyfzjf8kcj4yky5cdimicp7lz008sczy19jq4vjhd"))))
+         "1zs3y0icsqrndjp9wwqz3jxysvyc9pch45y49j6g9b5b2l44ma26"))))
     (properties `((upstream-name . "riboSeqR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6574,14 +6680,14 @@ parsing of genetic sequencing data from ribosome profiling experiments.")
 (define-public r-interactionset
   (package
     (name "r-interactionset")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "InteractionSet" version))
        (sha256
         (base32
-         "19m2mpby73zanai68rlqvzx9zccli4dz4kix93acrw9755xp3bsw"))))
+         "0qjimx25jvm8siq8hmlbf2z6mknzpbq945p06fsj826k57bpcsm5"))))
     (properties
      `((upstream-name . "InteractionSet")))
     (build-system r-build-system)
@@ -6608,14 +6714,14 @@ experiments.")
 (define-public r-genomicinteractions
   (package
     (name "r-genomicinteractions")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicInteractions" version))
        (sha256
         (base32
-         "090kxq5jn1jfr9fgbkvbjr5g4bcxzgsaal3gc9yx1n7pgmhccfmb"))))
+         "0aph1hja5vfprxs3jl4zd1inhvih6m3v1p3jkm6w7xpj3jzvmgbx"))))
     (properties
      `((upstream-name . "GenomicInteractions")))
     (build-system r-build-system)
@@ -6649,14 +6755,14 @@ information and producing various plots and statistics.")
 (define-public r-ctc
   (package
     (name "r-ctc")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ctc" version))
        (sha256
         (base32
-         "1yq5igwzcwfhxy49qf3pralpikiqq7sqr1cig8mkpjpaj5bbaayx"))))
+         "0c9pgp25dqx12fmi4cqm7xyxjmy6g7wv9vbljgdjghaij2lrc4pb"))))
     (build-system r-build-system)
     (propagated-inputs (list r-amap))
     (home-page "https://bioconductor.org/packages/ctc/")
@@ -6669,14 +6775,14 @@ trees and clusters to other programs.")
 (define-public r-goseq
   (package
     (name "r-goseq")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "goseq" version))
        (sha256
         (base32
-         "1psl9mqgx1d21kayaxvrxriw34fq30wnd57q5c1sk3p8iahg73g0"))))
+         "1w0rwzhqkvp2x7y5v0qcyjbss0p95gb1jrnx5sdkqginbvrmrd48"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -6695,14 +6801,14 @@ defined categories which are over/under represented in RNA-seq data.")
 (define-public r-glimma
   (package
     (name "r-glimma")
-    (version "2.4.0")
+    (version "2.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Glimma" version))
        (sha256
         (base32
-         "0qkbx9n2vb7kvb5f00csnbffy5bm7hhbdvkx2isgzi0wv0y59kx9"))))
+         "1k17ay09vhb2hakg1vrgvpp1zliavlj7cdkxaal162bc3v8pyvyz"))))
     (properties `((upstream-name . "Glimma")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6728,14 +6834,14 @@ information.")
 (define-public r-rots
   (package
     (name "r-rots")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROTS" version))
        (sha256
         (base32
-         "0qhy984y83a3nf4zw54rasw3vn932q4zb3gljifkw701jnrzqmki"))))
+         "021a578p8kcl5yd9myiy0h2qp10r30ggnip2kp6xs7dx8nzic96r"))))
     (properties `((upstream-name . "ROTS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6751,14 +6857,14 @@ in omics data.")
 (define-public r-plgem
   (package
     (name "r-plgem")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "plgem" version))
        (sha256
         (base32
-         "06w8xlw4j1fc9ipdgw55dvhp07f04icmhr20lqzwwhqd5pskrra3"))))
+         "07zxflxcay17hxjw3wh5kfdwl2x8537csb18p1qzmyrkvscnja77"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase r-mass))
@@ -6775,14 +6881,14 @@ genes or proteins in these datasets.")
 (define-public r-inspect
   (package
     (name "r-inspect")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "INSPEcT" version))
        (sha256
         (base32
-         "072kv5k3giyll1clzrg0anqhyl4qbi7cjnmkqz25zdl5bab9l7jk"))))
+         "0jx887vhxwd8zlqajr9czvn9nx88ryyxlnl58hxrlajjpcjkz9ax"))))
     (properties `((upstream-name . "INSPEcT")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6821,14 +6927,14 @@ modeling the rates that determines changes in mature mRNA levels.")
 (define-public r-dnabarcodes
   (package
     (name "r-dnabarcodes")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNABarcodes" version))
        (sha256
         (base32
-         "07yaz98r18mjny1ilmfnjxcra7xpklnd183pw0kasvsri01ccwxg"))))
+         "0n2qlvpcjhrxr3br27gz9vhwcpf7sn6g4xdjazvvi3gqcgk90xc6"))))
     (properties `((upstream-name . "DNABarcodes")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6848,14 +6954,14 @@ demultiplexed, i.e. assigned to their original reference barcode.")
 (define-public r-ruvseq
   (package
     (name "r-ruvseq")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RUVSeq" version))
        (sha256
         (base32
-         "1a19klscykdgsd7izcxyr45ml7g0gpdj65gvbaw124mal2p4zi9q"))))
+         "001h07b074hvj16bjdp9llb9psphw7r6kpwhq61bj4519y6lpg7x"))))
     (properties `((upstream-name . "RUVSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6873,14 +6979,14 @@ samples.")
 (define-public r-biocneighbors
   (package
     (name "r-biocneighbors")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocNeighbors" version))
        (sha256
         (base32
-         "04in8l6j7frgm0a5dzphazfhn9cm8w775z5yir712jxa37mh1agr"))))
+         "1a43hzmcpxviqa9723hkafr6gm358amfpqj9d56imclkkfkdz95x"))))
     (properties `((upstream-name . "BiocNeighbors")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6901,14 +7007,14 @@ achieved for all methods using the BiocParallel framework.")
 (define-public r-scaledmatrix
   (package
     (name "r-scaledmatrix")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ScaledMatrix" version))
        (sha256
         (base32
-         "0vz8441gl5gycy1ypybwhq97bnyvhhlg6gxpi1dsdy2c9b6d81kc"))))
+         "0p6065mbn77hphpjfchz3r3raspl127f11n39mwh9bih4zg375cl"))))
     (properties `((upstream-name . "ScaledMatrix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6927,14 +7033,14 @@ multiplication.")
 (define-public r-treeio
   (package
     (name "r-treeio")
-    (version "1.18.1")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "treeio" version))
        (sha256
         (base32
-         "19i8jhvycv57zbxhpn5gx5ymdiws64kc3nidc00xh1j9a8xkj1aq"))))
+         "1hc5m0b2qqxrh3z0inny2jizrpn9d4yn9pn3k1h18xb4ggyijyla"))))
     (properties `((upstream-name . "treeio")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6959,14 +7065,14 @@ platform for merging tree with associated data and converting file formats.")
 (define-public r-ggtree
   (package
     (name "r-ggtree")
-    (version "3.2.1")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggtree" version))
        (sha256
         (base32
-         "0qk39gdpy4kznjhmvi25y2spcdj2r1i6mv673vx8dzf66zfs20v8"))))
+         "033r748npv0l72yb9sk6lqnj0l7cd36ykf788145qv8ck5i2gyk4"))))
     (properties `((upstream-name . "ggtree")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6996,14 +7102,14 @@ data.")
 (define-public r-metapod
   (package
     (name "r-metapod")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "metapod" version))
        (sha256
         (base32
-         "1s8dfzpgbpxbn3jvx891gvw3jyn43nlxb73yv1vjn85brk9zbqpk"))))
+         "19g9c08alg4qqr710si465wlb5dy759m5d8wn91zwj24077dds7b"))))
     (properties `((upstream-name . "metapod")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7025,14 +7131,14 @@ missing values and weighting where appropriate.")
 (define-public r-biocsingular
   (package
     (name "r-biocsingular")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSingular" version))
        (sha256
         (base32
-         "0dkh6a23qymjcynppmpp3k1mzpfadv8dqyz410pxkqsxig4ldd4n"))))
+         "1sraycnn0jahpi8kni1y8ik00ga89fvwqjmbr8388968q22mvm3x"))))
     (properties `((upstream-name . "BiocSingular")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7060,14 +7166,14 @@ possible, parallelization is achieved using the BiocParallel framework.")
 (define-public r-destiny
   (package
     (name "r-destiny")
-    (version "3.8.1")
+    (version "3.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "destiny" version))
        (sha256
         (base32
-         "1f2mp2sxbf1zi61npj5rl5pl7z30rkj5953521iiv0w99mdfwhsc"))))
+         "1c85ky5ggdsi0ab1l4ipl85gc1kj1zv3wp08qrvslax3z0yw0ljy"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -7104,14 +7210,14 @@ maps.")
 (define-public r-savr
   (package
     (name "r-savr")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "savR" version))
        (sha256
         (base32
-         "0dwl94j5dm5ngn8lyyc4bd9ihd1nqincvq26najjn6lw0x55ciky"))))
+         "04zlf3lyr6vnpj80m6fd2is2f7302sxwih8nzzjnc4ss972jid2k"))))
     (properties `((upstream-name . "savR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7126,14 +7232,14 @@ Viewer (SAV) files, access data, and generate QC plots.")
 (define-public r-chipexoqual
   (package
     (name "r-chipexoqual")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChIPexoQual" version))
        (sha256
         (base32
-         "1hh3mhfcngyx7cpzns8mjqviy8vfzrvxpv6nyizflpfmsr39mxfk"))))
+         "1r4s8awvwwj1g33jpnzfxji23mfy0chkhi14i0ml5sh090xijpaz"))))
     (properties `((upstream-name . "ChIPexoQual")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7166,13 +7272,13 @@ sequencing data.")
 (define-public r-copynumber
   (package
     (name "r-copynumber")
-    (version "1.34.0")
+    (version "1.36.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "copynumber" version))
               (sha256
                (base32
-                "143ifvjkjz0392drm82xmpj1f8b5pc2dyyxyc9dkqmay8lf1n534"))))
+                "1gr8q9ri49x8qlmbsi6k6wcak1w9v48wr1qy7axc86brzx6z6mhd"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-s4vectors r-iranges r-genomicranges r-biocgenerics))
@@ -7186,14 +7292,14 @@ penalized least squares regression method.")
 (define-public r-dnacopy
   (package
     (name "r-dnacopy")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DNAcopy" version))
        (sha256
         (base32
-         "19ax431i97r49gh1232vf8mgmkvc6k26lnq44j3g10n6q01czswm"))))
+         "10bh4p8nbl84rfngsm3bi9w542m159kff95f8c2hvjcxv5yw7iwc"))))
     (properties `((upstream-name . "DNAcopy")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -7284,14 +7390,14 @@ and regression inferences from RNA-sequencing data.")
 (define-public r-ebseq
   (package
     (name "r-ebseq")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBSeq" version))
        (sha256
         (base32
-         "1p8i04v5h6mbc8zqbf3rifbwwylzzc1fqrkhh0a0mbcgq2nv7i9m"))))
+         "192xl9fwsh04w563yk33mfl303d1kqby2ssbqkckqsdr4jb7d57y"))))
     (properties `((upstream-name . "EBSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7306,13 +7412,13 @@ gene and isoform level using RNA-seq data")
 (define-public r-karyoploter
   (package
     (name "r-karyoploter")
-    (version "1.20.3")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "karyoploteR" version))
               (sha256
                (base32
-                "0bcc1ln7602lrbm9wckgyfd9slsqiljjmymj28rfpax1n8rbq44m"))))
+                "0hawq9wi3ikvlcdgnjfy5fiiwfq22zwx1p8xf5h4bpypp96pknsk"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -7344,14 +7450,14 @@ coordinates.")
 (define-public r-lpsymphony
   (package
     (name "r-lpsymphony")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lpsymphony" version))
        (sha256
         (base32
-         "1bv28b1fgcazv6j0xw4nn6wljs37qnkyahqy7anrwissdpryhjfs"))))
+         "0kc708ss5byzw8qh439mb4nq6hsfmz73gfamiznw3lv352brd33g"))))
     (build-system r-build-system)
     (inputs
      (list zlib))
@@ -7373,14 +7479,14 @@ to install interface to SYMPHONY.")
 (define-public r-ihw
   (package
     (name "r-ihw")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IHW" version))
        (sha256
         (base32
-         "0vgij5zyaw3fh7arkg4jy1mizsqzbkcsjl05mh3ng2bqh30kyqqx"))))
+         "1gsfy75dz7xh16z844llcmjnp0a0ridszmrbbv2bdaa43na5msmf"))))
     (properties `((upstream-name . "IHW")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7402,14 +7508,14 @@ independent of the p-value under the null hypothesis.")
 (define-public r-icobra
   (package
     (name "r-icobra")
-    (version "1.22.2")
+    (version "1.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iCOBRA" version))
        (sha256
         (base32
-         "1ln8l2cp6dqg6zv7s0qnmw5ii93v5sgp0b1nwswl52zdd8mivwxy"))))
+         "1gvra5bgsf6lvs4f2md3xx7xxsx4j8079c2nr8vz9lvy2sfyl6s9"))))
     (properties `((upstream-name . "iCOBRA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7417,6 +7523,7 @@ independent of the p-value under the null hypothesis.")
            r-dt
            r-ggplot2
            r-limma
+           r-markdown
            r-reshape2
            r-rocr
            r-scales
@@ -7438,14 +7545,14 @@ interactive exploration of results.")
 (define-public r-residualmatrix
   (package
     (name "r-residualmatrix")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ResidualMatrix" version))
        (sha256
         (base32
-         "0xsn4fm34a7xpkgmx3a1j2xzdaxf2hyla1062wqn04kw0k9y29vg"))))
+         "1pjr3gva0jwj2pgqr4k4nl1ir1153hhrk1d400r30w0di472hns4"))))
     (properties
      `((upstream-name . "ResidualMatrix")))
     (build-system r-build-system)
@@ -7467,14 +7574,14 @@ multiplication and calculation of row/column sums or means.")
 (define-public r-batchelor
   (package
     (name "r-batchelor")
-    (version "1.10.0")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "batchelor" version))
        (sha256
         (base32
-         "0axkic11bwjbw8apwxx6p51s7jvlwhq7xi1bdknn54k86axq84dr"))))
+         "1zyvjr9nwfh0cdqk4kwmr30yhh05picyab1hpnpn737xvn525jfi"))))
     (properties `((upstream-name . "batchelor")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7510,14 +7617,14 @@ the numbers of cells across batches.")
 (define-public r-mast
   (package
     (name "r-mast")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MAST" version))
        (sha256
         (base32
-         "14h6giny9lhzqjsx3h7gdhsm8wfwnvp5zsl4avrflip0jmsn45yy"))))
+         "1kmrqxcfzzcs8l33n9qn0vahc6wxq6ks3cjx95vg96maf2qzhzzi"))))
     (properties `((upstream-name . "MAST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7545,14 +7652,14 @@ single cell assay data.")
 (define-public r-monocle
   (package
     (name "r-monocle")
-    (version "2.22.0")
+    (version "2.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "monocle" version))
        (sha256
         (base32
-         "0wb2c1jf502lrfx3d0amb09fvhalrwxvpsp99jsab162v4hddg85"))))
+         "1fyqd7qhij2iyx9vdmgnx2qf0w3kwbkmg805539zrmxry8cwfldb"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -7561,13 +7668,13 @@ single cell assay data.")
            r-cluster
            r-combinat
            r-ddrtree
-           r-densityclust
            r-dplyr
            r-fastica
            r-ggplot2
            r-hsmmsinglecell
            r-igraph
            r-irlba
+           r-leidenbase
            r-limma
            r-mass
            r-matrix
@@ -7600,11 +7707,11 @@ qPCR data, but could be used with other types as well.")
     (license license:artistic2.0)))
 
 (define-public r-leidenbase
-  (let ((commit "430f22af6982cc7d2e6e77f6b0df47bc970dcbce")
+  (let ((commit "a11b8455fa3307d9e3ac4e3a5accddf3c83b9a96")
         (revision "1"))
     (package
       (name "r-leidenbase")
-      (version (git-version "0.1.3" revision commit))
+      (version (git-version "0.1.9" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -7614,7 +7721,7 @@ qPCR data, but could be used with other types as well.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0ylqsmdpv4xq6f6ldxvwkhk33a9i1jcgk60zvksk3iplykfzd6c0"))))
+           "1f54mycsffvzmblz5pzgs3v4jygnbvz0c9d3x710gw5mxkq2p84f"))))
       (properties `((upstream-name . "leidenbase")))
       (build-system r-build-system)
       (inputs
@@ -7730,14 +7837,14 @@ user-defined and/or data-driven sets of hypotheses.")
 (define-public r-noiseq
   (package
     (name "r-noiseq")
-    (version "2.38.0")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "NOISeq" version))
        (sha256
         (base32
-         "0mmvzf8y4gm84hgjdpf86b1y37237wp5mc3x1g6sdiz9qi8l356v"))))
+         "0ah6adlhv4254jkssinn2ik8n811hd1nw85bnzqk2kwhl49nrk27"))))
     (properties `((upstream-name . "NOISeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7756,14 +7863,14 @@ assumptions.")
 (define-public r-scdd
   (package
     (name "r-scdd")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scDD" version))
        (sha256
         (base32
-         "0gjdjkpkm9zc9hzzb6r2mknl4zyg7s2lgqppmzzhgcnvlmgvm5b5"))))
+         "0bjww338z5qf2g97kbh85h9kpagjr59ff9f4alm33h16xz5mb7k0"))))
     (properties `((upstream-name . "scDD")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7794,14 +7901,14 @@ distributions.")
 (define-public r-scone
   (package
     (name "r-scone")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scone" version))
        (sha256
         (base32
-         "1fqlwg195rzpwh35cj941vhmj2plzpn253skig6glr0z2sirr9r1"))))
+         "05id34n6min03ha1chg5mrvx399qm2mby9kxkaz5w8fbidp97851"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-aroma-light
@@ -7838,21 +7945,21 @@ high-throughput analyses.")
 (define-public r-geoquery
   (package
     (name "r-geoquery")
-    (version "2.62.2")
+    (version "2.64.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GEOquery" version))
        (sha256
         (base32
-         "1hncr0p54qdg82a771yjjm4w1k2myrc26jzvci3g37mq7bgv3mxw"))))
+         "1cvkvq2haz831qi8w0gd3ayvxfxsl0z5klhki4gkfi9xqdv1gi9x"))))
     (properties `((upstream-name . "GEOquery")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
+           r-curl
            r-data-table
            r-dplyr
-           r-httr
            r-limma
            r-magrittr
            r-r-utils
@@ -7873,14 +7980,14 @@ the bridge between GEO and BioConductor.")
 (define-public r-illuminaio
   (package
     (name "r-illuminaio")
-    (version "0.36.0")
+    (version "0.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "illuminaio" version))
        (sha256
         (base32
-         "0icsp610am5vrd8x2h9c450phn4vl9c5wnzqmkix5hkqzrykk34m"))))
+         "1xk057a9w4ps8xi8jyw8imkjcicfmzns8g92grn4af7yiip68h62"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-base64))
@@ -7894,14 +8001,14 @@ files, including IDAT.")
 (define-public r-siggenes
   (package
     (name "r-siggenes")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "siggenes" version))
        (sha256
         (base32
-         "1fymp5ci1nwkk5yfj7hli464xqvvlvzf2a5j0w3qkxly9hrymix9"))))
+         "0amjqm2c8p1vjzx109p7n81wbsbx8rljwn6mbkl7dpi834im9d7l"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase r-multtest r-scrime))
@@ -7918,14 +8025,14 @@ Bayes Analyses of Microarrays} (EBAM).")
 (define-public r-bumphunter
   (package
     (name "r-bumphunter")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bumphunter" version))
        (sha256
         (base32
-         "0d5cz9xy7vhcaj5n3h4cfiv08sn7wn83458525pdwvdzzm449xgv"))))
+         "0k92ps9chqsimbc7vsr8swg679zfv8nfn5zahbqq4nknhhy7hwxw"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -7952,14 +8059,14 @@ studies.")
 (define-public r-minfi
   (package
     (name "r-minfi")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "minfi" version))
        (sha256
         (base32
-         "0d5220nknwgi1020vhvf7408n5p80dmad66n85af5776qn84a6nx"))))
+         "0255z7w5i5k01w8wn7jkb37h3q7m7vg0szqgk76h330yydnmkrq6"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-beanplot
@@ -8003,14 +8110,14 @@ methylation arrays.")
 (define-public r-methylumi
   (package
     (name "r-methylumi")
-    (version "2.40.1")
+    (version "2.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "methylumi" version))
        (sha256
         (base32
-         "1lfcsv8k9c4ndfwlbdk3vd7fq58100bfijyxklna41zf8m8kkkka"))))
+         "0klkinq55lfj1d4z8gkrv98849079x1l5gd15habw7jq9xxvhjww"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotate
@@ -8050,14 +8157,14 @@ and Infinium HD arrays are also included.")
 (define-public r-lumi
   (package
     (name "r-lumi")
-    (version "2.46.0")
+    (version "2.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "lumi" version))
        (sha256
         (base32
-         "0v33p66vn4alhx2il9wwdvc9sqvgasgj0s2gk85gjc76ad0017in"))))
+         "06zmll5j1yymsm3byarhllrz4q1w5mzv267a9g6visn73wan8y9d"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-affy
@@ -8089,14 +8196,14 @@ especially Illumina Infinium methylation microarrays.")
 (define-public r-linnorm
   (package
     (name "r-linnorm")
-    (version "2.18.0")
+    (version "2.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Linnorm" version))
        (sha256
         (base32
-         "1bdnglznsfs1kdscqyjv595wiy09khcv9kxm4fmbnmksisqjz5qj"))))
+         "1002lllgns5klv3q2wsikkbypa2bafpka7a8mri0y5bfxncfr2zb"))))
     (properties `((upstream-name . "Linnorm")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8150,14 +8257,14 @@ evaluation of DEG analysis methods.")
 (define-public r-ioniser
   (package
     (name "r-ioniser")
-    (version "2.18.0")
+    (version "2.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "IONiseR" version))
        (sha256
         (base32
-         "1hdg446z5s616aaalzz49if1wp9nmzm2mbyva82m1vz8i7ih9m4h"))))
+         "0cgx1dcfh617l9vr4r3ky8w7f0snl0vpavfd9n1h5n68p0p42dwi"))))
     (properties `((upstream-name . "IONiseR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8241,13 +8348,13 @@ published results; and a routine for graphical display.")
 (define-public r-tradeseq
   (package
    (name "r-tradeseq")
-   (version "1.8.0")
+   (version "1.10.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "tradeSeq" version))
             (sha256
              (base32
-              "1s5anbb38gi5sfkxy19zpvkj8d0ij7m6cd0z4gmx4f5pf7pz0m3j"))))
+              "0v9nqxrwa69qhmyaicn2vvs8haha4kzs93iqim306331vadp9qm0"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-biobase
@@ -8310,14 +8417,14 @@ peak definition in combination with known profile characteristics.")
 (define-public r-varianttools
   (package
     (name "r-varianttools")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantTools" version))
        (sha256
         (base32
-         "0079dsgav4q03c4i0dhggc88iifd828n73kjv3sahim9akafdshl"))))
+         "18nxcamfgnw4n2ab0czxglw0sqc9wzdqzpjv43lcyyal23lzzsix"))))
     (properties `((upstream-name . "VariantTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8350,14 +8457,14 @@ gmapR.")
 (define-public r-heatplus
   (package
     (name "r-heatplus")
-    (version "3.2.0")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Heatplus" version))
        (sha256
         (base32
-         "0yrnjrbfn8vjzvp2742lyxdqca4s18h73j44qxw7ib95x3p4lndf"))))
+         "0b1mzxysmrqinp93p587apna8p0llmawblwj93icydqxxm2jkhb1"))))
     (properties `((upstream-name . "Heatplus")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8375,14 +8482,14 @@ information about samples and features can be added to the plot.")
 (define-public r-gosemsim
   (package
     (name "r-gosemsim")
-    (version "2.20.0")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOSemSim" version))
        (sha256
         (base32
-         "15qi69kkgah7g25bymk9q1xf16hp1rd040fglg0svnydylg2d0ab"))))
+         "1hp15pzd0m0g9f8kglyfsgjqxnvxcmm9022xnsrkzfvmj2yw14vd"))))
     (properties `((upstream-name . "GOSemSim")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8402,14 +8509,14 @@ sets of GO terms, gene products and gene clusters.")
 (define-public r-anota
   (package
     (name "r-anota")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "anota" version))
        (sha256
         (base32
-         "0agvcpb3lr9v55h53ywf662gpxayivxacv8dcm526cc8i8hdqa9f"))))
+         "1x75r5znl8jllqsgzpxsqj62ch11bpwhmyzmbjmb8sz8f8ww923c"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-multtest r-qvalue))
@@ -8432,14 +8539,14 @@ the data set is suitable for such analysis.")
 (define-public r-sigpathway
   (package
     (name "r-sigpathway")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "sigPathway" version))
         (sha256
           (base32
-            "1c46m1gbgiygcj8m65h8iwzk3fkp6nynd6rk1f5qdh7kw5ap28f9"))))
+            "1c2kwhbxgf66az7ssm2mab9n5x59zy4kxq8vblz5r9636xqaysif"))))
     (properties `((upstream-name . "sigPathway")))
     (build-system r-build-system)
     (home-page "https://www.pnas.org/cgi/doi/10.1073/pnas.0506577102")
@@ -8454,13 +8561,13 @@ phenotype of interest.")
 (define-public r-fcscan
   (package
     (name "r-fcscan")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fcScan" version))
        (sha256
-        (base32 "0b161ayq4m9xxfs0lgw632lgygzabz8gjl0n75050pa7qaazknvd"))))
+        (base32 "0yv7ifw0xxx1v9z8dxszv0cb72q3frd74dyxfbvrcs6x9y9v3jzp"))))
     (properties `((upstream-name . "fcScan")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8487,14 +8594,14 @@ presence of additional sites within the allowed window size.")
 (define-public r-fgsea
   (package
     (name "r-fgsea")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "fgsea" version))
        (sha256
         (base32
-         "10flcdm4b1kxnsvhl4k6mwkzb1vbai33k291j8nsrhj2cl5l8gm9"))))
+         "0innyggai6l4fpl4qrblzdc52vqw9jaszmip0yr1lv7rzwyl6mpg"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-bh
@@ -8519,14 +8626,14 @@ to multiple hypothesis correction.")
 (define-public r-dose
   (package
     (name "r-dose")
-    (version "3.20.1")
+    (version "3.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DOSE" version))
        (sha256
         (base32
-         "10kknaqz40pb6v0fcjzp12hfpi6k5kvlqnyxx1k3y0h0wdg8hs3n"))))
+         "11lg4ql0bi54p2wg3z1dw9rwqai37khgcqbs4cb7zf67ml8jadwp"))))
     (properties `((upstream-name . "DOSE")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8554,14 +8661,14 @@ data.")
 (define-public r-enrichplot
   (package
     (name "r-enrichplot")
-    (version "1.14.2")
+    (version "1.16.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "enrichplot" version))
        (sha256
         (base32
-         "1rjiqmc32c9gxckgrgbypxpp0m8y0kahvhzvjzymda25xp8zqjs2"))))
+         "17ln1wbkq8sp7jw0dpkccj5qcsl382sgd7zic04dk99z9ag3mh02"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-aplot
@@ -8592,14 +8699,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
 (define-public r-clusterprofiler
   (package
     (name "r-clusterprofiler")
-    (version "4.2.2")
+    (version "4.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "clusterProfiler" version))
        (sha256
         (base32
-         "1y8ay3fxvcc7a7yqvfc95jfn800ikvs56j17byyp6v08w2j00y76"))))
+         "03bg3agisrm4q10gg57dksvd1ws37if6a1gwcxaybb4c50zadm8p"))))
     (properties
      `((upstream-name . "clusterProfiler")))
     (build-system r-build-system)
@@ -8629,13 +8736,13 @@ profiles (GO and KEGG) of gene and gene clusters.")
 (define-public r-clusterexperiment
   (package
     (name "r-clusterexperiment")
-    (version "2.14.0")
+    (version "2.16.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "clusterExperiment" version))
               (sha256
                (base32
-                "0riray1f841d5fx6mbcki5xmqz21kg5q5l0qz4pkgg9c1d9f7mbc"))))
+                "1xd2kxmdg51hhj0zvz7pxmpdvb1sya7prsf9ny2wj2y8ivrqgn4f"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -8675,14 +8782,14 @@ expression data sets.")
 (define-public r-mlinterfaces
   (package
     (name "r-mlinterfaces")
-    (version "1.74.0")
+    (version "1.76.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MLInterfaces" version))
        (sha256
         (base32
-         "1nzy04fqwzb0ywiafgx3m3i2n1b0g4pcg8mlgh8yz5d3mmna4kag"))))
+         "179d19kxjipfkc40z15337x1vzqd7vz3gbmr2lw5w7x9l857ngs5"))))
     (properties `((upstream-name . "MLInterfaces")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8717,14 +8824,14 @@ data in R and Bioconductor containers.")
 (define-public r-annaffy
   (package
     (name "r-annaffy")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annaffy" version))
        (sha256
         (base32
-         "0crj37v571005brdd0ypfx2a7d1f829xxj2hahp2gy8aj9xm4s8l"))))
+         "1fbqknwbl4534h66xrhcryg9pavm9fkja47gqbsxf8bd5yhk5mgq"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -8749,14 +8856,14 @@ It allows searching of biological metadata using various criteria.")
 (define-public r-a4core
   (package
     (name "r-a4core")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Core" version))
        (sha256
         (base32
-         "074aa52y6c70417lxwrclk613gbs7zv3326g9ndbbzzs5pmnh1y0"))))
+         "1ky1lphq6bqxj6h12pg06cvs451fziqam8gd56wmpk6r5pbg4390"))))
     (properties `((upstream-name . "a4Core")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8773,14 +8880,14 @@ arrays.")
 (define-public r-a4classif
   (package
     (name "r-a4classif")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Classif" version))
        (sha256
         (base32
-         "0q50d41n7drj5c9x6njyvzr6bj7glmkp1vpyz6cpj97j2v9nikwb"))))
+         "1v61vgpqrf7bhk44n2gkxb8dm5d0rr8c9rd6fdcjs50nhij0lbiw"))))
     (properties `((upstream-name . "a4Classif")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8803,14 +8910,14 @@ Affymetrix arrays.")
 (define-public r-a4preproc
   (package
     (name "r-a4preproc")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Preproc" version))
        (sha256
         (base32
-         "1qzr54w1qys1ppd71i5b57503dijfnnbn516a2mfk5l9l7wr728d"))))
+         "098yzy7x5536bj76iavismdsdn7x6x07aw0j3knj6i9www9y8yz9"))))
     (properties `((upstream-name . "a4Preproc")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8827,14 +8934,14 @@ is used for preprocessing the arrays.")
 (define-public r-a4reporting
   (package
     (name "r-a4reporting")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Reporting" version))
        (sha256
         (base32
-         "1vyah71gm4ngsgy0y10cdxa9b1g810gqa5pbvb3krh5i6h35smwr"))))
+         "03sypayh187gqc6hykkqr1g0vb3zxc2c3xyp00jfbn12b35acnb0"))))
     (properties `((upstream-name . "a4Reporting")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8851,14 +8958,14 @@ provides reporting features.")
 (define-public r-a4base
   (package
     (name "r-a4base")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4Base" version))
        (sha256
         (base32
-         "0rddxnflvbc6z4sj2h8js8yfh0zhrrwj8fk00wicaqp4rkr5yaxy"))))
+         "15zqirz16gpks9f5d3d76h85b936za2jih74vfr55l5arqrrvvsn"))))
     (properties `((upstream-name . "a4Base")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8882,14 +8989,14 @@ Affymetrix arrays.")
 (define-public r-a4
   (package
     (name "r-a4")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "a4" version))
        (sha256
         (base32
-         "0mkgim93441zxhn4wmbin9ydl94srsawis0xwx479l0byj88n07m"))))
+         "1zs8fs6mdd7fhsmx4k824mid0jk400cm6dwfhl8z5lg85y8y2n0r"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-a4base r-a4classif r-a4core r-a4preproc r-a4reporting))
@@ -8903,14 +9010,14 @@ Affymetrix arrays.")
 (define-public r-abseqr
   (package
     (name "r-abseqr")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "abseqR" version))
        (sha256
         (base32
-         "1v9g71x689ly107c0qmc5iv8qk63nn6lp7yd03jf7hlcafmvqsvz"))))
+         "0jh3rj6ag07vpw6fymqm6m4jkrm9mgf50zkjncahxdf52mna8a9b"))))
     (properties `((upstream-name . "abseqR")))
     (build-system r-build-system)
     (inputs
@@ -8951,14 +9058,14 @@ further downstream analysis on its output.")
 (define-public r-bacon
   (package
     (name "r-bacon")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bacon" version))
        (sha256
         (base32
-         "13dhma34j9ggryainn4x6qvd3hphpxks5gf0mysia00r9hhpwwlc"))))
+         "1zvcxdj3r892898ik5gq3jdbfig1438qws4bwd465ik8vi7g39v8"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocparallel r-ellipse r-ggplot2))
@@ -8976,14 +9083,14 @@ fitting a three-component normal mixture on z-scores.")
 (define-public r-rgadem
   (package
     (name "r-rgadem")
-    (version "2.42.0")
+    (version "2.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGADEM" version))
        (sha256
         (base32
-         "1v8xgqqv7m2kyc38x9ppwsv87ivll5ppd6z76zcxj5yspkkrqw3v"))))
+         "013xdwz0c3n0n9hxf8kkx570qry961pgdjsp023531pl5ww2ing4"))))
     (properties `((upstream-name . "rGADEM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9030,12 +9137,12 @@ distributions, modules and filter motifs.")
 (define-public r-motifdb
   (package
    (name "r-motifdb")
-   (version "1.36.0")
+   (version "1.38.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "MotifDb" version))
             (sha256
-             (base32 "0a2zg26zzk7bj5c33mbwl8dx9lh1hns8q8kwp09rbfjdichv7425"))))
+             (base32 "1cyfz0l0yvdii3idaiq5w39yzxlzfpifa4v5pv7hdjfjj83a8rbi"))))
    (properties `((upstream-name . "MotifDb")))
    (build-system r-build-system)
    (propagated-inputs
@@ -9057,12 +9164,12 @@ frequency matrices from nine public sources, for multiple organisms.")
 (define-public r-motifbreakr
   (package
    (name "r-motifbreakr")
-   (version "2.8.0")
+   (version "2.10.0")
    (source (origin
             (method url-fetch)
             (uri (bioconductor-uri "motifbreakR" version))
             (sha256
-             (base32 "0lrgy64sv2ma6kylp4lsbwkg6ci1kn6qkk0cvzw3m4k3bgia1npj"))))
+             (base32 "0sad73jjx52qzp1fmygp6xqvaxwl5szi69f00f94i1pdyq70qhlg"))))
    (properties `((upstream-name . "motifbreakR")))
    (build-system r-build-system)
    (propagated-inputs
@@ -9072,7 +9179,6 @@ frequency matrices from nine public sources, for multiple organisms.")
           r-bsgenome
           r-genomeinfodb
           r-genomicranges
-          r-grimport
           r-gviz
           r-iranges
           r-matrixstats
@@ -9108,18 +9214,23 @@ Bioconductor.")
 (define-public r-motifstack
   (package
     (name "r-motifstack")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifStack" version))
        (sha256
         (base32
-         "1ck6bbnrab8mbf70alfdsrcv6lq0fkvcy3klhcwyxxir7r9sgbaz"))))
+         "0d2ihx73chczbv6f91n04qb372plrdv7k4qws8shyw1fmvb1rq0z"))))
     (properties `((upstream-name . "motifStack")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-ade4 r-biostrings r-ggplot2 r-htmlwidgets r-xml))
+     (list r-ade4
+           r-biostrings
+           r-ggplot2
+           r-htmlwidgets
+           r-tfbstools
+           r-xml))
     (native-inputs
      (list r-knitr))
     (home-page "https://bioconductor.org/packages/motifStack/")
@@ -9135,14 +9246,14 @@ type and symbol colors.")
 (define-public r-genomicscores
   (package
     (name "r-genomicscores")
-    (version "2.6.1")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GenomicScores" version))
        (sha256
         (base32
-         "17v2v7aklljy17nivwmani2jxkbffqs2yr38hlspjlvgpidpf9ln"))))
+         "0zq9k4189dlc14f9rknsc1ffhpjzb2f4fzdaszfdbnd4rr43b79i"))))
     (properties `((upstream-name . "GenomicScores")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9172,14 +9283,14 @@ position-specific scores within R and Bioconductor.")
 (define-public r-atacseqqc
   (package
     (name "r-atacseqqc")
-    (version "1.18.1")
+    (version "1.20.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ATACseqQC" version))
        (sha256
         (base32
-         "1jmlialnhs9df1hv6l4qk2c4qjyjbz9mdj8vr52ms8vlxlxplz6c"))))
+         "0jj7n0mcj0gciw0ksazlksgmwzp51a40pwqhf0c7la0cc4bnrkqp"))))
     (properties `((upstream-name . "ATACseqQC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9219,14 +9330,14 @@ footprints.")
 (define-public r-gofuncr
   (package
     (name "r-gofuncr")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOfuncR" version))
        (sha256
         (base32
-         "08n1d03i4l2dl47axmrziiypi83yffndf0ww1b32skyjm2r0x127"))))
+         "02vdfsjrqp0m06mfbspwkxjyqxfca0w1idgygpi1a9i5m4fqhwpk"))))
     (properties `((upstream-name . "GOfuncR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9324,14 +9435,14 @@ different identifieres using the Biocore Data Team data-packages (e.g.
 (define-public r-annotationtools
   (package
     (name "r-annotationtools")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotationTools" version))
        (sha256
         (base32
-         "0grdswbf8nj0qwl0n5pqsir9242dry85j6m688j81gwwjgmzidvh"))))
+         "122b424zida3j0vqkn8d06sg3jpc3ngsgidr8kgg00n4cjngkc51"))))
     (properties
      `((upstream-name . "annotationTools")))
     (build-system r-build-system)
@@ -9349,14 +9460,14 @@ text files).")
 (define-public r-allelicimbalance
   (package
     (name "r-allelicimbalance")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AllelicImbalance" version))
        (sha256
         (base32
-         "1s6arjd0nxgxyqy7vhqcb78k0ss7vwrhv41pm346hs1nyr5dkzaq"))))
+         "0w4xd0xzkwx7bbhrgqligpahlhg85rginknx520z891r8v0bim2z"))))
     (properties
      `((upstream-name . "AllelicImbalance")))
     (build-system r-build-system)
@@ -9392,23 +9503,24 @@ investigation using RNA-seq data.")
 (define-public r-aucell
   (package
     (name "r-aucell")
-    (version "1.16.0")
+    (version "1.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AUCell" version))
        (sha256
         (base32
-         "1lclf8hkhrm6g5fp8yhvjxnwgf8p0j9ffxsmcybz4rjvmwkiz5dp"))))
+         "17wr7dycll0l1gax4w268qw7is163bs51rj6p1qnx1dgc9ibnsgr"))))
     (properties `((upstream-name . "AUCell")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
            r-data-table
+           r-delayedarray
+           r-delayedmatrixstats
            r-gseabase
            r-mixtools
            r-r-utils
-           r-s4vectors
            r-shiny
            r-summarizedexperiment))
     (native-inputs
@@ -9431,14 +9543,14 @@ needed.")
 (define-public r-ebimage
   (package
     (name "r-ebimage")
-    (version "4.36.0")
+    (version "4.38.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBImage" version))
        (sha256
         (base32
-         "030vpn55ppfqq4408c4db4w40d17x1yq6zajb11p2glikvm1q619"))))
+         "1vcx45bw36k9daw9dywj5bz77jmqk4gjfwsym8ajjnc1jmlq20si"))))
     (properties `((upstream-name . "EBImage")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9470,14 +9582,14 @@ visualization with image data.")
 (define-public r-yamss
   (package
     (name "r-yamss")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yamss" version))
        (sha256
         (base32
-         "141hbryifm6na5shjyrbjwwksqnl75kqp1m2zl03l9sjqm0kapab"))))
+         "1lcfxw73cxvpy3bnq28pxdy5128mpq5xklsa0mzxdjyqc4g55hy8"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
@@ -9503,14 +9615,14 @@ analysis.")
 (define-public r-gtrellis
   (package
     (name "r-gtrellis")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gtrellis" version))
        (sha256
         (base32
-         "0q2lyb8p1xhqqhw4q1br4r8mwq06mjws8iwbbilkngvs3brbmrzl"))))
+         "1s4xczzv6hz2kyv32xgcq84540w75qr3f644w1s4c3kwxgyq2gff"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-circlize r-genomicranges r-getoptlong r-iranges))
@@ -9529,14 +9641,14 @@ genomic categories and to add self-defined graphics in the plot.")
 (define-public r-somaticsignatures
   (package
     (name "r-somaticsignatures")
-    (version "2.30.0")
+    (version "2.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SomaticSignatures" version))
        (sha256
         (base32
-         "1dxzfkvljnydv7kfybfa52dwcbkkci2r8gjspjf90k2bxf10phql"))))
+         "1ydnp54laznzpi08s403kxhnr5nqhvm3iilaxlcdlz0ngxhm6vx6"))))
     (properties
      `((upstream-name . "SomaticSignatures")))
     (build-system r-build-system)
@@ -9568,14 +9680,14 @@ decomposition algorithms.")
 (define-public r-yapsa
   (package
     (name "r-yapsa")
-    (version "1.20.1")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "YAPSA" version))
        (sha256
         (base32
-         "08r05fzpraggbxv15lx0b68kjlkysp0rcdlm6n9avzmlsdqplb2h"))))
+         "1klqfif4sadkxw7agywk2ncvcdqsnfb1d6adnacdfdasr8abvhid"))))
     (properties `((upstream-name . "YAPSA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9617,14 +9729,14 @@ provided.")
 (define-public r-gcrma
   (package
     (name "r-gcrma")
-    (version "2.66.0")
+    (version "2.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gcrma" version))
        (sha256
         (base32
-         "0h7dl4if6skbcqdjdzqyghyswhwpx7xvb54lffz4wdaxpabp3001"))))
+         "13a8igr2b02gsa6n3437kb33wg6h7si82fmqi35dzpfzhvx0qf6d"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-affy
@@ -9699,14 +9811,14 @@ chips with the MAQC reference datasets.")
 (define-public r-quantro
   (package
     (name "r-quantro")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "quantro" version))
        (sha256
         (base32
-         "1r2wbsndc0ji22ap27gbr1wy8icj3cjxwqlz1x0gvxkaj69mwsfq"))))
+         "1zfrz7lxyrbf0c8d277npzj1h4six9whkqplvcjmn3li0xj5qng3"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -9732,14 +9844,14 @@ groups.")
 (define-public r-yarn
   (package
     (name "r-yarn")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "yarn" version))
        (sha256
         (base32
-         "0nk4qzrwjiv8q39lgil9x25bm3gpzrnhd37d7754kpxhs2fsmw9d"))))
+         "0z5202pqq02fwm8qf1g36004k7sv668s1xacbpr1cvw5sl452lbg"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -9769,14 +9881,14 @@ large RNA-seq experiments.")
 (define-public r-roar
   (package
     (name "r-roar")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "roar" version))
        (sha256
         (base32
-         "0hqh4vsnxl2sn1bf6s6wxl2nskb40rhvrysdvb6dr60zkih3g347"))))
+         "0zq1praf5h9294cvmrb06l3chx8v40xw2sfvhlnh1516x9sjkwfc"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
@@ -9837,19 +9949,19 @@ genes.")
 (define-public r-massspecwavelet
   (package
     (name "r-massspecwavelet")
-    (version "1.60.1")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MassSpecWavelet" version))
        (sha256
         (base32
-         "00irq3i5kfck7rnm8ll7rqhqfpp3bisv2h8is50a7wbd7480z7ij"))))
+         "0g9izdy3f7h1zmsfbq45ahdz0ak5013rp3vxc4ijb1mpqx8ldd39"))))
     (properties
      `((upstream-name . "MassSpecWavelet")))
     (build-system r-build-system)
-    (propagated-inputs
-     (list r-waveslim))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://bioconductor.org/packages/MassSpecWavelet/")
     (synopsis "Mass spectrum processing by wavelet-based algorithms")
     (description
@@ -9861,14 +9973,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
 (define-public r-xcms
   (package
     (name "r-xcms")
-    (version "3.16.1")
+    (version "3.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "xcms" version))
        (sha256
         (base32
-         "19kjyi6br9qp2pnp24shgbww3iqaaqxk9791w8w8qbd6sxijd143"))))
+         "0p2zd2728lj5q8y24gdfvsjijd6zl2i73hrcf017n32jq7vn71xm"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
@@ -9902,13 +10014,13 @@ data for high-throughput, untargeted analyte profiling.")
 (define-public r-wppi
   (package
     (name "r-wppi")
-    (version "1.2.0")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "wppi" version))
               (sha256
                (base32
-                "1spwa8p6w3pyw21dvd1lrhcz1sphdsmsd408jv55ss9nbgvgrp23"))))
+                "1008s39bb7sd261cy1vfgdah7bmhfw9qq322fh7g4wvpfw63ii9f"))))
     (properties `((upstream-name . "wppi")))
     (build-system r-build-system)
     ;; This is necessary because omnipathr attempts to write a configuration
@@ -9943,14 +10055,14 @@ scores and a path search algorithm.")
 (define-public r-wrench
   (package
     (name "r-wrench")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Wrench" version))
        (sha256
         (base32
-         "1vzv7sswijgb8nq58yrc19wlw2nnpjvans86fqqzs4p8wvq8j06n"))))
+         "1zx65s4m71wj85s2sq8ip54pq12r4sxfv8b2rxc41gfc5aj0zzca"))))
     (properties `((upstream-name . "Wrench")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9967,14 +10079,14 @@ that arising from 16s metagenomic surveys.")
 (define-public r-wiggleplotr
   (package
     (name "r-wiggleplotr")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wiggleplotr" version))
        (sha256
         (base32
-         "01y1rbmxjza7qx3q33k0r241if69hzkx9plgmj59wyji22lm7syi"))))
+         "0s128mm5w8n072k6j0fv1mxnxjpwisjp5lpz8a9z96cnn69bnr0i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-assertthat
@@ -10001,14 +10113,14 @@ visualization of exonic read coverage.")
 (define-public r-widgettools
   (package
     (name "r-widgettools")
-    (version "1.72.0")
+    (version "1.74.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "widgetTools" version))
        (sha256
         (base32
-         "0jajfh78116wjfwbmzfvcbxswai4jj9ypzmfhs5j5iypaf8zff8j"))))
+         "10w1s5h4za6ibmphvj145ir3lp22qgah2z8fvmipmf8ciq1jf86d"))))
     (properties `((upstream-name . "widgetTools")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/widgetTools/")
@@ -10022,14 +10134,14 @@ widgets in R.")
 (define-public r-webbioc
   (package
     (name "r-webbioc")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "webbioc" version))
        (sha256
         (base32
-         "1r3rjvfhqbbzdhlslnc86kr2iip3xgvr81zpvcr8xv9mysgrln17"))))
+         "1g3srxsa2fqcn3r4wz4y19fwjmw3vawlcvdw6lbjdnvbgcafq1ah"))))
     (build-system r-build-system)
     (inputs
      (list netpbm perl))
@@ -10054,14 +10166,14 @@ Currently only Affymetrix oligonucleotide analysis is supported.")
 (define-public r-zinbwave
   (package
     (name "r-zinbwave")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zinbwave" version))
        (sha256
         (base32
-         "05w95bnq63a339d8x4932k81ycqf825s3qwn98vr52v5g2hv46fq"))))
+         "0vpz721sciw5b4ypxj5lj8p53gwkpfwlwkn6k3y8i65zg80p1g6i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocparallel
@@ -10087,14 +10199,14 @@ the data.")
 (define-public r-zfpkm
   (package
     (name "r-zfpkm")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "zFPKM" version))
        (sha256
         (base32
-         "0fk05vrmyyrhmkwi06lsi553mlpqj3fgwhk1kygz83iqv5z2vfw9"))))
+         "1h7g553rgb5mkmmsp8dyqqs9n9x17xmmcg3iijhb54nyrr2j1mji"))))
     (properties `((upstream-name . "zFPKM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10112,14 +10224,14 @@ This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
 (define-public r-rbowtie2
   (package
     (name "r-rbowtie2")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie2" version))
        (sha256
         (base32
-         "0xpvrx2ak9x913sym4l46ycwbnmpcdwb3bf3dfd2gsp0krv8vh1x"))))
+         "0dhdx27vrkhd4fak0qb5q9amlcpi97xhf3ry39zk0ifx5zpjynkg"))))
     (properties `((upstream-name . "Rbowtie2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10139,21 +10251,23 @@ rapid adapter trimming, identification, and read merging.")
 (define-public r-progeny
   (package
     (name "r-progeny")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "progeny" version))
        (sha256
         (base32
-         "0zhr5i5v87akzqjb6wid67nhg2icrw6w0awdy87x848c6c1i6j9y"))))
+         "1rhy2l2yf9ndxlvff8756s6n8qyi42nz7a75lgygj5aqqckkj21b"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
+           r-decoupler
            r-dplyr
            r-ggplot2
            r-ggrepel
            r-gridextra
+           r-reshape2
            r-tidyr))
     (native-inputs
      (list r-knitr))
@@ -10169,14 +10283,14 @@ expression\".")
 (define-public r-arrmnormalization
   (package
     (name "r-arrmnormalization")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ARRmNormalization" version))
        (sha256
         (base32
-         "1ryqr3mpakjml0jhbk28k2z511sdl87wxdczxq1rwx98s0pc9mnh"))))
+         "1pnvw8psbql787m8lrmhd9xbmgkc3dbc70yfds1aggv50dk3yjk1"))))
     (properties
      `((upstream-name . "ARRmNormalization")))
     (build-system r-build-system)
@@ -10192,14 +10306,14 @@ Infinium HumanMethylation 450k assay.")
 (define-public r-biocfilecache
   (package
     (name "r-biocfilecache")
-    (version "2.2.1")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocFileCache" version))
        (sha256
         (base32
-         "0gaj0z6dk2p2vhvqz685xwd5q2mkvpimh2493p3w04s2rlsvi3jb"))))
+         "1bdbmlixrd8wvs25nmzdksq5hwnsxf8b6ds9qwx01h284vky5vsw"))))
     (properties `((upstream-name . "BiocFileCache")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10225,14 +10339,14 @@ and data files used across sessions.")
 (define-public r-iclusterplus
   (package
     (name "r-iclusterplus")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "iClusterPlus" version))
        (sha256
         (base32
-         "0w6r2clk8wdnnnjmq3cspmxiq1c8vwprd66xmdrhcqzbjkpkdw2b"))))
+         "0xzx3vly3p99zc5a69pra4jjp8d3bdhx7dl1l76w459cs58zy0sm"))))
     (properties `((upstream-name . "iClusterPlus")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -10255,14 +10369,14 @@ Gaussian distributions.")
 (define-public r-rbowtie
   (package
     (name "r-rbowtie")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rbowtie" version))
        (sha256
         (base32
-         "0ardmryx6ac7v6n900a1klrrldvbmh7bxvy8ldz8rwid19h29ikr"))))
+         "1ya1irwshsyy9l1fj51b04nv1ahq7a47ck7q19h2cly6yskc4x1q"))))
     (properties `((upstream-name . "Rbowtie")))
     (build-system r-build-system)
     (arguments
@@ -10291,14 +10405,14 @@ alignment tool.")
 (define-public r-sgseq
   (package
     (name "r-sgseq")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SGSeq" version))
        (sha256
         (base32
-         "15l0r6svs27k82dd472is26shwayz6rs5ylg5gpf3mldr7sa5kja"))))
+         "0hz45367i70wl97silnimicdvs3g41zyf8syc6igz6471wbwkxwp"))))
     (properties `((upstream-name . "SGSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10334,14 +10448,14 @@ interpretation.")
 (define-public r-rhisat2
   (package
     (name "r-rhisat2")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhisat2" version))
        (sha256
         (base32
-         "092rws9vjxgm2jpkbp6ign47zmillyyidnc7ylcbn4zr9j5lwv0y"))))
+         "0hzair41l47kzykymd169a34pfhb98vrjgkgdf15m17csyz7pnv7"))))
     (properties `((upstream-name . "Rhisat2")))
     (build-system r-build-system)
     (arguments
@@ -10372,14 +10486,14 @@ index.")
 (define-public r-quasr
   (package
     (name "r-quasr")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "QuasR" version))
        (sha256
         (base32
-         "0d292xgaq8d3cdpa9anabda03lis46xc29iw9c5k5i3sj7dcr4g5"))))
+         "1m0c0rdakkdn4rr6dh51c6rs40cbxkvz93n6s0m2kc6fqjv9zplf"))))
     (properties `((upstream-name . "QuasR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10414,14 +10528,14 @@ quantification of genomic regions of interest.")
 (define-public r-rqc
   (package
     (name "r-rqc")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rqc" version))
        (sha256
         (base32
-         "0hcxkrfja0gmd8r2llijdvaw2xiiplk037305inimz0qna6w2071"))))
+         "11j8m69zdcmpjb3xzr4s8sqmv8aqgl8q7k81gnd09l3nyjzy0h1k"))))
     (properties `((upstream-name . "Rqc")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10457,14 +10571,14 @@ graphics.")
 (define-public r-birewire
   (package
     (name "r-birewire")
-    (version "3.26.5")
+    (version "3.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiRewire" version))
        (sha256
         (base32
-         "041i5d08bsc5jqx3309fixjacizs4yi992cwazxghm8mrk3kicbr"))))
+         "0r3i7n45qgj8wzdsx8wmfk0lc4xbcvxvmfziiqzig7r706q2c2hm"))))
     (properties `((upstream-name . "BiRewire")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10510,14 +10624,14 @@ Markov-Chain-Monte-Carlo is applied to sample the activity states.")
 (define-public r-multidataset
   (package
     (name "r-multidataset")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiDataSet" version))
        (sha256
         (base32
-         "17asldnxqvp3sijx7nbi2lbbgnq4iq8z72qlg9080sm5lga1yy1s"))))
+         "0rfs6jkzh1i4mj1pgfk4lwzmcl8pcwizra3q3282x3d8h2g98qnf"))))
     (properties `((upstream-name . "MultiDataSet")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10547,14 +10661,14 @@ packages.")
 (define-public r-ropls
   (package
     (name "r-ropls")
-    (version "1.26.4")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ropls" version))
        (sha256
         (base32
-         "19f3wd55860x959h5n7mrivyjdas5b3jmx74lf24xnx23g26f8rn"))))
+         "1i9g32mjknrd2lbz2nisc7nr0gk9byx9aik1i7xdwmq4ndxf8rf7"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase r-multidataset))
@@ -10584,14 +10698,14 @@ coefficients).")
 (define-public r-biosigner
   (package
     (name "r-biosigner")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biosigner" version))
        (sha256
         (base32
-         "189018qahyw33dmg73wa7k4rp8nzrx6ai8f2dr6vhbpcdc1gnm0z"))))
+         "11w28nlz0f06idbna5k9xs891w516401l1zab5gg7s0z3xxaki4f"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase r-e1071 r-multidataset r-randomforest r-ropls))
@@ -10613,14 +10727,14 @@ datasets.")
 (define-public r-annotatr
   (package
     (name "r-annotatr")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "annotatr" version))
        (sha256
         (base32
-         "1ha2wn56cdab4p3wdwv4xlqjsgl7sd8phbx71qbclrbdwpq2mi7i"))))
+         "1fbax9v3d486c8lwf3yfjbf4w7zf53wmdpxk2clwm8ngm7w0pqm0"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -10654,14 +10768,14 @@ annotations.")
 (define-public r-rsubread
   (package
     (name "r-rsubread")
-    (version "2.8.2")
+    (version "2.10.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rsubread" version))
        (sha256
         (base32
-         "078zcchw9xl6vs2wihzzji349vq0m1a039m86jdlvb7nc3i1imfk"))))
+         "1cf80gmzz4c1pvif3350ifsmsbfplyl2na39n8g3x0zkwpl6ijdc"))))
     (properties `((upstream-name . "Rsubread")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -10680,14 +10794,14 @@ and to both short and long sequence reads.")
 (define-public r-flowutils
   (package
     (name "r-flowutils")
-    (version "1.58.0")
+    (version "1.59.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowUtils" version))
        (sha256
         (base32
-         "0rgybkzbn8c3kpbz0ddghp1np0gka0cgiqvkk5jbnhlgf4s07161"))))
+         "11x362dqb9mjlsbq6g1qkb8hhnkvm22z5s3wkgmpyy9kyifjkm26"))))
     (properties `((upstream-name . "flowUtils")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10706,14 +10820,14 @@ and to both short and long sequence reads.")
 (define-public r-consensusclusterplus
   (package
     (name "r-consensusclusterplus")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ConsensusClusterPlus" version))
        (sha256
         (base32
-         "13z43qbk9z7mvy8v8k185m6n020i6ahb18pm4q88rs75qlklzdkr"))))
+         "1021cix4mr9qsafskw4kk1l3wdzx9pk2gcwjifz6f4zqxss9v07p"))))
     (properties
      `((upstream-name . "ConsensusClusterPlus")))
     (build-system r-build-system)
@@ -10772,14 +10886,14 @@ of the analyses while minimizing technical noise.")
 (define-public r-cytolib
   (package
     (name "r-cytolib")
-    (version "2.6.2")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cytolib" version))
        (sha256
         (base32
-         "0ycr4wmkfi0rvzwicblkfjgppk72gwwpim0rfiz1s44lycsf4py5"))))
+         "18b532sicca5l8sn334prrm7g1z1cakiwydccz4i833168pnsjyg"))))
     (properties `((upstream-name . "cytolib")))
     (build-system r-build-system)
     (native-inputs
@@ -10801,14 +10915,14 @@ interact with gated cytometry data.")
 (define-public r-flowcore
   (package
     (name "r-flowcore")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowCore" version))
        (sha256
         (base32
-         "0zbd2hrdbb6r0np6nd3ab8nlcf9l57vcwnnhbqkbas8y0c2i2mwp"))))
+         "17nci6rc4i0vs0ibw5q8zy30ap7q4550qpq4ifkbblqbyzxlzkhr"))))
     (properties `((upstream-name . "flowCore")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10833,14 +10947,14 @@ with flow cytometry data.")
 (define-public r-flowmeans
   (package
     (name "r-flowmeans")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowMeans" version))
        (sha256
         (base32
-         "0iy8hvi0inj1ylhdx6q4mya9k55iazprz6fdrnq1mxb2iyndzsl6"))))
+         "1n4li43ydwwf5gvgmdml4ba28cxymybg5wnz6jvp35n959fwxv6y"))))
     (properties `((upstream-name . "flowMeans")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10856,14 +10970,14 @@ change point detection.")
 (define-public r-ncdfflow
   (package
     (name "r-ncdfflow")
-    (version "2.40.0")
+    (version "2.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ncdfFlow" version))
        (sha256
         (base32
-         "1c6wb2x24ydqp5nxrx6bhj6f13x9djfy9awkc7zn63xkag7mvvar"))))
+         "18ba8rygcd1ys150pk38r4w5lxwm6sl76zkd294yg847dygsqa4m"))))
     (properties `((upstream-name . "ncdfFlow")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10887,14 +11001,14 @@ manipulation of flow cytometry data.")
 (define-public r-ggcyto
   (package
     (name "r-ggcyto")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggcyto" version))
        (sha256
         (base32
-         "17dnmsa92gc2za36c3klgd7rklqlxrhkzs5ksnrc1am6a4knc0p1"))))
+         "0sycyvdpa77mykzr709a7padh6478zmnzapibbq90qkc7bxnj359"))))
     (properties `((upstream-name . "ggcyto")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10924,14 +11038,14 @@ statistics to the plot.")
 (define-public r-flowviz
   (package
     (name "r-flowviz")
-    (version "1.58.0")
+    (version "1.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowViz" version))
        (sha256
         (base32
-         "039sh7qn25gp2b34khs8dyrdpxyapsjlprrvxlz8f7dl8gmggl04"))))
+         "175ygncrv6q6mb8pahixs89m9wm6hdpzx489gc9s8lgad2vrvz8f"))))
     (properties `((upstream-name . "flowViz")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10955,14 +11069,14 @@ statistics to the plot.")
 (define-public r-flowclust
   (package
     (name "r-flowclust")
-    (version "3.32.0")
+    (version "3.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowClust" version))
        (sha256
         (base32
-         "0ch7mkq40qcnxwgzy51vjdlwyzx4bvp03vpdm6dwjc6qy8a6qfzi"))))
+         "055vm9s8aha92znhpjqkipzprw8bkrinwjaik4ygmhym7w6vbblk"))))
     (properties `((upstream-name . "flowClust")))
     (build-system r-build-system)
     (arguments
@@ -10971,13 +11085,8 @@ statistics to the plot.")
     (propagated-inputs
      (list r-biobase
            r-biocgenerics
-           r-clue
-           r-corpcor
-           r-ellipse
            r-flowcore
-           r-flowviz
-           r-graph
-           r-mnormt))
+           r-graph))
     (inputs
      (list gsl))
     (native-inputs
@@ -10994,14 +11103,14 @@ model with Box-Cox transformation.")
 (define-public r-rprotobuflib
   (package
     (name "r-rprotobuflib")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RProtoBufLib" version))
        (sha256
         (base32
-         "04qlhbhdchpr35rdc6jc3y8fy6znnfrdlsb8am04agbrvpjgrx10"))))
+         "1mvqwrm1y0vij66gdwgpf5l1h660wsi9jzjfs4ihw3zm4cb0q5pp"))))
     (properties `((upstream-name . "RProtoBufLib")))
     (build-system r-build-system)
     (arguments
@@ -11010,7 +11119,7 @@ model with Box-Cox transformation.")
          (add-after 'unpack 'unpack-bundled-sources
            (lambda _
              (with-directory-excursion "src"
-               (invoke "tar" "xf" "protobuf-3.13.0.tar.gz")))))))
+               (invoke "tar" "xf" "protobuf-3.8.0.tar.gz")))))))
     (native-inputs
      (list r-knitr))
     (home-page "https://bioconductor.org/packages/RProtoBufLib/")
@@ -11023,14 +11132,14 @@ for other R packages to compile and link against.")
 (define-public r-flowworkspace
   (package
     (name "r-flowworkspace")
-    (version "4.6.0")
+    (version "4.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowWorkspace" version))
        (sha256
         (base32
-         "11ni7kgk9s1fz3lvg85s6r7x2fhk4m7cdpilji05ya12jsyr3fig"))))
+         "0riyi9628cx1j5x6hmdd28yq75xh25j8ckcdz8dnb94dpvnhaqss"))))
     (properties `((upstream-name . "flowWorkspace")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11077,20 +11186,21 @@ matches the flowJo analysis.")
 (define-public r-flowstats
   (package
     (name "r-flowstats")
-    (version "4.6.0")
+    (version "4.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "flowStats" version))
        (sha256
         (base32
-         "0jjfq66m4lbpkynwxaparkd05znhp3jl9ccj37gyghly294x3rm9"))))
+         "1jbc92ah2mlpnd7v3k0207v4qz3rg9g9yy6r6y0s0cc5nifdyhwj"))))
     (properties `((upstream-name . "flowStats")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biobase
            r-biocgenerics
            r-cluster
+           r-corpcor
            r-fda
            r-flowcore
            r-flowviz
@@ -11099,6 +11209,7 @@ matches the flowJo analysis.")
            r-ks
            r-lattice
            r-mass
+           r-mnormt
            r-ncdfflow
            r-rcolorbrewer
            r-rrcov))
@@ -11113,14 +11224,14 @@ package.")
 (define-public r-opencyto
   (package
     (name "r-opencyto")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "openCyto" version))
        (sha256
         (base32
-         "11svr1lk383pkm4npwrnf3h37b3drjsmcwcgdbb45x8k2k95z2fm"))))
+         "1nz5fra0jf70jwyfbcz5ksnz5xb62vfnfwfasr0zwwvjvmmvrs1y"))))
     (properties `((upstream-name . "openCyto")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11157,14 +11268,14 @@ sequential way to mimic the manual gating strategy.")
 (define-public r-cytoml
   (package
     (name "r-cytoml")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CytoML" version))
        (sha256
         (base32
-         "16rgsc2dz5b8lm3ma8nh9wiknrdnvfjcsij7809rmcfs0gn1arcz"))))
+         "0vp7advfh1d8596hjpzayasjhga4mx0l104sgz2asscbrjm4v7rr"))))
     (properties `((upstream-name . "CytoML")))
     (build-system r-build-system)
     (inputs
@@ -11209,14 +11320,14 @@ standard to exchange gated cytometry data with other software platforms.")
 (define-public r-flowsom
   (package
     (name "r-flowsom")
-    (version "2.2.0")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "FlowSOM" version))
        (sha256
         (base32
-         "062xrv8li2z849qa8mv5dhafqli6ziz099ikjfvi7v2fr7174p8f"))))
+         "0balsds5mm981cqamdjv3ndq1y9arharisd6f2lrpkzgvwawa645"))))
     (properties `((upstream-name . "FlowSOM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11252,14 +11363,14 @@ self-organizing map clustering and minimal spanning trees.")
 (define-public r-mixomics
   (package
     (name "r-mixomics")
-    (version "6.18.1")
+    (version "6.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "mixOmics" version))
        (sha256
         (base32
-         "1wpskrnl2bry9m4k2djhjddcd8gpwf51gp5c3si1y7qxja78ql9f"))))
+         "0fwc2w7frj0bjijzfckkxf7ipx1z13gw7907q4zr5qfl9mh127w7"))))
     (properties `((upstream-name . "mixOmics")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11298,14 +11409,14 @@ delete entire rows with missing data.")
 (define-public r-depecher
   (package                              ;Source/Weave error
     (name "r-depecher")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DepecheR" version))
        (sha256
         (base32
-         "1500jivij7zdycdd0i0b7mgp44w4z0hqnpzqbq8nhvzzdigic8x9"))))
+         "0rixczdds5gpac50wap6s68kmpdj4208l38gcihkrysz5frbvqjp"))))
     (properties `((upstream-name . "DepecheR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11344,14 +11455,14 @@ data, to only emphasize the data that actually matters.")
 (define-public r-rcistarget
   (package
     (name "r-rcistarget")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RcisTarget" version))
        (sha256
         (base32
-         "1qarr7xd71kz1haccj65x7sc7pc4v6xpqcfa3rkyp2bk240gigi7"))))
+         "17fnjkg6rjqj33v7slg81skqag10y6dc14g5iv69gqshjal4w4im"))))
     (properties `((upstream-name . "RcisTarget")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11360,11 +11471,11 @@ data, to only emphasize the data that actually matters.")
            r-biocgenerics
            r-data-table
            r-dplyr
-           r-feather
            r-genomeinfodb
            r-genomicranges
            r-gseabase
            r-r-utils
+           r-s4vectors
            r-summarizedexperiment
            r-tibble))
     (native-inputs
@@ -11386,14 +11497,14 @@ genes in the gene-set that are ranked above the leading edge).")
 (define-public r-chicago
   (package
     (name "r-chicago")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Chicago" version))
        (sha256
         (base32
-         "0nz9v37p7zl8yw3ykdbsb3izcwgx349wvrhwfyyn9h3jxjfafngn"))))
+         "13vzxmvxpc3r9gii37zvhhr5nbnaggrva97g6m2n02qn9daf6vmm"))))
     (properties `((upstream-name . "Chicago")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11408,14 +11519,14 @@ genes in the gene-set that are ranked above the leading edge).")
 (define-public r-cicero
   (package
     (name "r-cicero")
-    (version "1.12.0")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "cicero" version))
        (sha256
         (base32
-         "1fc69nkm2cwpr6gkfmra2ph0lrmw486chswp4pn8i70ia43fzdm7"))))
+         "1ip12ijazlmcfbym078slxykpkz7d1zwvs8l8aqdnqpxjfk1ipx5"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-assertthat
@@ -11475,14 +11586,14 @@ accessibility data.")
 (define-public r-circrnaprofiler
   (package
     (name "r-circrnaprofiler")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "circRNAprofiler" version))
        (sha256
         (base32
-         "0l83r9idhrha1m21vpnw917m5dlldji49zvx4d25m5g3ia1pkhpf"))))
+         "1gwm416shhv2p3gh1n6kv1rvx0n0imy25b7z62z4s8b3gs3nfp5j"))))
     (properties
      `((upstream-name . "circRNAprofiler")))
     (build-system r-build-system)
@@ -11610,14 +11721,14 @@ cisTopics and explore the nature and regulatory proteins driving them.")
 (define-public r-genie3
   (package
     (name "r-genie3")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GENIE3" version))
        (sha256
         (base32
-         "0ms769267pimrx3xwwkgjy03qilkxxs7xwhzfca01f65i4n3l6fw"))))
+         "0h3vnpnznb9rda8gfwp4cnd2mqsvs1vzmfx90dchn5pqaphz1k2l"))))
     (properties `((upstream-name . "GENIE3")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11634,14 +11745,14 @@ regulatory networks from expression data.")
 (define-public r-roc
   (package
     (name "r-roc")
-    (version "1.70.0")
+    (version "1.72.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ROC" version))
        (sha256
         (base32
-         "1mgxpv5p6gnv04wzkcryrg5as5xrxvlqlkkcbv0k1bx9y6ykijy9"))))
+         "0yfq0d0j2bzqdnjs6l2h6p48kmv9wfphlqym3brgndlnadipq1v2"))))
     (properties `((upstream-name . "ROC")))
     (build-system r-build-system)
     (native-inputs
@@ -11656,14 +11767,14 @@ Characteristic} (ROC) curves, with a focus on micro arrays.")
 (define-public r-watermelon
   (package
     (name "r-watermelon")
-    (version "2.0.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wateRmelon" version))
        (sha256
         (base32
-         "1kzkg3cnm5pcs6blpw1qn7na6z3kar93v67680wsxa6qxxdiggk3"))))
+         "0adqyfabrvfcaj3mwp0rbqlcgpj92yb205cyhibbrs5gdr5ri4pv"))))
     (properties `((upstream-name . "wateRmelon")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11694,14 +11805,14 @@ metrics, with methods for objects produced by the @code{methylumi} and
 (define-public r-gdsfmt
   (package
     (name "r-gdsfmt")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gdsfmt" version))
        (sha256
         (base32
-         "147i33sb65n3cl3ibmjzgfm7i4ljy640k18mzknvc18v1906j9vp"))
+         "1cdwyivgfc6yw5hj9b3j57wx55gckwhx6fwx2lvqynrjzjyzf3q0"))
        (modules '((guix build utils)))
        ;; Remove bundled sources of zlib, lz4, and xz.  Don't attempt to build
        ;; them and link with system libraries instead.
@@ -11750,14 +11861,14 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-bigmelon
   (package
     (name "r-bigmelon")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigmelon" version))
        (sha256
         (base32
-         "0ksbmybi8wsg515b4k9ij1xqqk9i90pyap2wq5w3c49qgc0pqali"))))
+         "1msch4qbifkdqv0bbw03xj6d9w28z91mf4ki41rqg6048cq17h2k"))))
     (properties `((upstream-name . "bigmelon")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11781,14 +11892,14 @@ with multiple R processes supported by the package @code{parallel}.")
 (define-public r-seqbias
   (package
     (name "r-seqbias")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqbias" version))
        (sha256
         (base32
-         "1q608c1madij8l52ljl3w52vi3cssr6ikny84yj6n8s7yvpx5jpr"))))
+         "085nq6pf0bdn17wsbr5jnyy512v7rf67xff9rp5wz47mcifbv6rg"))))
     (properties `((upstream-name . "seqbias")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11805,14 +11916,14 @@ genome sequence.")
 (define-public r-reqon
   (package
     (name "r-reqon")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReQON" version))
        (sha256
         (base32
-         "14v79vg3pmpkbzgn8xqd020jdwcs8g57d46bzl23yi3w1rsfbrb1"))))
+         "1f5pplm8fy3wvl0b6n18gph4dq9i9x5qiyjrj0bk0kwlkbpba74r"))))
     (properties `((upstream-name . "ReQON")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11828,14 +11939,14 @@ format.")
 (define-public r-wavcluster
   (package
     (name "r-wavcluster")
-    (version "2.28.0")
+    (version "2.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "wavClusteR" version))
        (sha256
         (base32
-         "1a1zhckrgq5yl51acj5piyh2hq70q6hhpym4cawzdssxhcbq70bk"))))
+         "04di095i9i19j9ppx8gdsk7n18vd02d4rjdi9d4a3p0xv05ihnb6"))))
     (properties `((upstream-name . "wavClusteR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11875,14 +11986,14 @@ procedures that induce nucleotide substitutions (e.g. BisSeq).")
 (define-public r-timeseriesexperiment
   (package
     (name "r-timeseriesexperiment")
-    (version "1.12.0")
+    (version "1.13.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TimeSeriesExperiment" version))
        (sha256
         (base32
-         "0fphnkkd3i7zf33a9lhw95n80vzv1z7fmn7mhrfb949yz4jdvk7d"))))
+         "0bdpxxr739qdg92qabfx122k9f43vw2hyxp4yxqlbp37vzgcdf2c"))))
     (properties
      `((upstream-name . "TimeSeriesExperiment")))
     (build-system r-build-system)
@@ -11916,14 +12027,14 @@ provides methods for retrieving enriched pathways.")
 (define-public r-variantfiltering
   (package
     (name "r-variantfiltering")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "VariantFiltering" version))
        (sha256
         (base32
-         "15js8xzi9rsgkjkqcshzk3r3g85kdnxn5v2hi6l5s4yxj9lnq12p"))))
+         "1bjqn8qik221x0bqvgd99p87v45iihwp6cxckh4ks964pd0c1xk8"))))
     (properties
      `((upstream-name . "VariantFiltering")))
     (build-system r-build-system)
@@ -12022,14 +12133,14 @@ arrays based on fast wavelet-based functional models.")
 (define-public r-variancepartition
   (package
     (name "r-variancepartition")
-    (version "1.24.1")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "variancePartition" version))
        (sha256
         (base32
-         "14aki7d9xl4rhhzv3cl09mbj1q7xhxg69s4kzms9hfv3cqjryqd7"))))
+         "0wk1xql8b0gxyrqz9hs54xvmp7qdw9b8jnv88p4vgv061iwyk7wv"))))
     (properties
      `((upstream-name . "variancePartition")))
     (build-system r-build-system)
@@ -12070,14 +12181,14 @@ measures.")
 (define-public r-htqpcr
   (package
     (name "r-htqpcr")
-    (version "1.48.0")
+    (version "1.50.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HTqPCR" version))
        (sha256
         (base32
-         "1d7qj5yv6kzqmdrnp5pd8qv1yr4bg8cs39p8ib0i0k8b4wr97kq3"))))
+         "0am98rzwpi3kybq1l27c5qn3n1pg5aqwmh6jq9q0lzbjjin3haqc"))))
     (properties `((upstream-name . "HTqPCR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12100,14 +12211,14 @@ features (e.g.  genes, microRNAs).")
 (define-public r-unifiedwmwqpcr
   (package
     (name "r-unifiedwmwqpcr")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "unifiedWMWqPCR" version))
        (sha256
         (base32
-         "0kw26bm2yyna38q5r4zb2alpa3j4gx7v970419mnjlif4g0hmggk"))))
+         "1skfs94a6bv05c844zf5vfqw1fbgxyppgdnckdbhxg2a2470a4wh"))))
     (properties
      `((upstream-name . "unifiedWMWqPCR")))
     (build-system r-build-system)
@@ -12124,14 +12235,14 @@ data.")
 (define-public r-universalmotif
   (package
     (name "r-universalmotif")
-    (version "1.12.4")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "universalmotif" version))
        (sha256
         (base32
-         "01skcvzd815m3c15ka2pk7z6bggc4l8bhvaf4z9v95i36k4mn5zd"))))
+         "0n2msyyy1xhapkd66j4xwabg4qfd62l01p1nmafjwifnjsx45xvp"))))
     (properties
      `((upstream-name . "universalmotif")))
     (build-system r-build-system)
@@ -12172,13 +12283,13 @@ motifs, and others.")
 (define-public r-ace
   (package
     (name "r-ace")
-    (version "1.12.0")
+    (version "1.14.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ACE" version))
               (sha256
                (base32
-                "1nkbxldn5ba4fzfh4skwjc37gm6apwp09vzwnj2jw3b7ivmr0yr6"))))
+                "1xnw288vz810vjkidar5h218wyc0q2hx0k4zi3r88vaz5rfhc05m"))))
     (properties `((upstream-name . "ACE")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase r-genomicranges r-ggplot2 r-qdnaseq))
@@ -12201,13 +12312,13 @@ of @dfn{tumor cells} (cells with divergent segments).")
 (define-public r-acgh
   (package
     (name "r-acgh")
-    (version "1.72.0")
+    (version "1.74.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "aCGH" version))
               (sha256
                (base32
-                "1r1q6iq3g7svfn5m4jxlxp413djb40mvf6lh595y86sgwav5k6l4"))))
+                "00ni0kwy68v33ggfi8g5vffirhmbhaxg4l54hcqhx75m535z1x7d"))))
     (properties `((upstream-name . "aCGH")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase r-cluster r-multtest r-survival))
@@ -12225,13 +12336,13 @@ printing and plotting @code{aCGH} objects.")
 (define-public r-acme
   (package
     (name "r-acme")
-    (version "2.50.0")
+    (version "2.52.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "ACME" version))
               (sha256
                (base32
-                "0h4bqbbqcwc938q7lysk5l35f64xz9d1bsniv2wshmlr4rr0zpcg"))))
+                "0ilcsgpc4m47gifxc0yzx2xi3g4day515mncnnjvfdj3iq8xwk25"))))
     (properties `((upstream-name . "ACME")))
     (build-system r-build-system)
     (propagated-inputs (list r-biobase r-biocgenerics))
@@ -12252,13 +12363,13 @@ on whole-genome tiling array experiments quite easily with enough memory.")
 (define-public r-acde
   (package
     (name "r-acde")
-    (version "1.24.0")
+    (version "1.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "acde" version))
               (sha256
                (base32
-                "13ks87am73m3bjn9ljapxml2a9cxdpgv9flwvly8aqmi3ndxyqi6"))))
+                "0lgq546y4qklfzbc6fjr3d656hn76p6dn4694qfiafql2nlsjbj2"))))
     (properties `((upstream-name . "acde")))
     (build-system r-build-system)
     (propagated-inputs (list r-boot))
@@ -12317,14 +12428,14 @@ using whole genome sequencing data.")
 (define-public r-activepathways
   (package
     (name "r-activepathways")
-    (version "1.0.4")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ActivePathways" version))
        (sha256
         (base32
-         "1prhwx0nnwy2q62l2r0z31mhk4mq6xdr6mjihdlwpwgwq4rfi60y"))))
+         "0zbrgz91mlik7j8j11wsdswqqqfsijj8jkgd5fx1ar3mc6rqsmbg"))))
     (properties
      `((upstream-name . "ActivePathways")))
     (build-system r-build-system)
@@ -12345,14 +12456,14 @@ cellular organization in health and disease.")
 (define-public r-bgmix
   (package
     (name "r-bgmix")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BGmix" version))
        (sha256
         (base32
-         "0x1sx319yfxgkscr9r62msq00ddvmzryzn42wy4dh5pvjmgifkkn"))))
+         "03f6nknp3n49yvg2d9qsmds676rva70pr4wjz0md228jczgjk0vj"))))
     (properties `((upstream-name . "BGmix")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12367,14 +12478,14 @@ gene expression.")
 (define-public r-bgx
   (package
     (name "r-bgx")
-    (version "1.60.0")
+    (version "1.62.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bgx" version))
        (sha256
         (base32
-         "0z3isnpyf9s11807dprxmd105lb0k4l7r1sygad30ncjvpldifzm"))))
+         "0q2y4n6bcc9pvz5sgfkw1lrb00rrp7q29i1vh7srdfmfhgpyz6bk"))))
     (properties `((upstream-name . "bgx")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12389,14 +12500,14 @@ Affymetrix GeneChips.")
 (define-public r-bhc
   (package
     (name "r-bhc")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BHC" version))
        (sha256
         (base32
-         "09nw4ljc9sn7iw09ha0m614hmdjj193xhhav5x5p07l501kks6h2"))))
+         "1kqajd16981y5yaak2imaq1i7pilgqdr3nbhggsakh787j1d9rc5"))))
     (properties `((upstream-name . "BHC")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/BHC/")
@@ -12415,14 +12526,14 @@ algorithm which is more efficient for larger data sets.")
 (define-public r-bicare
   (package
     (name "r-bicare")
-    (version "1.52.0")
+    (version "1.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BicARE" version))
        (sha256
         (base32
-         "1g8vrsc05cysb36gsw8sfmr6dgbh4aji37vcq9qwkmkv3jgvnlf6"))))
+         "0qjh5bsjcjry6k1vzdaascwy2shjrkc2bw0w57w0qa458cbi89z2"))))
     (properties `((upstream-name . "BicARE")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12437,14 +12548,14 @@ results.")
 (define-public r-bifet
   (package
     (name "r-bifet")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiFET" version))
        (sha256
         (base32
-         "0vidypvphnj76g4ra5ijrgqx2dnzw0fmvdvz35gsqswrr3k20jkk"))))
+         "03ypbbn8i0f4bl4m6wfdcv702jydniak56wqjb1vlrckd9aphwzq"))))
     (properties `((upstream-name . "BiFET")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12466,14 +12577,14 @@ the read count and GC content bias.")
 (define-public r-rsbml
   (package
     (name "r-rsbml")
-    (version "2.52.0")
+    (version "2.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rsbml" version))
        (sha256
         (base32
-         "0mdyr637sgasc156cv8i2s2mpl1hdvilfwwkhvw7l95pl90gnsh2"))))
+         "1v11pspkml6xdsacgwxw8r4qdhbnn2h2sqgpm9aidaq9p2085b0v"))))
     (properties `((upstream-name . "rsbml")))
     (build-system r-build-system)
     (inputs
@@ -12492,14 +12603,14 @@ validating output, provides an S4 SBML DOM, converts SBML to R graph objects.")
 (define-public r-hypergraph
   (package
     (name "r-hypergraph")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hypergraph" version))
        (sha256
         (base32
-         "0xnyl9qh5p32ifvzkcl5g4a38zbnwykqzrp8gwz076a0ksiqqdxf"))))
+         "0xmryqj5yw1ns6wbhjqbb6h14jlj89zrznzvqnvd4n03ci20kzzp"))))
     (properties `((upstream-name . "hypergraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12514,14 +12625,14 @@ manipulating hypergraphs.")
 (define-public r-hyperdraw
   (package
     (name "r-hyperdraw")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "hyperdraw" version))
        (sha256
         (base32
-         "1lkiqrk01hshms9ghsfynxwj69zr3463r3rg8rn7hkwn3bj8xyzj"))))
+         "0ndw4y6b15jy4w86vfkahmdc81d3ycjsvqy1mxi55dwvd8xq0ap6"))))
     (properties `((upstream-name . "hyperdraw")))
     (build-system r-build-system)
     (inputs (list graphviz))
@@ -12536,14 +12647,14 @@ manipulating hypergraphs.")
 (define-public r-biggr
   (package
     (name "r-biggr")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiGGR" version))
        (sha256
         (base32
-         "1g01666wwznk148776s4vr1hfi3dfl448dhgk4d1qy2wv6sxh9kr"))))
+         "0n57bgl6xz5b1gpw4isimq2pqxmlabn7jzhbjg2fbxcklabdvrcw"))))
     (properties `((upstream-name . "BiGGR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12600,14 +12711,14 @@ a file-backed matrix with factor properties.")
 (define-public r-bigpint
   (package
     (name "r-bigpint")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bigPint" version))
        (sha256
         (base32
-         "0b0l0v9p7a5da3x18d0pqn41ilgxfyzapjaawgsshcfm5mjq5d7q"))))
+         "1hp69j2qcidrxqs3dxjjngb09nbzp5x2yy4jz1rjmv6ghif9ccfj"))))
     (properties `((upstream-name . "bigPint")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12643,14 +12754,14 @@ visualizing RNA-sequencing datasets and differentially expressed genes.")
 (define-public r-chemminer
   (package
     (name "r-chemminer")
-    (version "3.46.0")
+    (version "3.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ChemmineR" version))
        (sha256
         (base32
-         "069xd7if7fs69afmamgl6wrkzpnk97ic6z5ix4vvlzkb078dm0p8"))))
+         "1nri4zkc9lp1mqgsi0h58486vixwiv2989b6pmx2aj5c3575i0ma"))))
     (properties `((upstream-name . "ChemmineR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12686,13 +12797,13 @@ structures.")
 (define-public r-fmcsr
   (package
     (name "r-fmcsr")
-    (version "1.36.0")
+    (version "1.38.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "fmcsR" version))
         (sha256
-          (base32 "0mshslfj7jsix1yc03s54spbbi56zspic49kfsjfv8npikj1i5w0"))))
+          (base32 "1mblmk21dxc9v2fikhvfg2njwgl190gkysppl6msxizwcmxsmh30"))))
     (properties `((upstream-name . "fmcsR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12715,14 +12826,14 @@ searching and clustering.")
 (define-public r-bioassayr
   (package
     (name "r-bioassayr")
-    (version "1.32.1")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioassayR" version))
        (sha256
         (base32
-         "0pa8d7p9asp36wddkg779i3b9m12rxik56c54bmclnammr0cz89i"))))
+         "0zbrci0vgk4qca28i0qb2izhyrz3r95l1w54h9h3zj9f3vd61wrz"))))
     (properties `((upstream-name . "bioassayR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12750,14 +12861,14 @@ available bioactivity data.")
 (define-public r-biobroom
   (package
     (name "r-biobroom")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biobroom" version))
        (sha256
         (base32
-         "034gbywrscv23kk1qnk7sc7dxdckmf60wh29fz65v1n28mkf180r"))))
+         "04x1z9nchm4mbhqr31011zdprc4md156j4zf003s7xx0n278xsgh"))))
     (properties `((upstream-name . "biobroom")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12779,18 +12890,18 @@ visualize bioinformatics analyses.")
 (define-public r-graphite
   (package
     (name "r-graphite")
-    (version "1.40.0")
+    (version "1.42.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "graphite" version))
        (sha256
         (base32
-         "0wmdv4j6dinszxwpz2jddshkh1ahbhm2fxh6vhjsk4grw38i1lfr"))))
+         "0nl5mkgrvf7vsqjy48ij9b1dmxfvp9lf8cpay55h93c4qz4x606g"))))
     (properties `((upstream-name . "graphite")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-annotationdbi r-checkmate r-graph r-httr r-rappdirs))
+     (list r-annotationdbi r-graph r-httr r-rappdirs r-rlang))
     (home-page "https://bioconductor.org/packages/graphite/")
     (synopsis "Networks from pathway databases")
     (description
@@ -12802,14 +12913,14 @@ symbols).")
 (define-public r-reactomepa
   (package
     (name "r-reactomepa")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ReactomePA" version))
        (sha256
         (base32
-         "1f4kd5cql7knnqaq3ba48kkypw8p60lkfdsnpqxcabdj30gqp55b"))))
+         "1fd72m2afxbbvbgwy8knp6fiq1h561plmsh4r8a08w21ngmkz2s5"))))
     (properties `((upstream-name . "ReactomePA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12834,14 +12945,14 @@ enrichment analysis and several functions for visualization.")
 (define-public r-ebarrays
   (package
     (name "r-ebarrays")
-    (version "2.58.0")
+    (version "2.60.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "EBarrays" version))
        (sha256
         (base32
-         "10dw6c93rmpknzf4cnhw3y7lb27q4xq7x7wirl2a7qywdj0yj2g6"))))
+         "027zarnpxpdnyl877swp5ypxj7zvq0cjp2q2xs6g6yn5dpqjvxxk"))))
     (properties `((upstream-name . "EBarrays")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12878,13 +12989,13 @@ monograph.")
 (define-public r-bioccheck
   (package
     (name "r-bioccheck")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocCheck" version))
               (sha256
                (base32
-                "0w9ddicyp9i8rxf92n9pghd9s6bb8jdjikaylrmkydhb7jbhan0y"))))
+                "1k1gxzmxx26hmwdxgagv93mv4jwyygkk8703ds6nvryzhqffzkbc"))))
     (properties
      `((upstream-name . "BiocCheck")))
     (build-system r-build-system)
@@ -12893,7 +13004,6 @@ monograph.")
            r-graph
            r-httr
            r-knitr
-           r-optparse
            r-biocmanager
            r-biocviews
            r-stringdist))
@@ -12908,14 +13018,14 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
 (define-public r-biocgraph
   (package
     (name "r-biocgraph")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biocGraph" version))
        (sha256
         (base32
-         "0c7r0c1kx22dlwi6d1ldbkkbf53yi0p3vmgbwzrbkn3cina7bcxq"))))
+         "1y59a7c4ahhn1g2wz2hkx83izfn8i85mmxxp63jdd0rg7zwhr6nn"))))
     (properties `((upstream-name . "biocGraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12930,13 +13040,13 @@ different graph related packages produced by Bioconductor.")
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
-    (version "2.22.0")
+    (version "2.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocStyle" version))
               (sha256
                (base32
-                "0xx6xr01sb5wig94515zxgw24r9fv0g962ajy87741civhq32lbd"))))
+                "1nwiib201b9q1x19ihqjqr5jl0vnid8wfgpi8sa3y02bn722g5a5"))))
     (properties
      `((upstream-name . "BiocStyle")))
     (build-system r-build-system)
@@ -12954,13 +13064,13 @@ functionality.")
 (define-public r-biocviews
   (package
     (name "r-biocviews")
-    (version "1.62.1")
+    (version "1.64.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biocViews" version))
               (sha256
                (base32
-                "1v6himzp546dpb990vv0nlya21w8x2x30137rsmahjzg942nzs9r"))))
+                "1lahla53awdqiglfiygbxg5pkzfabym7n5abgyp1nvqsvsj0g126"))))
     (properties
      `((upstream-name . "biocViews")))
     (build-system r-build-system)
@@ -12982,14 +13092,14 @@ also known as views, in a controlled vocabulary.")
 (define-public r-experimenthub
   (package
     (name "r-experimenthub")
-    (version "2.2.1")
+    (version "2.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ExperimentHub" version))
        (sha256
         (base32
-         "0lvd6hyqdfsn5ji714v46qdrb8vr1y38lv0pgw8priab0hpqrbm5"))))
+         "11hna8vrm1az1zk7pw2dv0wh84sd0hw2bi55w40hqvs36csb7lkl"))))
     (properties `((upstream-name . "ExperimentHub")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13016,14 +13126,14 @@ access.")
 (define-public r-grohmm
   (package
     (name "r-grohmm")
-    (version "1.28.0")
+    (version "1.30.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "groHMM" version))
        (sha256
         (base32
-         "1jcj29df4prknqwbydca1jb9w6njacjhwwk9jp0r5mvb88xrm60s"))))
+         "0v2mk7xcy483w2nygpmyjp73kj3v5pkk1kf1wr41n33dxqlddqai"))))
     (properties `((upstream-name . "groHMM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13043,14 +13153,14 @@ access.")
 (define-public r-multiassayexperiment
   (package
     (name "r-multiassayexperiment")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MultiAssayExperiment" version))
        (sha256
         (base32
-         "1h3b8vqlbd04amjprxd1814zksdrbi01a0xn3906vkbqi43hfyn9"))))
+         "1wnp52l9vifxn1wzqgndzp9b6ih0s1cflxx1fhw32k32d05cw9q1"))))
     (properties
      `((upstream-name . "MultiAssayExperiment")))
     (build-system r-build-system)
@@ -13078,14 +13188,14 @@ rownames.")
 (define-public r-bioconcotk
   (package
     (name "r-bioconcotk")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocOncoTK" version))
        (sha256
         (base32
-         "1h5s6wbc5n5x5d28rynxpcmaklxdhf72g9gg9fy8cg77niipvxd9"))))
+         "1alplszw84vqa1mvzp996f94s40scmh4qwbrqhg43hrnyvbnq7pi"))))
     (properties `((upstream-name . "BiocOncoTK")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13123,14 +13233,14 @@ tools for genome-scale analysis of cancer studies.")
 (define-public r-biocor
   (package
     (name "r-biocor")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioCor" version))
        (sha256
         (base32
-         "0ii4g7438lb34ykidkbxw3v3k289k662rgbgayf9gak5avpkb2cq"))))
+         "004mksswampwisljcdz6fswwbgdjdii3y86gjzib0gf8v4w7w4q3"))))
     (properties `((upstream-name . "BioCor")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13150,14 +13260,14 @@ gene selection, testing relationships, and so on.")
 (define-public r-biocpkgtools
   (package
     (name "r-biocpkgtools")
-    (version "1.12.2")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocPkgTools" version))
        (sha256
         (base32
-         "1yz2sgx4xrnw22k3d6q6hkj213bnbb4hbr5ymxnmjnsz551s75ny"))))
+         "1v0824vmg49q9lh0igdyniryyknw6vmh462rn25kmg9hdna0w99h"))))
     (properties `((upstream-name . "BiocPkgTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13198,14 +13308,14 @@ analytics on packages.")
 (define-public r-biocset
   (package
     (name "r-biocset")
-    (version "1.8.1")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocSet" version))
        (sha256
         (base32
-         "1x5ar9byr85iap2x6y66j31fi17wr31awx1gl3z01sckp0dldx6w"))))
+         "1ghba7020inrdxlbrrgds9gjymjxjma2p89b9lgkjin89zalqglh"))))
     (properties `((upstream-name . "BiocSet")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13236,14 +13346,14 @@ accessing web references for elements/sets are also available in BiocSet.")
 (define-public r-biocworkflowtools
   (package
     (name "r-biocworkflowtools")
-    (version "1.20.0")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocWorkflowTools" version))
        (sha256
         (base32
-         "1j9s8w5y8savcmh70npkanxacq1kipxnwk1wsiw5hwnp1p13ldaa"))))
+         "1jj4icpkhrv9f6yx3vghkpdil1pfghf3yvc9756wmndvhs100r5l"))))
     (properties
      `((upstream-name . "BiocWorkflowTools")))
     (build-system r-build-system)
@@ -13269,14 +13379,14 @@ Rmarkdown and LaTeX documents when authoring a Bioconductor Workflow.")
 (define-public r-biodist
   (package
     (name "r-biodist")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bioDist" version))
        (sha256
         (base32
-         "0y35c9sdq5x4q64ip0wgqz59mh01l71k1pp6n8vqbr667nwg0gdp"))))
+         "04nrvrcvpj0sn8p2i8n3ggsl2s7r4na576174i7bn1sj21vr0yb0"))))
     (properties `((upstream-name . "bioDist")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13291,14 +13401,14 @@ distance measures.")
 (define-public r-pcatools
   (package
     (name "r-pcatools")
-    (version "2.6.0")
+    (version "2.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "PCAtools" version))
        (sha256
         (base32
-         "10kfhsxhsjpzal3yvcqg769h5fz99cqqjq217cj9jip3jfh2m2h4"))))
+         "03s4dh008fys2rrcpzanc0892p63f6jyyvzc9m42jbi1dlkyx26v"))))
     (properties `((upstream-name . "PCAtools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13337,14 +13447,14 @@ dimensional mass cytometry data.")
 (define-public r-rgreat
   (package
     (name "r-rgreat")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "rGREAT" version))
        (sha256
         (base32
-         "0kr61mhxp9phn1136fci450zwfhsipchmlm8d5rgib4lh0zbxrhl"))))
+         "0px72r8mjimf5mxfwb9qz46kqpgjw5gaqq41hy0212ymjd8whaky"))))
     (properties `((upstream-name . "rGREAT")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13361,14 +13471,14 @@ user's input and automatically retrieving results from GREAT web server.")
 (define-public r-m3c
   (package
     (name "r-m3c")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "M3C" version))
        (sha256
         (base32
-         "0jsql5wd58hs5mnn9wq5b4kl3z57y6amykirfb3k047zpyi8ijnh"))))
+         "120gd7gkgc98d1l6hl2ij799b3jksdnga5iyb44ps9mbc79hl012"))))
     (properties `((upstream-name . "M3C")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13394,14 +13504,14 @@ hypothesis @code{K=1}.")
 (define-public r-icens
   (package
     (name "r-icens")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Icens" version))
        (sha256
         (base32
-         "08jd7g28mazvwd3qbq8y26czmkz45avp4vy8l7i5d6qajwzqzgzs"))))
+         "0jnbfv7js8bw0ginql90krrpk0p54whj9igw0zk3jc45jqvj2vyc"))))
     (properties `((upstream-name . "Icens")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13517,14 +13627,14 @@ generated.")
 (define-public r-preprocesscore
   (package
     (name "r-preprocesscore")
-    (version "1.56.0")
+    (version "1.58.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "preprocessCore" version))
        (sha256
         (base32
-         "1i93vdqa6pwzamiryp3lv6cyvhx9shs01is0q6vbmdvcbii2vf3x"))))
+         "1sqpp00hhv6gypflrjw8qpqyqgdcp29m86gmi1di1574x8casdkf"))))
     (properties
      `((upstream-name . "preprocessCore")))
     (build-system r-build-system)
@@ -13538,13 +13648,13 @@ routines.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.32.4")
+    (version "0.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "17dvypxcwp8c7ih23hi2366110by6zq1mjgxkmlbiklzachg9780"))))
+                "0j3ybhzdhlhw8527nks3mjja28asjya2n0m0rjkh4bw66rkfys4k"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
@@ -13567,14 +13677,14 @@ S4Vectors package itself.")
 (define-public r-wgcna
   (package
     (name "r-wgcna")
-    (version "1.70-3")
+    (version "1.71")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "WGCNA" version))
        (sha256
         (base32
-         "1m6b4a2xpb02c1ajndhk8qlqnhwxa7lkkwj6nzv3l618jy1kp15r"))))
+         "027pkc4pyn9bifqbjs05318gvlm06mffw016j50n59wfi2g39x91"))))
     (properties `((upstream-name . "WGCNA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13605,14 +13715,14 @@ data manipulation and visualization.")
 (define-public r-rgraphviz
   (package
     (name "r-rgraphviz")
-    (version "2.38.0")
+    (version "2.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rgraphviz" version))
        (sha256
         (base32
-         "0fyv1ybpahkwz3fawzxgxfnshi8y7c18262rgdmqwdl5662vv1p7"))))
+         "1r6ff7w2bmyfl1vzjvpgnhb8f5arwjlpab8fw5ph8fgyiqbcx94l"))))
     (properties `((upstream-name . "Rgraphviz")))
     (build-system r-build-system)
     (arguments
@@ -13643,13 +13753,13 @@ objects from the @code{graph} package.")
 (define-public r-fithic
   (package
     (name "r-fithic")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "FitHiC" version))
               (sha256
                (base32
-                "0a3d2bxp98lmbf3i864zgfwxwvxyqfcrh75z9yz7ra7y44pkjr4y"))))
+                "0iv14yx3g7shzl8qrjknyxbmiylj51sbd1wzr1ff9lc5shgl55kq"))))
     (properties `((upstream-name . "FitHiC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13667,13 +13777,13 @@ assays such as Hi-C.")
 (define-public r-hitc
   (package
     (name "r-hitc")
-    (version "1.38.0")
+    (version "1.40.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "HiTC" version))
               (sha256
                (base32
-                "1ckiwqfq86k8p3y36iwr7k3y6g4z80n8hb047c0i2491lrn23rhx"))))
+                "1pkshlrra26cad0hf8a54brlkazni6rsvrplh36azxapx5rpps4s"))))
     (properties `((upstream-name . "HiTC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13696,14 +13806,14 @@ provided.")
 (define-public r-hdf5array
   (package
     (name "r-hdf5array")
-    (version "1.22.1")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HDF5Array" version))
        (sha256
         (base32
-         "1al4a88pgdl7hfhphsnwl1gg1c1kmw37wcdr4v4pfsw5l8ff7nx4"))))
+         "0s9vj74359ckmwl8r951jxrzkidslwdl9qamkhz8ilw8b5awxyw4"))))
     (properties `((upstream-name . "HDF5Array")))
     (build-system r-build-system)
     (inputs
@@ -13727,22 +13837,21 @@ block processing.")
 (define-public r-rhdf5lib
   (package
     (name "r-rhdf5lib")
-    (version "1.16.0")
+    (version "1.18.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhdf5lib" version))
        (sha256
         (base32
-         "0yly9s3wdnhd9ci2jxfkql38ibv35yzs38a6g6ashbg1m5kgwd9p"))
+         "1jpb8h7c724yz51zjfqs90bsqxgmy1rry2ra9qamsgqpr2j9764g"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; Delete bundled binaries
            (delete-file-recursively "src/wininclude/")
-           (delete-file-recursively "src/winlib-8.3.0/")
-           (delete-file "src/hdf5small_cxx_hl_1.10.7.tar.gz")
-           #t))))
+           (delete-file-recursively "src/winlib/")
+           (delete-file "src/hdf5small_cxx_hl_1.10.7.tar.gz")))))
     (properties `((upstream-name . "Rhdf5lib")))
     (build-system r-build-system)
     (arguments
@@ -13751,11 +13860,8 @@ block processing.")
          (add-after 'unpack 'do-not-use-bundled-hdf5
            (lambda* (#:key inputs #:allow-other-keys)
              (for-each delete-file '("configure" "configure.ac"))
-             ;; Do not make other packages link with the proprietary libsz.
              (substitute* "R/zzz.R"
-               ((" \"%s/libsz.a\"") "")
-               (("patharch, .getDynamicLinks")
-                ".getDynamicLinks"))
+               (("return\\(links\\)") "return(\" -lz\")"))
              (with-directory-excursion "src"
                (invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
                (rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
@@ -13774,6 +13880,8 @@ block processing.")
                             "hdf5/src/libhdf5.settings")
                (rename-file "Makevars.in" "Makevars")
                (substitute* "Makevars"
+                 (("@BUILD_HDF5@") "")
+                 (("@COPY_SZIP@") "")
                  (("@ZLIB_LIB@") "-lz")
                  (("@ZLIB_INCLUDE@") "")
                  (("HDF5_CXX_LIB=.*")
@@ -13809,14 +13917,14 @@ packages.")
 (define-public r-beachmat
   (package
     (name "r-beachmat")
-    (version "2.10.0")
+    (version "2.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "beachmat" version))
        (sha256
         (base32
-         "1l8c9q35mf90ckb366bcfqa0v2gw7ahs2h362j7cwv8fp39h4mpb"))))
+         "0fc6vvjjq1mfjfj2zqkap3rwvinnfqjs0cpk1447sspvd1rjya8c"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics r-delayedarray r-matrix r-rcpp))
@@ -13835,13 +13943,13 @@ matrices.")
 (define-public r-cner
   (package
     (name "r-cner")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "CNEr" version))
        (sha256
-        (base32 "0w4iqmyyhsb6l9bi8c6qwdh4j6z2i1i5fi85ia9069fpl9d0hpl2"))))
+        (base32 "05zvr5fv8nprxqh2wvvrlf737dq242i20p1rpyqjaxihl6xl62kq"))))
     (properties `((upstream-name . "CNEr")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -13883,14 +13991,14 @@ advanced visualization of sets of conserved noncoding elements.")
 (define-public r-tfbstools
   (package
     (name "r-tfbstools")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TFBSTools" version))
        (sha256
         (base32
-         "0j5gv145fczzdspwhbywlg47y05pgnkra9jg7bn4wa1k0cf5pr9g"))))
+         "0l6j1r2cx7jfd39qzbyynk4jvzd81ys6yypzxjc97js4kkyrx29w"))))
     (properties `((upstream-name . "TFBSTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13929,17 +14037,22 @@ provides a wrapper of de novo motif discovery software.")
 (define-public r-maftools
   (package
     (name "r-maftools")
-    (version "2.10.0")
+    (version "2.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "maftools" version))
        (sha256
-        (base32 "1s8w3xwwigz803l81bs9cb2dbvvw5r9z8jjcav1rmh9wm8909nfd"))))
+        (base32 "1gqfi95v4fs64n4walij0g2kds3fbbwp6lih5yakmgf6kj8fpkk6"))))
     (properties `((upstream-name . "maftools")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-data-table r-rcolorbrewer r-rhtslib r-survival r-zlibbioc))
+     (list r-data-table
+           r-dnacopy
+           r-rcolorbrewer
+           r-rhtslib
+           r-survival
+           r-zlibbioc))
     (native-inputs (list r-knitr))
     (home-page "https://github.com/PoisonAlien/maftools")
     (synopsis "Summarize, analyze and visualize MAF files")
@@ -13953,14 +14066,14 @@ customizable visualzations with minimal effort.")
 (define-public r-motifmatchr
   (package
     (name "r-motifmatchr")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifmatchr" version))
        (sha256
         (base32
-         "0f7j54zdn51h1gcn81vqs8avmschjwqprjcfpvsi00q4fna3fg7z"))))
+         "1ssn00mxwk23zr5na0vcmxvm69i68f0ga0wqlv1nk2isg0wpv878"))))
     (properties `((upstream-name . "motifmatchr")))
     (build-system r-build-system)
     (propagated-inputs
@@ -13987,13 +14100,13 @@ This package wraps C++ code from the MOODS motif calling library.")
 (define-public r-chromvar
   (package
     (name "r-chromvar")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromVAR" version))
        (sha256
-        (base32 "0ylsfr540l763bh010irbcavlskahyb1769pppimdgn22gyr3spk"))))
+        (base32 "0vhsvkm4kvln0002f13ayk57f9fmiz1kw9vwpsm1vds1vahd656m"))))
     (properties `((upstream-name . "chromVAR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14034,14 +14147,14 @@ sequence (@code{DNAse-seq}) experiments.")
 (define-public r-singlecellexperiment
   (package
     (name "r-singlecellexperiment")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SingleCellExperiment" version))
        (sha256
         (base32
-         "01075vbs8hy399pxalav9rbkz4djvl84ip559jkz51fypd0m4i39"))))
+         "0s1aqbvlfnzijzfywjfpinqmxqj269dq2d3zlgf4xw9c1nwwnv7p"))))
     (properties
      `((upstream-name . "SingleCellExperiment")))
     (build-system r-build-system)
@@ -14062,13 +14175,13 @@ libraries.")
 (define-public r-singler
   (package
     (name "r-singler")
-    (version "1.8.1")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "SingleR" version))
        (sha256
-        (base32 "0j0h6ipm65wv38qx40z16h01mfirpshfn4lhlwlg2nri4vmihlpi"))))
+        (base32 "0qbyc6ygw2xv3li9187i3axsw6ihwpa7pkvxvy9cagv7xck45c5y"))))
     (properties `((upstream-name . "SingleR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14094,14 +14207,14 @@ cell types to infer the cell of origin of each single cell independently.")
 (define-public r-scuttle
   (package
     (name "r-scuttle")
-    (version "1.4.0")
+    (version "1.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scuttle" version))
        (sha256
         (base32
-         "1dbdb6yc6wk01dljy1vy6f0lf44crc5rxxnc4bhjk8i4iljz8467"))))
+         "0nnmq3wf436xaw4arc4y3ldvn6ilsg52xzbccmid0icb8z3y2kzn"))))
     (properties `((upstream-name . "scuttle")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14129,13 +14242,13 @@ of other packages.")
 (define-public r-scater
   (package
     (name "r-scater")
-    (version "1.22.0")
+    (version "1.24.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "scater" version))
               (sha256
                (base32
-                "0k4i9pwmwxcr5a40ljl27wriccwn5vc52xy48yjjh8ppl5dbggdg"))))
+                "0dqirggw7my5nq4ln9q0ya18ciqplkz9gx318ffias9ag3yii5rw"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-beachmat
@@ -14151,6 +14264,7 @@ of other packages.")
            r-gridextra
            r-matrix
            r-rcolorbrewer
+           r-rcppml
            r-rlang
            r-rtsne
            r-s4vectors
@@ -14170,14 +14284,14 @@ quality control.")
 (define-public r-scran
   (package
     (name "r-scran")
-    (version "1.22.1")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scran" version))
        (sha256
         (base32
-         "06lcxya6rpa8dv0il7m7fwyx0ci1y1jn16ff5lmvzf2mnr6q7lic"))))
+         "0xg7dl35915a65pmzkxdacsm4iqf97ayljdjljcvqx1ycmn7x68w"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-beachmat
@@ -14213,14 +14327,14 @@ variable and significantly correlated genes.")
 (define-public r-sparsematrixstats
   (package
     (name "r-sparsematrixstats")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "sparseMatrixStats" version))
        (sha256
         (base32
-         "0ifqj4a6mn4749sr62gq3dwd6mmbbzdx5mh5b5663vcgl1kw96x1"))))
+         "0p12kay7p5zbfm2589wdx0n9jhgpf5fb2fsmkhn3p4ck4xcy13x2"))))
     (properties
      `((upstream-name . "sparseMatrixStats")))
     (build-system r-build-system)
@@ -14238,14 +14352,14 @@ data in the column sparse format.")
 (define-public r-delayedmatrixstats
   (package
     (name "r-delayedmatrixstats")
-    (version "1.16.0")
+    (version "1.18.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DelayedMatrixStats" version))
        (sha256
         (base32
-         "1pqwkk39rfhcnhmgchk0gfmm4jgasl19yq0nhhwsfj45y2vk6kjk"))))
+         "1qlwv69c0r2w3zkmsr8r7w6sr3hf1ha0sfcrsjx4ks8f0ww7aqsv"))))
     (properties
      `((upstream-name . "DelayedMatrixStats")))
     (build-system r-build-system)
@@ -14274,14 +14388,14 @@ memory usage and processing time is minimized.")
 (define-public r-mscoreutils
   (package
     (name "r-mscoreutils")
-    (version "1.6.2")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MsCoreUtils" version))
        (sha256
         (base32
-         "0614a830gf676ck8j5lkm04158pfvhjb61p3xfdd69gg3d44mk1d"))))
+         "077x1zcy27x8akmagjn75j97082cgnahrbfw0qx08q455m5x3xzh"))))
     (properties `((upstream-name . "MsCoreUtils")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14303,13 +14417,13 @@ within the R for Mass Spectrometry packages.")
 (define-public r-msfeatures
   (package
     (name "r-msfeatures")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MsFeatures" version))
        (sha256
-        (base32 "020ifrijlzdd3qk4bhd9z4knj5d87ildrkl3wcmxvwkvs9rbh8rq"))))
+        (base32 "111iqcq4q315pb4j8z427shin9b00p179m2s9h6dd7imvbd68yq3"))))
     (properties `((upstream-name . "MsFeatures")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14333,14 +14447,14 @@ the respective packages (such as e.g. @code{xcms}).")
 (define-public r-biocio
   (package
     (name "r-biocio")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "BiocIO" version))
         (sha256
           (base32
-            "1qg6v961sbj7qwyjx4z720f6h0kq693p7gc8q99my7gqkbbcxrfr"))))
+            "16j826w4zrmbgpmq6nyglcrjailsfv48ih1rz1qn383g7v503ydp"))))
     (properties `((upstream-name . "BiocIO")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14366,14 +14480,14 @@ as well as local access.  Developers can register a file extension, e.g.,
 (define-public r-msmseda
   (package
     (name "r-msmseda")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "msmsEDA" version))
        (sha256
         (base32
-         "1jammjkjjkcqad2ki02l2pdf4jybyh71hv463aya2ylmzsin5vi9"))))
+         "0jnaq9ar4mnf3pfhka9hvk61p51ny9jws49xi8z29dq288b42b42"))))
     (properties `((upstream-name . "msmsEDA")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14389,14 +14503,14 @@ experiments, and visualize de influence of the involved factors.")
 (define-public r-msmstests
   (package
     (name "r-msmstests")
-    (version "1.32.0")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "msmsTests" version))
        (sha256
         (base32
-         "0xmjgd8rqpb8i7d46pvnj7da2di8bwfdncr48b8hgylkc98ghznb"))))
+         "1wzdz0p9wmr243xkmymx9fwskafkyxgmlip4sd1fy2s06px7r0xi"))))
     (properties `((upstream-name . "msmsTests")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14418,14 +14532,14 @@ relevant, and the minimum expression of the most abundant condition.")
 (define-public r-catalyst
   (package
     (name "r-catalyst")
-    (version "1.18.1")
+    (version "1.20.1")
     (source
       (origin
         (method url-fetch)
         (uri (bioconductor-uri "CATALYST" version))
         (sha256
           (base32
-            "0dvcs7nz1yawcrsf9lqiwdcrvjmbs8ajrmvj0ji4qq2a86n3dkg0"))))
+            "05vfqwa9qsm16px77s9bzygs6zymcxshymmpvz86a9l1cy1yxbza"))))
     (properties `((upstream-name . "CATALYST")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14481,14 +14595,14 @@ preprocessing of cytometry data, including:
 (define-public r-erma
   (package
     (name "r-erma")
-    (version "1.10.0")
+    (version "1.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "erma" version))
        (sha256
         (base32
-         "0pb9ar1wy613vg6sfdmn8n4cfv1328m8bagnigsjdb3hc3hbir4z"))))
+         "1ilq01cr2ipxpmp422fikiz6nj4nasjhj0ikcagjn2zmmarpgi1b"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -14521,14 +14635,14 @@ by Ernst and Kellis.")
 (define-public r-ggbio
   (package
     (name "r-ggbio")
-    (version "1.42.0")
+    (version "1.44.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ggbio" version))
        (sha256
         (base32
-         "1svmjaa3gisi39sl52337drvd54havcy5pjmwrykgykz5flid2m7"))))
+         "1lvms07ba99nzf10gpn50wjca84nj5jrb6902z069p2bfi4xyd27"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -14689,14 +14803,14 @@ family of feature/genome hypotheses.")
 (define-public r-gviz
   (package
     (name "r-gviz")
-    (version "1.38.4")
+    (version "1.40.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Gviz" version))
        (sha256
         (base32
-         "14qybi5b3h9z5b0m127jf7z695amf612rh5wq2g2n1yirfhzbdja"))))
+         "0as3sxhv21bqqrpvafcqim7798hhkzj3q40hy1rqyhv2lhj4rbvi"))))
     (properties `((upstream-name . "Gviz")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14738,14 +14852,14 @@ with your data.")
 (define-public r-gwascat
   (package
     (name "r-gwascat")
-    (version "2.26.0")
+    (version "2.28.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "gwascat" version))
        (sha256
         (base32
-         "0s67jgk3gnfiyfjwhq4r5xlfnip29blis4fg75kn4qmvjv5j2pxx"))))
+         "19ymdxj8966i4yk0zalfw23938cpv4q7pywg4qb242p44na5y9sl"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-annotationdbi
@@ -14772,13 +14886,13 @@ EMBL-EBI GWAS catalog.")
 (define-public r-kegggraph
   (package
     (name "r-kegggraph")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "KEGGgraph" version))
        (sha256
-        (base32 "1qqvbv1sq9j570syb2802ya2ffg1k8f1w986wr6ksqkwxb9qbbm4"))))
+        (base32 "15pq040pcg8hr18xixmjp59xb7mgvygjv6kisqk8yv99l1611ndx"))))
     (properties `((upstream-name . "KEGGgraph")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14796,14 +14910,14 @@ functionalities including parsing, graph operation, visualization and etc.")
 (define-public r-ldblock
   (package
     (name "r-ldblock")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ldblock" version))
        (sha256
         (base32
-         "1v9b372d5hpwwik6956mfwc9b3bibygz042i4nydsklnbwm5vcmg"))))
+         "08ss03b93czwb4x60hsi30ad4lmamvq5mxa8nj0g18z68qcraijm"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-biocgenerics
@@ -14832,14 +14946,14 @@ defining LD blocks.")
 (define-public r-ldheatmap
   (package
     (name "r-ldheatmap")
-    (version "1.0-4")
+    (version "1.0-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "LDheatmap" version))
        (sha256
         (base32
-         "1jp578cf29qcgx95w10lpymlwx2pgjsf0nypwkl9b8g635gkisq7"))))
+         "0gr99kys1ahyl8s6cbj6rmh4vwid8kn92lcbjnwh0ahb73m2xjjc"))))
     (properties `((upstream-name . "LDheatmap")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14858,14 +14972,14 @@ on the plot.")
 (define-public r-abn
   (package
     (name "r-abn")
-    (version "2.7-0")
+    (version "2.7-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abn" version))
        (sha256
         (base32
-         "13i2f4lw1rzj89bp31sn03prq1bqj7bsxwdr8z2ql02yqks9phg0"))))
+         "1w3jns96m8b9scvaa4hcla3i88a0cfh9qis2l04yixvda5q91gpr"))))
     (build-system r-build-system)
     (inputs
      (list gsl))
@@ -14920,13 +15034,13 @@ other functional sequencing data.")
 (define-public r-pathview
   (package
     (name "r-pathview")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "pathview" version))
        (sha256
-        (base32 "1jdl81lvrsz03b1nws90nssf2clipipzaqvwm1pq57mvshnlnkjr"))))
+        (base32 "1472k107f21cflbx2fip92g8gl9wlwxgwfvgvl73ma0y0jzs0qdq"))))
     (properties `((upstream-name . "pathview")))
     (build-system r-build-system)
     (propagated-inputs
@@ -14954,14 +15068,14 @@ large-scale and fully automated analysis.")
 (define-public r-snpstats
   (package
     (name "r-snpstats")
-    (version "1.44.0")
+    (version "1.46.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "snpStats" version))
        (sha256
         (base32
-         "0ha34b5cg26940xihgky45adns1nflrgq2qjq77w4bncxpaacsqq"))))
+         "0a5b5nqc7n965jk45ijwkzbn416ib4gfhp8xl39z8f2bdskip4a2"))))
     (properties `((upstream-name . "snpStats")))
     (build-system r-build-system)
     (inputs (list zlib))
@@ -14978,14 +15092,14 @@ the earlier snpMatrix package, allowing for uncertainty in genotypes.")
 (define-public r-chromstar
   (package
     (name "r-chromstar")
-    (version "1.20.2")
+    (version "1.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "chromstaR" version))
        (sha256
         (base32
-         "1akcmxzn4j9ph4n3lsgfh8fh8hrb28jjamz037w59bsdkcv6wyjq"))))
+         "1xjwmnr4hk8v3nwvhqd6ixk5qr2dv0n4mb9wd6nl7cgjfhjsdgj7"))))
     (properties `((upstream-name . "chromstaR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15016,14 +15130,14 @@ analyses.")
 (define-public r-guitar
   (package
     (name "r-guitar")
-    (version "2.10.0")
+    (version "2.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Guitar" version))
        (sha256
         (base32
-         "082yja4mmsq77sllv3c88agxjbb6jxwil2krb8fkfsijvyyx11c9"))))
+         "09grsasnnk7rmlzjh4lhas9r5spzcsrvmdqj6fx1dk22sckcqahh"))))
     (properties `((upstream-name . "Guitar")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15048,13 +15162,13 @@ starting site, start codon, stop codon and transcription ending site.")
 (define-public r-sushi
   (package
     (name "r-sushi")
-    (version "1.32.0")
+    (version "1.34.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Sushi" version))
               (sha256
                (base32
-                "073mh1d063ph5zk1d8kipgblr4l1ixqbxflhq4669761fi2frlw4"))))
+                "0adswrbzd93rhy3q56ypwkrk6155vd4zxapvznswyjlxp8ha813q"))))
     (properties `((upstream-name . "Sushi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15069,14 +15183,14 @@ visualizations for publication-quality multi-panel figures.")
 (define-public r-ballgown
   (package
     (name "r-ballgown")
-    (version "2.26.0")
+    (version "2.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ballgown" version))
        (sha256
         (base32
-         "0fiky82arvgzgxrm4bqn74m5kngqpdaqf6ks4cr89nlnhfq0v6rf"))))
+         "0l8q3fymskxmsi5jcikzjz5xi66lpzgv7bjymir4izah2v68z708"))))
     (properties `((upstream-name . "ballgown")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15103,14 +15217,14 @@ to annotation.")
 (define-public r-megadepth
   (package
     (name "r-megadepth")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "megadepth" version))
        (sha256
         (base32
-         "0mg7n3990qv65rg624473ssccka0yjpgc20glrdc5saci891j44r"))))
+         "0qq82dmd3drr2bhn51bgbc6ml40klfmmhj6wdj72n9ya6n60lwy8"))))
     (properties `((upstream-name . "megadepth")))
     (build-system r-build-system)
     (inputs (list megadepth))
@@ -15136,23 +15250,23 @@ regions or annotations of your choice from BigWig files.")
 (define-public r-beclear
   (package
     (name "r-beclear")
-    (version "2.10.0")
+    (version "2.12.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BEclear" version))
        (sha256
         (base32
-         "1njb1lfd4wmsrfw06jc8z8vdk14nmcw9lwyvbxr7z1zg4h8v6c29"))))
+         "0x43yfnmb2d782g3g52nqdfs90i3zrrlqz8qy3ybmgv5f8n92p15"))))
     (properties `((upstream-name . "BEclear")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-abind
            r-biocparallel
            r-data-table
+           r-dixontest
            r-futile-logger
            r-matrix
-           r-outliers
            r-rcpp
            r-rdpack))
     (native-inputs
@@ -15169,14 +15283,14 @@ real numbers.")
 (define-public r-bgeecall
   (package
     (name "r-bgeecall")
-    (version "1.10.0")
+    (version "1.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BgeeCall" version))
        (sha256
         (base32
-         "0rbbl8m48qcvl26lnf27jq108p7pi84m9ac3qcpjc0ax5wywbv16"))))
+         "1g12cms66zb45p347h3b358vjhnq76galvwqwq86xby4hnwpdzkh"))))
     (properties `((upstream-name . "BgeeCall")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15205,14 +15319,14 @@ all RNA-Seq libraries of each species integrated in Bgee.")
 (define-public r-bgeedb
   (package
     (name "r-bgeedb")
-    (version "2.20.1")
+    (version "2.22.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BgeeDB" version))
        (sha256
         (base32
-         "0mrw7fwjx8k0a5c3iw2j94h1yn5pkvqil7fbzih9xiafnpbn374m"))))
+         "093zk43x8i9ajaqsdhndkyal3dizllr3g85ziavb3k73dzvarzsc"))))
     (properties `((upstream-name . "BgeeDB")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15239,14 +15353,14 @@ anatomical terms, mapped to genes by expression patterns.")
 (define-public r-biobtreer
   (package
     (name "r-biobtreer")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biobtreeR" version))
        (sha256
         (base32
-         "0m9gx2g5ishbbh7aqp09mpknhr7q1v5ap0s6xp6ccj01pz2gkk8s"))))
+         "0cx46hdqqm6mbj0vp4y86axv0qccd4sgk2jwwjvnqp5pynq9bbqa"))))
     (properties `((upstream-name . "biobtreeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15263,14 +15377,14 @@ mappings functionalities.")
 (define-public r-minet
   (package
     (name "r-minet")
-    (version "3.52.0")
+    (version "3.54.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "minet" version))
        (sha256
         (base32
-         "0nhgvgci4r9pjfsnvxyj2q8im1wvig4zmfx2kidw8f63x2ip2rbd"))))
+         "0q6jw2jqkl9qynjpzaygz45c7dmx1l5y2d8s1illpcf87siawcam"))))
     (properties `((upstream-name . "minet")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15285,14 +15399,14 @@ information networks from data.")
 (define-public r-genetclassifier
   (package
     (name "r-genetclassifier")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "geNetClassifier" version))
        (sha256
         (base32
-         "1phyphdc1i55ab1a05633b0p41q8n7w0byp1plgcav2s3h8mk1km"))))
+         "1kh7mp5h0n7yd1klcd7w4v7i3fh9pkmvgf7189wangfzbcsr4f70"))))
     (properties
      `((upstream-name . "geNetClassifier")))
     (build-system r-build-system)
@@ -15310,14 +15424,14 @@ interface to query the classifier.")
 (define-public r-dir-expiry
   (package
     (name "r-dir-expiry")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "dir.expiry" version))
        (sha256
         (base32
-         "1bwmlxmizhmim2l0mk406hxfr5mnmsg5zbqkjyygaipa971m9s00"))))
+         "098wzm8hlpy70c99k2sl4k8z2dllhw7rwdj8dhcskr7kaw71k3sq"))))
     (properties `((upstream-name . "dir.expiry")))
     (build-system r-build-system)
     (propagated-inputs (list r-filelock))
@@ -15334,14 +15448,14 @@ eliminating obsolete caches generated by old versions of packages.")
 (define-public r-basilisk-utils
   (package
     (name "r-basilisk-utils")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "basilisk.utils" version))
        (sha256
         (base32
-         "0578rq2yz24sv7anb7vp0a0y35944ag1l8ca6haanb03wl97wm99"))))
+         "1jnqv0rlljkq27rd4ixl763v335f2aanm4fzr386yc81fj4vnmhk"))))
     (properties
      `((upstream-name . "basilisk.utils")))
     (build-system r-build-system)
@@ -15358,14 +15472,14 @@ package, primarily for creation of the underlying Conda instance.")
 (define-public r-basilisk
   (package
     (name "r-basilisk")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "basilisk" version))
        (sha256
         (base32
-         "1cdkpngv9qybd9yxc3i2201p433vkkahs71v28x6lgs5l2wz3m1a"))))
+         "1p90wq8a9wrpqpgmcy4zgh5skdw65gg2gsb3lnx78zk9khq0yyzh"))))
     (properties `((upstream-name . "basilisk")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15384,14 +15498,14 @@ Python environments in a single R session.")
 (define-public r-biocthis
   (package
     (name "r-biocthis")
-    (version "1.4.0")
+    (version "1.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biocthis" version))
        (sha256
         (base32
-         "0kh5lmv992v4r5r58x29403cll0zxr9fx4ar81nrzvnch5668v39"))))
+         "1hdgjp00d2si3mr7m1d289i9wn7g927z6n8n27d5sm94lb91qln0"))))
     (properties `((upstream-name . "biocthis")))
     (build-system r-build-system)
     (arguments
@@ -15418,14 +15532,14 @@ Bioconductor-friendly.")
 (define-public r-biocdockermanager
   (package
     (name "r-biocdockermanager")
-    (version "1.6.0")
+    (version "1.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BiocDockerManager" version))
        (sha256
         (base32
-         "1kpdmpcngnl667bfffp9bkf8c31ipmhsncq0h9bf3a4k8b83pi0w"))))
+         "0kl6r8ad728a8dvqx0safj7v5gj1rxxcdiw44jkr1pd5ddv0xbi6"))))
     (properties
      `((upstream-name . "BiocDockerManager")))
     (build-system r-build-system)
@@ -15448,14 +15562,14 @@ the Bioconductor project.")
 (define-public r-biodb
   (package
     (name "r-biodb")
-    (version "1.2.2")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biodb" version))
        (sha256
         (base32
-         "0b5zva16r4kz8736h3djjgmh35nxmlin4f374rb4i2s55zsrb638"))))
+         "02i0n29bp9d9p1ibslxca5m37qsgny2hlgg7d364lf7kc6y2bqni"))))
     (properties `((upstream-name . "biodb")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15493,14 +15607,14 @@ separate published packages.")
 (define-public r-biomformat
   (package
     (name "r-biomformat")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biomformat" version))
        (sha256
         (base32
-         "0xf99j4lhf8kh9h1317hrbzxdv6rljs1fn68r8s40x6y4db3l817"))))
+         "12wqjipxhngmlnrdmx329dqmkmy2wa4nkkrhwaqv2nwy90dncs9n"))))
     (properties `((upstream-name . "biomformat")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15522,14 +15636,14 @@ as extensions of common core functions/methods.")
 (define-public r-mvcclass
   (package
     (name "r-mvcclass")
-    (version "1.68.0")
+    (version "1.70.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "MVCClass" version))
        (sha256
         (base32
-         "088gzh33vjkjf78xczqfs89pyg0k7c3533yfvijqxl84ni2ky78z"))))
+         "0apcjlq4i2mg8mlfqgvlcsqkiy51whzid3nd0m830jff0ywgh47g"))))
     (properties `((upstream-name . "MVCClass")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/MVCClass")
@@ -15542,14 +15656,14 @@ design.")
 (define-public r-biomvcclass
   (package
     (name "r-biomvcclass")
-    (version "1.62.0")
+    (version "1.64.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioMVCClass" version))
        (sha256
         (base32
-         "0jqgazwz35gz11a7vzanyy2yalzalx0z0rw6y18nmk8dbv01nv2j"))))
+         "078pnyygbvbfxziqspfr1nn78w67xyb4qmiwc34czga5psblvfwz"))))
     (properties `((upstream-name . "BioMVCClass")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15564,14 +15678,14 @@ design.")
 (define-public r-biomvrcns
   (package
     (name "r-biomvrcns")
-    (version "1.34.0")
+    (version "1.36.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biomvRCNS" version))
        (sha256
         (base32
-         "01nhjhfyzs67p97bk9bjqdxk239ckl8sgfj55azk1zmw92aw2hfy"))))
+         "0i576g7pkivqaxff1pkb760mdpx8v9fh071aic1mwfnlfa7k87ln"))))
     (properties `((upstream-name . "biomvRCNS")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15589,14 +15703,14 @@ using aCGH or sequencing.")
 (define-public r-bionero
   (package
     (name "r-bionero")
-    (version "1.2.0")
+    (version "1.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNERO" version))
        (sha256
         (base32
-         "0ddrzv1g46hvm52dzrcj5nbyyw9a16cqk8zg20wnkrh3qw1h4d9p"))))
+         "1nyzjbl0gcwvbj2nxfwykirikf8j3rsx5ny45bqjbcb4r23k65kj"))))
     (properties `((upstream-name . "BioNERO")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15645,14 +15759,14 @@ networks.")
 (define-public r-bionet
   (package
     (name "r-bionet")
-    (version "1.54.0")
+    (version "1.56.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNet" version))
        (sha256
         (base32
-         "05rj14jn4gn0hfn57amf19b8fqwkd3y2ji3mg7m1yg1w7n4qxqsg"))))
+         "0kcw71j4nmdkn373wk21ak6h0v4gycivnfrklb72kk1qcmsy1wrm"))))
     (properties `((upstream-name . "BioNet")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15674,14 +15788,14 @@ scoring subnetwork.")
 (define-public r-bionetstat
   (package
     (name "r-bionetstat")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioNetStat" version))
        (sha256
         (base32
-         "13br8x4809hrr4ibz6iy5qjza9j6cazmkpvfikvw6bs588csxwf8"))))
+         "0f387j35lj32ryiw48jz8gc08al2lmmv9zvbbgyjq9wmqlca3dfb"))))
     (properties `((upstream-name . "BioNetStat")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15716,14 +15830,14 @@ network and metabolic pathways view.")
 (define-public r-bioqc
   (package
     (name "r-bioqc")
-    (version "1.22.0")
+    (version "1.24.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioQC" version))
        (sha256
         (base32
-         "190336qk0plg79gzvfn6wfplsi8nq0nj8508g7m0w3z6bdgwy407"))))
+         "0vb2nnzqvyv25pw8qshcmijravswafg0858pkgqjgiv7wsr2mn3m"))))
     (properties `((upstream-name . "BioQC")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15742,23 +15856,23 @@ optimised for high performance.")
 (define-public r-biotip
   (package
     (name "r-biotip")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "BioTIP" version))
        (sha256
         (base32
-         "0xmy5c4i9gf6d04gara6lbnnldqmzjaascb2pd2ih60jw2mvl4ys"))))
+         "1sihi5zy7mlabh3ix1wvdqz8ibfq1avl8bnxjhvxyzq40zbcklh6"))))
     (properties `((upstream-name . "BioTIP")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cluster
            r-genomicranges
-           r-hmisc
            r-igraph
            r-mass
            r-psych
+           r-scran
            r-stringr))
     (native-inputs
      (list r-knitr))
@@ -15772,14 +15886,14 @@ help unravel disease regulatory trajectory.")
 (define-public r-biotmle
   (package
     (name "r-biotmle")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biotmle" version))
        (sha256
         (base32
-         "0p3iavf9059qa8qvfvqzskfc5gki3z0ivkkqdwg5anvf0wv2k47g"))))
+         "1frig90krvfdk6nwpmslpj0pvligyzwzfwwci7hzwcmbglk5jj22"))))
     (properties `((upstream-name . "biotmle")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15814,14 +15928,14 @@ ensemble machine learning for the estimation of nuisance functions.")
 (define-public r-bsseq
   (package
     (name "r-bsseq")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "bsseq" version))
        (sha256
         (base32
-         "1i30zf6457a0qd64s89x9l544y1h0hj9rfgf1m8l4krd487a9b9d"))))
+         "1jpfib2vb6hd7pgh3d33jgch24lba175zmbalwsbgvlmmyyf1ki5"))))
     (properties `((upstream-name . "bsseq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15860,14 +15974,14 @@ visualizing bisulfite sequencing data.")
 (define-public r-dmrseq
   (package
     (name "r-dmrseq")
-    (version "1.14.0")
+    (version "1.16.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "dmrseq" version))
        (sha256
         (base32
-         "1d6y6rbvcgprmzqkdzxg5csf0yv845d9vw10pcd1pzyndrama1vd"))))
+         "1c99l62fi26bnbvpzrlsvvs722za0l5vfhddcrhzzzasabhccb4n"))))
     (properties `((upstream-name . "dmrseq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15906,13 +16020,13 @@ interest on transformed methylation proportions.")
 (define-public r-omnipathr
   (package
     (name "r-omnipathr")
-    (version "3.2.8")
+    (version "3.4.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "OmnipathR" version))
        (sha256
-        (base32 "0vr16ar3rbjsfw4qz2g86lbhvmqwgq0vcahc6vrc4d9rdjxwg6sb"))))
+        (base32 "0vk0fv09j3ql78mzzhdxwxb2b83qqdz2qfd8wpp1vydmcx2vvgni"))))
     (properties `((upstream-name . "OmnipathR")))
     (build-system r-build-system)
     (arguments
@@ -15942,6 +16056,7 @@ interest on transformed methylation proportions.")
            r-tibble
            r-tidyr
            r-tidyselect
+           r-withr
            r-xml2
            r-yaml))
     (native-inputs (list r-knitr))
@@ -15958,14 +16073,14 @@ for ligand activity prediction from transcriptomics data.")
 (define-public r-biscuiteer
   (package
     (name "r-biscuiteer")
-    (version "1.8.0")
+    (version "1.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "biscuiteer" version))
        (sha256
         (base32
-         "16ds322b21g8ys5c3lkrvi70i82f9rxvnknbiqx4sp6f2l01j5yj"))))
+         "0y7vbdaafiga16yr0d22w1v4p0jmczndcar0r0km06f5y1b74amr"))))
     (properties `((upstream-name . "biscuiteer")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15983,6 +16098,7 @@ for ligand activity prediction from transcriptomics data.")
            r-hdf5array
            r-homo-sapiens
            r-impute
+           r-iranges
            r-matrix
            r-matrixstats
            r-mus-musculus
@@ -16009,13 +16125,13 @@ estimates, etc.")
 (define-public r-tcgabiolinks
   (package
     (name "r-tcgabiolinks")
-    (version "2.22.4")
+    (version "2.24.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "TCGAbiolinks" version))
        (sha256
-        (base32 "071wz6dm6dypbfzvxd6j67l1iawlb6d5sfzq871zh06fzaxjm332"))))
+        (base32 "0kw4lrg8xm0ipj7f7h1rwfj7a8mknkril1pn05x08mx13f7p5p14"))))
     (properties `((upstream-name . "TCGAbiolinks")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16064,27 +16180,29 @@ starburst plots) in order to easily develop complete analysis pipelines.")
 (define-public r-tricycle
   (package
     (name "r-tricycle")
-    (version "1.2.1")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tricycle" version))
               (sha256
                (base32
-                "19yh7yif8630j845m9rddva2z0xy4jcw9j4hvyr076jqbyxz998r"))))
+                "0bjkajcz6xcfak6071d0ihakrvgf7s0pmkn6vqkjd6yxbfld7zln"))))
     (properties `((upstream-name . "tricycle")))
     (build-system r-build-system)
-    (propagated-inputs (list r-annotationdbi
-                             r-circular
-                             r-dplyr
-                             r-genomicranges
-                             r-ggplot2
-                             r-iranges
-                             r-rcolorbrewer
-                             r-s4vectors
-                             r-scater
-                             r-scattermore
-                             r-singlecellexperiment
-                             r-summarizedexperiment))
+    (propagated-inputs
+     (list r-annotationdbi
+           r-circular
+           r-dplyr
+           r-genomicranges
+           r-ggnewscale
+           r-ggplot2
+           r-iranges
+           r-rcolorbrewer
+           r-s4vectors
+           r-scater
+           r-scattermore
+           r-singlecellexperiment
+           r-summarizedexperiment))
     (native-inputs (list r-knitr))
     (home-page "https://github.com/hansenlab/tricycle")
     (synopsis "Transferable representation and inference of cell cycle")
@@ -16101,14 +16219,14 @@ embeddings and functions to build new reference.")
 (define-public r-tximeta
   (package
     (name "r-tximeta")
-    (version "1.12.4")
+    (version "1.14.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "tximeta" version))
        (sha256
         (base32
-         "1lm2r64d6sdfzvxcabgs0214cdc5dl9pfx562acjcxz5mb101g9g"))))
+         "1vq7x1sf5h8iwdalalbrybxzbq47s2ymb75himj5wkv77mgcivfl"))))
     (properties `((upstream-name . "tximeta")))
     (build-system r-build-system)
     (propagated-inputs
@@ -16142,13 +16260,13 @@ reproducibility.")
 (define-public r-phyloseq
   (package
     (name "r-phyloseq")
-    (version "1.38.0")
+    (version "1.40.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "phyloseq" version))
        (sha256
-        (base32 "0k0aj8f7g1vr7l0qcc507b3w67zc1k9x7sdblm7mjb20zqr3916s"))))
+        (base32 "0hcyv4ziyaw74mc9vf7bad3q9izi9p0whg3hspbs6w8b3hp34y2k"))))
     (properties `((upstream-name . "phyloseq")))
     (build-system r-build-system)
     (propagated-inputs
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 239a8c13df..1ffac1a0ca 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -211,85 +211,6 @@ tRNA consensus sequences and RNA structure.  It also outputs the secondary
 structure of the predicted RNA.")
     (license license:gpl2)))
 
-(define-public bamm
-  (package
-    (name "bamm")
-    (version "1.7.3")
-    (source (origin
-              (method git-fetch)
-              ;; BamM is not available on pypi.
-              (uri (git-reference
-                    (url "https://github.com/Ecogenomics/BamM")
-                    (commit version)
-                    (recursive? #t)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1p83ahi984ipslxlg4yqy1gdnya9rkn1v71z8djgxkm9d2chw4c5"))
-              (modules '((guix build utils)))
-              (snippet
-               `(begin
-                  ;; Delete bundled htslib.
-                  (delete-file-recursively "c/htslib-1.3.1")))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; BamM is Python 2 only.
-       ;; Do not use bundled libhts.  Do use the bundled libcfu because it has
-       ;; been modified from its original form.
-       #:configure-flags
-       ,#~(let ((htslib #$(this-package-input "htslib")))
-            (list "--with-libhts-lib" (string-append htslib "/lib")
-                  "--with-libhts-inc" (string-append htslib "/include/htslib")))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'autogen
-           (lambda _
-             (with-directory-excursion "c"
-               (let ((sh (which "sh")))
-                 (for-each make-file-writable (find-files "." ".*"))
-                 ;; Use autogen so that 'configure' works.
-                 (substitute* "autogen.sh" (("/bin/sh") sh))
-                 (setenv "CONFIG_SHELL" sh)
-                 (invoke "./autogen.sh")))))
-         (delete 'build)                ;the build loops otherwise
-         (replace 'check
-           (lambda _
-             ;; There are 2 errors printed, but they are safe to ignore:
-             ;; 1) [E::hts_open_format] fail to open file ...
-             ;; 2) samtools view: failed to open ...
-             (invoke "nosetests")))
-         (add-after 'install 'wrap-executable
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out  (assoc-ref outputs "out"))
-                    (path (getenv "PATH"))
-                    (pythonpath (getenv "GUIX_PYTHONPATH")))
-               (wrap-program (string-append out "/bin/bamm")
-                 `("PATH" ":" prefix (,path))
-                 `("GUIX_PYTHONPATH" ":" prefix (,pythonpath)))))))))
-    (native-inputs
-     (list autoconf
-           automake
-           libtool
-           zlib
-           python2-nose
-           python2-pysam))
-    (inputs
-     (list htslib-1.3 ; At least one test fails on htslib-1.4+.
-           samtools
-           bwa
-           grep
-           sed
-           coreutils))
-    (propagated-inputs
-     (list python2-numpy))
-    (home-page "https://ecogenomics.github.io/BamM/")
-    (synopsis "Metagenomics-focused BAM file manipulator")
-    (description
-     "BamM is a C library, wrapped in python, to efficiently generate and
-parse BAM files, specifically for the analysis of metagenomic data.  For
-instance, it implements several methods to assess contig-wise read coverage.")
-    (license license:lgpl3+)))
-
 (define-public bamtools
   (package
     (name "bamtools")
@@ -840,52 +761,6 @@ frames} (ORFs) using ribosome profiling (ribo-seq) data.  This package
 provides the Ribotaper pipeline.")
     (license license:gpl3+)))
 
-(define-public ribodiff
-  (package
-    (name "ribodiff")
-    (version "0.2.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ratschlab/RiboDiff")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0x75nlp7qnmm64jasbi6l21f2cy99r2cjyl6b4hr8zf2bq22drnz"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         ;; This test fails because of the matplotlib plotting backend.
-         (add-after 'unpack 'disable-plot-test
-           (lambda _
-             (substitute* "src/ribodiff/functional_test_te.py"
-               (("pl\\.make_plots\\(data, opts\\)") "#"))))
-         ;; Generate an installable executable script wrapper.
-         (add-after 'unpack 'patch-setup.py
-           (lambda _
-             (substitute* "setup.py"
-               (("^(.*)packages=.*" line prefix)
-                (string-append line "\n"
-                               prefix "scripts=['scripts/TE.py'],\n"))))))))
-    (inputs
-     (list python2-numpy python2-matplotlib python2-scipy
-           python2-statsmodels))
-    (native-inputs
-     (list python2-mock python2-nose))
-    (home-page "https://public.bmi.inf.ethz.ch/user/zhongy/RiboDiff/")
-    (synopsis "Detect translation efficiency changes from ribosome footprints")
-    (description "RiboDiff is a statistical tool that detects the protein
-translational efficiency change from Ribo-Seq (ribosome footprinting) and
-RNA-Seq data.  It uses a generalized linear model to detect genes showing
-difference in translational profile taking mRNA abundance into account.  It
-facilitates us to decipher the translational regulation that behave
-independently with transcriptional regulation.")
-    (license license:gpl3+)))
-
 (define-public bioawk
   (package
     (name "bioawk")
@@ -1027,14 +902,6 @@ pybedtools extends BEDTools by offering feature-level manipulations from with
 Python.")
     (license license:gpl2+)))
 
-(define-public python2-pybedtools
-  (let ((pybedtools (package-with-python2 python-pybedtools)))
-    (package
-      (inherit pybedtools)
-      (native-inputs
-       (modify-inputs (package-native-inputs pybedtools)
-         (prepend python2-pathlib))))))
-
 (define-public python-biom-format
   (package
     (name "python-biom-format")
@@ -1283,9 +1150,6 @@ into separate processes; and more.")
                (base32
                 "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh"))))))
 
-(define-public python2-biopython
-  (package-with-python2 python-biopython))
-
 (define-public python-fastalite
   (package
     (name "python-fastalite")
@@ -1306,9 +1170,6 @@ into separate processes; and more.")
 relying on a complex dependency tree.")
     (license license:expat)))
 
-(define-public python2-fastalite
-  (package-with-python2 python-fastalite))
-
 (define-public biosoup
   (package
     (name "biosoup")
@@ -2377,9 +2238,6 @@ SAM/BAM format.  Pysam is a lightweight wrapper of the SAMtools C API.  It
 also includes an interface for tabix.")
     (license license:expat)))
 
-(define-public python2-pysam
-  (package-with-python2 python-pysam))
-
 (define-public python-twobitreader
   (package
     (name "python-twobitreader")
@@ -2440,59 +2298,60 @@ high-throughput sequencing data – with an emphasis on simplicity.")
 (define-public tetoolkit
   (package
     (name "tetoolkit")
-    (version "2.0.3")
+    (version "2.2.1b")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/mhammell-laboratory/tetoolkit")
+                    (url "https://github.com/mhammell-laboratory/TEtranscripts")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1yzi0kfpzip8zpjb82x1ik6h22yzfyjiz2dv85v6as2awwqvk807"))))
+                "1m3xsydakhdan9gp9mfdz7llka5g6ak91d0mbl1cmmxq9qs6an4y"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2               ; not guaranteed to work with Python 3
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'make-writable
+         (add-after 'unpack 'adjust-requirements
            (lambda _
-             (for-each make-file-writable (find-files "."))
-             #t))
+             (substitute* "setup.py"
+               ;; This defunct dependency isn't required for Python 3 (see:
+               ;; https://github.com/mhammell-laboratory/TEtranscripts/issues/111).
+               ((".*'argparse'.*") ""))))
          (add-after 'unpack 'patch-invocations
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* '("bin/TEtranscripts"
                             "bin/TEcount")
                (("'sort ")
-                (string-append "'" (which "sort") " "))
+                (string-append "'" (search-input-file inputs "bin/sort") " "))
                (("'rm -f ")
-                (string-append "'" (which "rm") " -f "))
-               (("'Rscript'") (string-append "'" (which "Rscript") "'")))
+                (string-append "'" (search-input-file inputs "bin/rm") " -f "))
+               (("'Rscript'")
+                (string-append "'" (search-input-file inputs "bin/Rscript")
+                               "'")))
              (substitute* "TEToolkit/IO/ReadInputs.py"
-               (("BamToBED") (which "bamToBed")))
+               (("BamToBED")
+                (search-input-file inputs "bin/bamToBed")))
              (substitute* "TEToolkit/Normalization.py"
                (("\"Rscript\"")
-                (string-append "\"" (which "Rscript") "\"")))
-             #t))
+                (string-append "\"" (search-input-file inputs "bin/Rscript")
+                               "\"")))))
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure the executables find R packages.
-             (let ((out (assoc-ref outputs "out")))
-               (for-each
-                (lambda (script)
-                  (wrap-program (string-append out "/bin/" script)
-                    `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
-                '("TEtranscripts"
-                  "TEcount")))
-             #t)))))
+             (for-each (lambda (script)
+                         (wrap-program script
+                           `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
+                       (list (search-input-file outputs "bin/TEtranscripts")
+                             (search-input-file outputs "bin/TEcount"))))))))
     (inputs
-     (list coreutils
+     (list bash-minimal
+           coreutils
            bedtools
-           python2-argparse
-           python2-pysam
+           python-pysam
            r-minimal
            r-deseq2))
-    (home-page "https://github.com/mhammell-laboratory/tetoolkit")
+    (home-page "https://github.com/mhammell-laboratory/TEtranscripts")
     (synopsis "Transposable elements in differential enrichment analysis")
     (description
      "This is package for including transposable elements in differential
@@ -2903,9 +2762,6 @@ files.")
 accessing bigWig files.")
     (license license:expat)))
 
-(define-public python2-pybigwig
-  (package-with-python2 python-pybigwig))
-
 (define-public python-schema-salad
   (package
     (name "python-schema-salad")
@@ -3093,22 +2949,6 @@ writing, simulation, processing and manipulation of phylogenetic
 trees (phylogenies) and characters.")
     (license license:bsd-3)))
 
-(define-public python2-dendropy
-  (let ((base (package-with-python2 python-dendropy)))
-    (package/inherit base
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'remove-failing-test
-             (lambda _
-               ;; This test fails when the full test suite is run, as documented
-               ;; at https://github.com/jeetsukumaran/DendroPy/issues/74
-               (substitute* "tests/test_dataio_nexml_reader_tree_list.py"
-                 (("test_collection_comments_and_annotations")
-                  "do_not_test_collection_comments_and_annotations"))
-               #t)))
-         ,@(package-arguments base))))))
-
 (define-public python-py2bit
   (package
     (name "python-py2bit")
@@ -3817,96 +3657,6 @@ supports next-generation sequencing data in fasta/q and csfasta/q format from
 Illumina, Roche 454, and the SOLiD platform.")
     (license license:bsd-3)))
 
-(define-public fraggenescan
-  (package
-    (name "fraggenescan")
-    (version "1.30")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "mirror://sourceforge/fraggenescan/"
-                       "FragGeneScan" version ".tar.gz"))
-       (sha256
-        (base32 "158dcnwczgcyhwm4qlx19sanrwgdpzf6bn2y57mbpx55lkgz1mzj"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'build 'patch-paths
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (string-append (assoc-ref outputs "out")))
-                    (share (string-append out "/share/fraggenescan/")))
-               (substitute* "run_FragGeneScan.pl"
-                 (("system\\(\"rm")
-                  (string-append "system(\"" (which "rm")))
-                 (("system\\(\"mv")
-                  (string-append "system(\"" (which "mv")))
-                 (("\\\"awk") (string-append "\"" (which "awk")))
-                 ;; This script and other programs expect the training files
-                 ;; to be in the non-standard location bin/train/XXX. Change
-                 ;; this to be share/fraggenescan/train/XXX instead.
-                 (("^\\$train.file = \\$dir.*")
-                  (string-append "$train_file = \""
-                                 share
-                                 "train/\".$FGS_train_file;")))
-               (substitute* "run_hmm.c"
-                 (("^  strcat\\(train_dir, \\\"train/\\\"\\);")
-                  (string-append "  strcpy(train_dir, \"" share "/train/\");"))))
-             #t))
-         (replace 'build
-           (lambda _
-             (invoke "make" "clean")
-             (invoke "make" "fgs")
-             #t))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (string-append (assoc-ref outputs "out")))
-                    (bin (string-append out "/bin/"))
-                    (share (string-append out "/share/fraggenescan/train")))
-               (install-file "run_FragGeneScan.pl" bin)
-               (install-file "FragGeneScan" bin)
-               (copy-recursively "train" share))
-             #t))
-         (delete 'check)
-         (add-after 'install 'post-install-check
-           ;; In lieu of 'make check', run one of the examples and check the
-           ;; output files gets created.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (string-append (assoc-ref outputs "out")))
-                    (bin (string-append out "/bin/"))
-                    (frag (string-append bin "run_FragGeneScan.pl")))
-               ;; Test complete genome.
-               (invoke frag
-                       "-genome=./example/NC_000913.fna"
-                       "-out=./test2"
-                       "-complete=1"
-                       "-train=complete")
-               (unless (and (file-exists? "test2.faa")
-                            (file-exists? "test2.ffn")
-                            (file-exists? "test2.gff")
-                            (file-exists? "test2.out"))
-                 (error "Expected files do not exist."))
-               ;; Test incomplete sequences.
-               (invoke frag
-                       "-genome=./example/NC_000913-fgs.ffn"
-                       "-out=out"
-                       "-complete=0"
-                       "-train=454_30")
-               #t))))))
-    (inputs
-     `(("perl" ,perl)
-       ("python" ,python-2))) ;not compatible with python 3.
-    (home-page "https://sourceforge.net/projects/fraggenescan/")
-    (synopsis "Finds potentially fragmented genes in short reads")
-    (description
-     "FragGeneScan is a program for predicting bacterial and archaeal genes in
-short and error-prone DNA sequencing reads.  It can also be applied to predict
-genes in incomplete assemblies or complete genomes.")
-    ;; GPL3+ according to private correspondense with the authors.
-    (license license:gpl3+)))
-
 (define-public fxtract
   (let ((util-commit "776ca85a18a47492af3794745efcb4a905113115"))
     (package
@@ -4028,48 +3778,6 @@ standard linear mixed model resolver with application in @acronym{GWAS,
 genome-wide association studies}.")
     (license license:gpl3)))
 
-(define-public grit
-  (package
-    (name "grit")
-    (version "2.0.5")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/nboley/grit")
-                    (commit version)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "1l5v8vfvfbrpmgnrvbrbv40d0arhxcnmxgv2f1mlcqfa3q6bkqm9"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'generate-from-cython-sources
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Delete these C files to force fresh generation from pyx sources.
-             (delete-file "grit/sparsify_support_fns.c")
-             (delete-file "grit/call_peaks_support_fns.c")
-             (substitute* "setup.py"
-               (("Cython.Setup") "Cython.Build"))
-             #t)))))
-    (inputs
-     (list python2-scipy python2-numpy python2-pysam python2-networkx))
-    (native-inputs
-     (list python2-cython))
-    ;; The canonical <http://grit-bio.org> home page times out as of 2020-01-21.
-    (home-page "https://github.com/nboley/grit")
-    (synopsis "Tool for integrative analysis of RNA-seq type assays")
-    (description
-     "GRIT is designed to use RNA-seq, TES, and TSS data to build and quantify
-full length transcript models.  When none of these data sources are available,
-GRIT can be run by providing a candidate set of TES or TSS sites.  In
-addition, GRIT can merge in reference junctions and gene boundaries.  GRIT can
-also be run in quantification mode, where it uses a provided GTF file and just
-estimates transcript expression.")
-    (license license:gpl3+)))
-
 (define-public hisat
   (package
     (name "hisat")
@@ -4250,9 +3958,6 @@ HMMs).")
 from high-throughput sequencing assays.")
     (license license:gpl3+)))
 
-(define-public python2-htseq
-  (package-with-python2 htseq))
-
 (define-public java-htsjdk
   (package
     (name "java-htsjdk")
@@ -5394,54 +5099,6 @@ unassembled metagenomic reads, but is mainly designed for full genomes and
 assembled metagenomic sequence.")
     (license license:gpl3+)))
 
-(define-public miso
-  (let ((commit "b71402188000465e3430736a11ea118fd5639a4a")
-        (revision "1"))
-    (package
-      (name "miso")
-      (version (git-version "0.5.4" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/yarden/MISO/")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0x37ipwwvpxbkrg17gmq3hp92c9cphch8acd6cj7fqgnrjwd47g5"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(substitute* "setup.py"
-                    ;; Use "gcc" instead of "cc" for compilation.
-                    (("^defines")
-                     "cc.set_executables(
-compiler='gcc',
-compiler_so='gcc',
-linker_exe='gcc',
-linker_so='gcc -shared'); defines")))))
-      (build-system python-build-system)
-      (arguments
-       `(#:python ,python-2               ; only Python 2 is supported
-         #:tests? #f))                    ; no "test" target
-      (inputs
-       ;; Samtools must not be newer than 1.2.  See
-       ;; https://github.com/yarden/MISO/issues/135
-       (list samtools-1.2 python2-numpy python2-pysam python2-scipy
-             python2-matplotlib))
-      (native-inputs
-       (list python2-mock ; for tests
-             python2-pytz))  ; for tests
-      (home-page "https://miso.readthedocs.io/en/fastmiso/")
-      (synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation")
-      (description
-       "MISO (Mixture-of-Isoforms) is a probabilistic framework that quantitates
-the expression level of alternatively spliced genes from RNA-Seq data, and
-identifies differentially regulated isoforms or exons across samples.  By
-modeling the generative process by which reads are produced from isoforms in
-RNA-Seq, the MISO model uses Bayesian inference to compute the probability
-that a read originated from a particular isoform.")
-      (license license:gpl2))))
-
 (define-public muscle
   (package
     (name "muscle")
@@ -5532,80 +5189,6 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
     (home-page "https://github.com/wwood/OrfM")
     (license license:lgpl3+)))
 
-(define-public python2-pbcore
-  (package
-    (name "python2-pbcore")
-    (version "1.2.10")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "pbcore" version))
-              (sha256
-               (base32
-                "1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2               ;pbcore < 2.0 requires Python 2.7
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'remove-sphinx-dependency
-                    (lambda _
-                      ;; Sphinx is only required for documentation tests, which
-                      ;; we do not run; furthermore it depends on python2-sphinx
-                      ;; which is no longer maintained.
-                      (substitute* "requirements-dev.txt"
-                        (("^sphinx") ""))
-                      #t)))))
-    (propagated-inputs
-     (list python2-cython python2-numpy python2-pysam python2-h5py))
-    (native-inputs
-     (list python2-nose python2-pyxb))
-    (home-page "https://pacificbiosciences.github.io/pbcore/")
-    (synopsis "Library for reading and writing PacBio data files")
-    (description
-     "The pbcore package provides Python APIs for interacting with PacBio data
-files and writing bioinformatics applications.")
-    (license license:bsd-3)))
-
-(define-public python2-warpedlmm
-  (package
-    (name "python2-warpedlmm")
-    (version "0.21")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "WarpedLMM" version ".zip"))
-       (sha256
-        (base32
-         "1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2  ; requires Python 2.7
-       #:tests? #f ; test data are not included
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'use-weave
-           (lambda _
-             (substitute* "warpedlmm/util/linalg.py"
-               (("from scipy import linalg, weave")
-                "from scipy import linalg\nimport weave"))
-             #t)))))
-    (propagated-inputs
-     (list python2-scipy
-           python2-numpy
-           python2-matplotlib
-           python2-fastlmm
-           python2-pandas
-           python2-pysnptools
-           python2-weave))
-    (native-inputs
-     (list python2-mock python2-nose unzip))
-    (home-page "https://github.com/PMBio/warpedLMM")
-    (synopsis "Implementation of warped linear mixed models")
-    (description
-     "WarpedLMM is a Python implementation of the warped linear mixed model,
-which automatically learns an optimal warping function (or transformation) for
-the phenotype as it models the data.")
-    (license license:asl2.0)))
-
 (define-public prank
   (package
     (name "prank")
@@ -5727,45 +5310,6 @@ clusters them to find significant groups.  The algorithm was designed to handle
 large-scale data and can be applied to hundreds of species at once.")
     (license license:gpl3+)))
 
-(define-public pyicoteo
-  (package
-    (name "pyicoteo")
-    (version "2.0.7")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://bitbucket.org/regulatorygenomicsupf/pyicoteo.git")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "0hz5g8d25lbjy1wpscr490l0lmyvaix893hhax4fxnh1h9w34w8p"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; does not work with Python 3
-       #:tests? #f))      ; there are no tests
-    (inputs
-     (list python2-matplotlib))
-    (home-page "https://bitbucket.org/regulatorygenomicsupf/pyicoteo")
-    (synopsis "Analyze high-throughput genetic sequencing data")
-    (description
-     "Pyicoteo is a suite of tools for the analysis of high-throughput genetic
-sequencing data.  It works with genomic coordinates.  There are currently six
-different command-line tools:
-
-@enumerate
-@item pyicoregion: for generating exploratory regions automatically;
-@item pyicoenrich: for differential enrichment between two conditions;
-@item pyicoclip: for calling CLIP-Seq peaks without a control;
-@item pyicos: for genomic coordinates manipulation;
-@item pyicoller: for peak calling on punctuated ChIP-Seq;
-@item pyicount: to count how many reads from N experiment files overlap in a
-  region file;
-@item pyicotrocol: to combine operations from pyicoteo.
-@end enumerate\n")
-    (license license:gpl3+)))
-
 (define-public prodigal
   (package
     (name "prodigal")
@@ -6835,9 +6379,6 @@ Values such as sequence name, sequence description, sequence quality and the
 sequence itself can be retrieved from these databases.")
     (license license:bsd-3)))
 
-(define-public python2-screed
-  (package-with-python2 python-screed))
-
 (define-public sra-tools
   (package
     (name "sra-tools")
@@ -8822,32 +8363,6 @@ regions of statistically significant read enrichment.  Additional covariates
 may optionally be provided to further inform the peak-calling process.")
       (license license:gpl3+))))
 
-(define-public pepr
-  (package
-    (name "pepr")
-    (version "1.0.9")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "PePr" version))
-              (sha256
-               (base32
-                "0qxjfdpl1b1y53nccws2d85f6k74zwmx8y8sd9rszcqhfayx6gdx"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; python2 only
-       #:tests? #f)) ; no tests included
-    (propagated-inputs
-     (list python2-numpy python2-scipy python2-pysam))
-    (home-page "https://github.com/shawnzhangyx/PePr")
-    (synopsis "Peak-calling and prioritization pipeline for ChIP-Seq data")
-    (description
-     "PePr is a ChIP-Seq peak calling or differential binding analysis tool
-that is primarily designed for data with biological replicates.  It uses a
-negative binomial distribution to model the read counts among the samples in
-the same group, and look for consistent differences between ChIP and control
-group or two ChIP groups run under different conditions.")
-    (license license:gpl3+)))
-
 (define-public filevercmp
   (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")
         (revision "1"))
@@ -9373,72 +8888,6 @@ adapter trimming as well as quality control, with some added functionality to
 remove biased methylation positions for RRBS sequence files.")
     (license license:gpl3+)))
 
-(define-public gess
-  (package
-    (name "gess")
-    (version "1.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://compbio.uthscsa.edu/"
-                                  "GESS_Web/files/"
-                                  "gess-" version ".src.tar.gz"))
-              (sha256
-               (base32
-                "0hyk403kxscclzfs24pvdgiv0wm03kjcziqdrp5w46cb049gz0d7"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f                      ; no tests
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((python (assoc-ref inputs "python"))
-                    (out    (assoc-ref outputs "out"))
-                    (bin    (string-append out "/bin/"))
-                    (target (string-append
-                             out "/lib/python"
-                             ,(version-major+minor
-                                (package-version python))
-                             "/site-packages/gess/")))
-               (mkdir-p target)
-               (copy-recursively "." target)
-               ;; Make GESS.py executable
-               (chmod (string-append target "GESS.py") #o555)
-               ;; Add Python shebang to the top and make Matplotlib
-               ;; usable.
-               (substitute* (string-append target "GESS.py")
-                 (("\"\"\"Description:" line)
-                  (string-append "#!" (which "python") "
-import matplotlib
-matplotlib.use('Agg')
-" line)))
-               ;; Make sure GESS has all modules in its path
-               (wrap-script (string-append target "GESS.py")
-                 #:guile (search-input-file inputs "bin/guile")
-                 `("GUIX_PYTHONPATH" ":" = (,target ,(getenv "GUIX_PYTHONPATH"))))
-               (mkdir-p bin)
-               (symlink (string-append target "GESS.py")
-                        (string-append bin "GESS.py"))
-               #t))))))
-    (inputs
-     `(("python" ,python-2)
-       ("python2-pysam" ,python2-pysam)
-       ("python2-scipy" ,python2-scipy)
-       ("python2-numpy" ,python2-numpy)
-       ("python2-networkx" ,python2-networkx)
-       ("python2-biopython" ,python2-biopython)
-       ("guile" ,guile-3.0))) ; for the script wrapper
-    (home-page "https://compbio.uthscsa.edu/GESS_Web/")
-    (synopsis "Detect exon-skipping events from raw RNA-seq data")
-    (description
-     "GESS is an implementation of a novel computational method to detect de
-novo exon-skipping events directly from raw RNA-seq data without the prior
-knowledge of gene annotation information.  GESS stands for the graph-based
-exon-skipping scanner detection scheme.")
-    (license license:bsd-3)))
-
 (define-public phylip
   (package
     (name "phylip")
@@ -10992,7 +10441,7 @@ once.  This package provides tools to perform Drop-seq analyses.")
 (define-public pigx-rnaseq
   (package
     (name "pigx-rnaseq")
-    (version "0.0.20")
+    (version "0.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
@@ -11000,7 +10449,7 @@ once.  This package provides tools to perform Drop-seq analyses.")
                                   "/pigx_rnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0bf65qqvlkc77vl7cmmzacq70f0qav4p6nf8pp3x1vdd0nvhr24f"))))
+                "0acdjimfb9ywba8zsv7lavv436pmcmp8ra683h11wr4s3681pqk8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f             ; not supported
@@ -11094,6 +10543,15 @@ expression report comparing samples in an easily configurable manner.")
        (modify-phases %standard-phases
          (add-before 'bootstrap 'autoreconf
            (lambda _
+             ;; This was fixed in commit
+             ;; 0b1c9f7f2e4d0ff601f1de95ab8b2953f4d5dbc7, but there is no
+             ;; release with this fix.
+             (call-with-output-file "VERSION"
+               (lambda (port) (display ,version port)))
+             ;; See https://github.com/BIMSBbioinfo/pigx_chipseq/issues/176
+             (substitute* "m4/ax_r_package.m4"
+               (("if\\(is.na\\(packageDescription\\(\"PKG\"\\)\\)\\)")
+                "if(system.file(package=\"PKG\") == \"\")"))
              (invoke "autoreconf" "-vif")))
          (add-before 'configure 'set-PYTHONPATH
            (lambda _
@@ -11182,6 +10640,15 @@ in an easily configurable manner.")
        (modify-phases %standard-phases
          (add-before 'bootstrap 'autoreconf
            (lambda _
+             ;; This was fixed in commit
+             ;; d56ac732524da659afbbb0972f7a87fa178ae58e, but there is no
+             ;; release with this fix.
+             (call-with-output-file "VERSION"
+               (lambda (port) (display ,version port)))
+             ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/181
+             (substitute* "m4/ax_r_package.m4"
+               (("if\\(is.na\\(packageDescription\\(\"PKG\"\\)\\)\\)")
+                "if(system.file(package=\"PKG\") == \"\")"))
              (invoke "autoreconf" "-vif")))
          (add-before 'configure 'set-PYTHONPATH
            (lambda _
@@ -11249,8 +10716,20 @@ methylation and segmentation.")
                 "1lc42hl8mz95kilh0z39s3wnv092mhm6vl2i394n0yfvdzk4f885"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases
+     `(#:phases
        (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             ;; This was fixed in commit
+             ;; c4ac067438ae9312b5786a72e2bfb3d795e3ec8a, but there is no
+             ;; release with this fix.
+             (call-with-output-file "VERSION"
+               (lambda (port) (display ,version port)))
+             ;; https://github.com/BIMSBbioinfo/pigx_scrnaseq/issues/59
+             (substitute* "m4/ax_r_package.m4"
+               (("if\\(is.na\\(packageDescription\\(\"PKG\"\\)\\)\\)")
+                "if(system.file(package=\"PKG\") == \"\")"))
+             (invoke "autoreconf" "-vif")))
          (add-before 'configure 'set-additional-environment-variables
            (lambda _
              ;; Needed because of loompy
@@ -11299,6 +10778,8 @@ methylation and segmentation.")
            r-singlecellexperiment
            r-stringr
            r-yaml))
+    (native-inputs
+     (list autoconf automake))
     (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
     (synopsis "Analysis pipeline for single-cell RNA sequencing experiments")
     (description
@@ -11327,6 +10808,13 @@ based methods.")
      `(#:tests? #f ;requires huge kraken database
        #:phases
        (modify-phases %standard-phases
+         (add-before 'bootstrap 'autoreconf
+           (lambda _
+             ;; https://github.com/BIMSBbioinfo/pigx_sars-cov-2/issues/123
+             (substitute* "m4/ax_r_package.m4"
+               (("if\\(is.na\\(packageDescription\\(\"PKG\"\\)\\)\\)")
+                "if(system.file(package=\"PKG\") == \"\")"))
+             (invoke "autoreconf" "-vif")))
          (add-before 'configure 'set-PYTHONPATH
            (lambda _
              (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
@@ -12093,56 +11581,6 @@ conversions, region filtering, FASTA sequence extraction and more.")
       (license (list license:expat
                      license:artistic2.0)))))
 
-(define-public find-circ
-  ;; The last release was in 2015.  The license was clarified in 2017, so we
-  ;; take the latest commit.
-  (let ((commit "8655dca54970fcf7e92e22fbf57e1188724dda7d")
-        (revision "1"))
-    (package
-      (name "find-circ")
-      (version (git-version "1.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/marvin-jens/find_circ")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0p77pbqbclqr4srms34y1b9b4njybfpjiknc11ki84f3p8skb3cg"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f                    ; there are none
-         #:phases
-         ;; There is no actual build system.
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'build)
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin"))
-                      (path (getenv "GUIX_PYTHONPATH")))
-                 (for-each (lambda (script)
-                             (install-file script bin)
-                             (wrap-program (string-append bin "/" script)
-                               `("GUIX_PYTHONPATH" ":" prefix (,path))))
-                           '("cmp_bed.py"
-                             "find_circ.py"
-                             "maxlength.py"
-                             "merge_bed.py"
-                             "unmapped2anchors.py")))
-               #t)))))
-      (inputs
-       (list python-2 python2-pysam python2-numpy))
-      (home-page "https://github.com/marvin-jens/find_circ")
-      (synopsis "circRNA detection from RNA-seq reads")
-      (description "This package provides tools to detect head-to-tail
-spliced (back-spliced) sequencing reads, indicative of circular RNA (circRNA)
-in RNA-seq data.")
-      (license license:gpl3))))
-
 (define-public fit-sne
   (package
     (name "fit-sne")
@@ -12209,7 +11647,7 @@ implementation differs in these ways:
 (define-public python-scanpy
   (package
     (name "python-scanpy")
-    (version "1.8.2")
+    (version "1.9.1")
     (source
      (origin
        (method git-fetch)
@@ -12219,7 +11657,7 @@ implementation differs in these ways:
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "14zax23lqinv7xyv3491vpl3ydi38naiwaxg5mkfs5zk2406cqdr"))))
+         "0k524xnx3dvpz5yx65p316wghvi01zs17is8w2m3w2qywiswk0sl"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -12239,6 +11677,10 @@ implementation differs in these ways:
                            (invoke "python" "-m" "pip" "install"
                                    wheel (string-append "--prefix=" out)))
                          (find-files "dist" "\\.whl$")))))
+         ;; Numba needs a writable dir to cache functions.
+         (add-before 'check 'set-numba-cache-dir
+           (lambda _
+             (setenv "NUMBA_CACHE_DIR" "/tmp")))
          (replace 'check
            (lambda* (#:key tests? inputs #:allow-other-keys)
              (when tests?
@@ -12246,6 +11688,7 @@ implementation differs in these ways:
                (delete-file-recursively "scanpy/tests/notebooks")
                (delete-file "scanpy/tests/test_clustering.py")
                (delete-file "scanpy/tests/test_datasets.py")
+               (delete-file "scanpy/tests/test_normalization.py")
                (delete-file "scanpy/tests/test_score_genes.py")
                (delete-file "scanpy/tests/test_highly_variable_genes.py")
 
@@ -12254,6 +11697,9 @@ implementation differs in these ways:
                (delete-file "scanpy/tests/test_preprocessing.py")
                (delete-file "scanpy/tests/test_read_10x.py")
 
+               ;; These two fail with "ValueError: I/O operation on closed file."
+               (delete-file "scanpy/tests/test_neighbors_key_added.py")
+
                ;; TODO: these fail with TypingError and "Use of unsupported
                ;; NumPy function 'numpy.split'".
                (delete-file "scanpy/tests/test_metrics.py")
@@ -12279,17 +11725,20 @@ implementation differs in these ways:
                                       " and not test_clustermap"
 
                                       ;; These try to connect to the network
+                                      " and not test_scrublet_plots"
                                       " and not test_plot_rank_genes_groups_gene_symbols"
+                                      " and not test_pca_n_pcs"
                                       " and not test_pca_chunked"
                                       " and not test_pca_sparse"
                                       " and not test_pca_reproducible"))))))))
     (propagated-inputs
      (list python-anndata
+           python-dask
            python-h5py
            python-igraph
            python-joblib
            python-legacy-api-wrap
-           python-louvain-0.7
+           python-louvain
            python-matplotlib
            python-natsort
            python-networkx
@@ -12300,6 +11749,7 @@ implementation differs in these ways:
            python-scikit-learn
            python-scipy
            python-seaborn
+           python-session-info
            python-sinfo
            python-statsmodels
            python-tables
@@ -12636,9 +12086,6 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
 fasta subsequences.")
     (license license:bsd-3)))
 
-(define-public python2-pyfaidx
-  (package-with-python2 python-pyfaidx))
-
 (define-public python-cooler
   (package
     (name "python-cooler")
@@ -13083,42 +12530,6 @@ of Nanopore reads that were barcoded with the Native Barcoding Kit, PCR
 Barcoding Kit or Rapid Barcoding Kit.")
       (license license:gpl3+))))
 
-(define-public poretools
-  ;; The latest release was in 2016 and the latest commit is from 2017
-  ;; the recommended way to install is to clone the git repository
-  ;; https://poretools.readthedocs.io/en/latest/content/installation.html
-  (let ((commit "e426b1f09e86ac259a00c261c79df91510777407")
-        (revision "1"))
-    (package
-      (name "poretools")
-      (version (git-version "0.6.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/arq5x/poretools")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am"))))
-      (build-system python-build-system)
-      ;; requires python >=2.7, <3.0, and the same for python dependencies
-      (arguments `(#:python ,python-2))
-      (inputs
-       (list hdf5))
-      (propagated-inputs
-       (list python2-dateutil python2-h5py python2-matplotlib
-             python2-pandas python2-seaborn))
-      (home-page "https://poretools.readthedocs.io")
-      (synopsis "Toolkit for working with nanopore sequencing data")
-      (description
-       "The MinION from Oxford Nanopore Technologies is a nanopore sequencer.
-This @code{poretools} package is a flexible toolkit for exploring datasets
-generated by nanopore sequencing devices for the purposes of quality control and
-downstream analysis.  Poretools operates directly on the native FAST5, a variant
-of the Hierarchical Data Format (HDF5) standard.")
-      (license license:expat))))
-
 (define-public jamm
   (package
     (name "jamm")
@@ -13831,162 +13242,6 @@ Additionally, the AdapterRemoval may be used to recover a consensus adapter
 sequence for paired-ended data, for which this information is not available.")
     (license license:gpl3+)))
 
-(define-public pplacer
-  (let ((commit "807f6f3"))
-    (package
-      (name "pplacer")
-      ;; The commit should be updated with each version change.
-      (version "1.1.alpha19")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/matsen/pplacer")
-               (commit (string-append "v" version))))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
-      (build-system ocaml-build-system)
-      (arguments
-       `(#:modules ((guix build ocaml-build-system)
-                    (guix build utils)
-                    (ice-9 ftw))
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'fix-build-with-latest-ocaml
-             (lambda _
-               (substitute* "myocamlbuild.ml"
-                 (("dep \\[\"c_pam\"\\]" m)
-                  (string-append "flag [\"ocaml\"; \"compile\"] (A \"-unsafe-string\");\n"
-                                 m))
-                 (("let run_and_read" m)
-                  (string-append "
-let split s ch =
-  let x = ref [] in
-  let rec go s =
-    let pos = String.index s ch in
-    x := (String.before s pos)::!x;
-    go (String.after s (pos + 1))
-  in
-  try go s
-  with Not_found -> !x
-let split_nl s = split s '\\n'
-let before_space s =
-  try String.before s (String.index s ' ')
-  with Not_found -> s
-
-" m))
-                 (("run_and_read \"ocamlfind list \\| cut -d' ' -f1\"" m)
-                  (string-append "List.map before_space (split_nl & " m ")"))
-                 (("    blank_sep_strings &") "")
-                 (("      Lexing.from_string &") ""))
-               #t))
-           (add-after 'unpack 'replace-bundled-cddlib
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
-                      (local-dir "cddlib_guix"))
-                 (mkdir local-dir)
-                 (with-directory-excursion local-dir
-                   (invoke "tar" "xvf" cddlib-src))
-                 (let ((cddlib-src-folder
-                        (string-append local-dir "/"
-                                       (list-ref (scandir local-dir) 2)
-                                       "/lib-src")))
-                   (for-each make-file-writable (find-files "cdd_src" ".*"))
-                   (for-each
-                    (lambda (file)
-                      (copy-file file
-                                 (string-append "cdd_src/" (basename file))))
-                    (find-files cddlib-src-folder ".*[ch]$")))
-                 #t)))
-           (add-after 'unpack 'fix-makefile
-             (lambda _
-               ;; Remove system calls to 'git'.
-               (substitute* "Makefile"
-                 (("^DESCRIPT:=pplacer-.*")
-                  (string-append
-                   "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
-               (substitute* "myocamlbuild.ml"
-                 (("git describe --tags --long .*\\\" with")
-                  (string-append
-                   "echo -n v" ,version "-" ,commit "\" with")))
-               #t))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let* ((out (assoc-ref outputs "out"))
-                      (bin (string-append out "/bin")))
-                 (copy-recursively "bin" bin))
-               #t)))
-       #:ocaml ,ocaml-4.07
-       #:findlib ,ocaml4.07-findlib))
-      (inputs
-       `(("zlib" ,zlib "static")
-         ("gsl" ,gsl-static)
-         ("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))
-         ("ocaml-batteries" ,(package-with-ocaml4.07 ocaml-batteries))
-         ("ocaml-camlzip" ,(package-with-ocaml4.07 camlzip))
-         ("ocaml-csv" ,(package-with-ocaml4.07 ocaml-csv))
-         ("ocaml-sqlite3" ,(package-with-ocaml4.07 ocaml-sqlite3))
-         ("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm))
-         ("ocaml-mcl" ,(package-with-ocaml4.07 ocaml-mcl))
-         ("ocaml-gsl" ,ocaml4.07-gsl-1)
-         ("sqlite:static" ,sqlite "static")))
-      (native-inputs
-       `(("cddlib-src" ,(package-source cddlib))
-         ("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))
-         ("pkg-config" ,pkg-config)))
-      (propagated-inputs
-       (list pplacer-scripts))
-      (synopsis "Phylogenetic placement of biological sequences")
-      (description
-       "Pplacer places query sequences on a fixed reference phylogenetic tree
-to maximize phylogenetic likelihood or posterior probability according to a
-reference alignment.  Pplacer is designed to be fast, to give useful
-information about uncertainty, and to offer advanced visualization and
-downstream analysis.")
-      (home-page "https://matsen.fhcrc.org/pplacer/")
-      (license license:gpl3))))
-
-;; This package is installed alongside 'pplacer'.  It is a separate package so
-;; that it can use the python-build-system for the scripts that are
-;; distributed alongside the main OCaml binaries.
-(define pplacer-scripts
-  (package
-    (inherit pplacer)
-    (name "pplacer-scripts")
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'enter-scripts-dir
-           (lambda _ (chdir "scripts") #t))
-         (replace 'check
-           (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
-         (add-after 'install 'wrap-executables
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (let ((path (string-append
-                            (assoc-ref inputs "hmmer") "/bin:"
-                            (assoc-ref inputs "infernal") "/bin")))
-                 (display path)
-                 (wrap-program (string-append bin "/refpkg_align.py")
-                   `("PATH" ":" prefix (,path))))
-               (let ((path (string-append
-                            (assoc-ref inputs "hmmer") "/bin")))
-                 (wrap-program (string-append bin "/hrefpkg_query.py")
-                   `("PATH" ":" prefix (,path)))))
-             #t)))))
-    (inputs
-     `(("infernal" ,infernal)
-       ("hmmer" ,hmmer)))
-    (propagated-inputs
-     `(("python-biopython" ,python2-biopython)
-       ("taxtastic" ,taxtastic)))
-    (synopsis "Pplacer Python scripts")))
-
 (define-public checkm
   (package
     (name "checkm")
@@ -14024,9 +13279,6 @@ on marker set compatibility, similarity in genomic characteristics, and
 proximity within a reference genome.")
     (license license:gpl3+)))
 
-(define-public python2-checkm-genome
-  (deprecated-package "python2-checkm-genome" checkm))
-
 (define-public umi-tools
   (package
     (name "umi-tools")
@@ -14422,6 +13674,47 @@ some of the details of opening and jumping in tabix-indexed files.")
       ;; The licensing terms are unclear: https://github.com/ekg/smithwaterman/issues/9.
       (license (list license:gpl2 license:expat)))))
 
+(define-public sylamer
+  (package
+    (name "sylamer")
+    (version "18-131")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/micans/sylamer/")
+                    (commit "aa75c3584797c0c15f860addb645f7bc1dd7627d")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1ddiwlrdghhb4574rvfw0brjp9gs5l6nfsy82h0m4mvz1dr3gkj5"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ; no test target
+      #:make-flags
+      #~(list (string-append "GSLPREFIX=" #$(this-package-input "gsl")))
+      #:phases
+      '(modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("cp sylamer \\$\\(HOME\\)/local/bin")
+                (string-append "install -D -t " (assoc-ref outputs "out")
+                               "/bin sylamer")))
+             (install-file "Makefile" "src")
+             (chdir "src"))))))
+    (inputs (list gsl zlib))
+    (home-page "https://www.ebi.ac.uk/research/enright/software/sylamer")
+    (synopsis "Asses microRNA binding and siRNA off-target effects")
+    (description "Sylamer is a system for finding significantly over or
+under-represented words in sequences according to a sorted gene list.
+Typically it is used to find significant enrichment or depletion of microRNA
+or siRNA seed sequences from microarray expression data.  Sylamer is extremely
+fast and can be applied to genome-wide datasets with ease.  Results are
+plotted in terms of a significance landscape plot.  These plots show
+significance profiles for each word studied across the sorted genelist.")
+    (license license:gpl3+)))
+
 (define-public multichoose
   (package
     (name "multichoose")
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 0191bb8e1b..1c9358b896 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -255,49 +255,6 @@ Transmission BitTorrent daemon.")
     (home-page "https://github.com/tremc/tremc")
     (license l:gpl3+)))
 
-(define-public transmission-remote-cli
-  (package
-    (name "transmission-remote-cli")
-    (version "1.7.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/fagga/transmission-remote-cli")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "09w9f8vrm61lapin8fmq4rgahr95y3c6wss10g0fgd0kl16f895v"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; only supports Python 2
-       #:tests? #f ; no test suite
-       #:phases (modify-phases %standard-phases
-                  ;; The software is just a Python script that must be
-                  ;; copied into place.
-                  (delete 'build)
-                  (replace 'install
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (bin (string-append out "/bin"))
-                             (man (string-append out "/share/man/man1"))
-                             ;; FIXME install zsh completions
-                             (completions (string-append out "/etc/bash_completion.d")))
-                        (install-file "transmission-remote-cli" bin)
-                        (install-file "transmission-remote-cli.1" man)
-                        (install-file
-                          (string-append
-                            "completion/bash/"
-                            "transmission-remote-cli-bash-completion.sh")
-                          completions)))))))
-    (synopsis "Console client for the Transmission BitTorrent daemon")
-    (description "Transmission-remote-cli is a console client, with a curses
-interface, for the Transmission BitTorrent daemon.  This package is no longer
-maintained upstream.")
-    (home-page "https://github.com/fagga/transmission-remote-cli")
-    (license l:gpl3+)
-    (properties `((superseded . ,tremc)))))
-
 (define-public aria2
   (package
     (name "aria2")
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index b53b1f4257..ca320c37fb 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -278,13 +278,6 @@ across a broad spectrum of applications.")
 (define-public boost-with-python3
   (deprecated-package "boost-with-python3" boost))
 
-(define-public boost-with-python2
-  (package/inherit boost
-    (name "boost-python2")
-    (native-inputs
-     `(("python" ,python-2)
-       ,@(alist-delete "python" (package-native-inputs boost))))))
-
 (define-public boost-static
   (package
     (inherit boost)
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index ee9f886917..5c8b547c0d 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -16,7 +16,7 @@
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
 ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
-;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
 ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
@@ -818,19 +818,8 @@ but it works for any C/C++ project.")
     (description
      "Parameterized is a Python library that aims to fix parameterized testing
 for every Python test framework.  It supports nose, py.test, and unittest.")
-    (properties `((python2-variant . ,(delay python2-parameterized))))
     (license license:bsd-2)))
 
-(define-public python2-parameterized
-  (let ((base (package-with-python2 (strip-python2-variant
-                                     python-parameterized))))
-    (package/inherit
-     base
-     (source
-      (origin
-        (inherit (package-source base))
-        (patches (search-patches "python2-parameterized-docstring-test.patch")))))))
-
 (define-public python-minimock
   (package
     (name "python-minimock")
@@ -849,9 +838,6 @@ for every Python test framework.  It supports nose, py.test, and unittest.")
 doctest.")
     (license license:expat)))
 
-(define-public python2-minimock
-  (package-with-python2 python-minimock))
-
 (define-public python-mock
   (package
     (name "python-mock")
@@ -876,18 +862,8 @@ doctest.")
 of your system under test with mock objects and make assertions about how they
 have been used.  This library is now part of Python (since Python 3.3),
 available via the @code{unittest.mock} module.")
-    (properties `((python2-variant . ,(delay python2-mock))))
     (license license:expat)))
 
-(define-public python2-mock
-  (let ((base (package-with-python2
-               (strip-python2-variant python-mock))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-functools32" ,python2-functools32)
-         ("python2-funcsigs" ,python2-funcsigs)
-         ,@(package-propagated-inputs base))))))
-
 ;;; This package is unmaintained (see the note at the top of doc/index.rst).
 (define-public python-nose
   (package
@@ -911,17 +887,7 @@ available via the @code{unittest.mock} module.")
     (synopsis "Python testing library")
     (description
      "Nose extends the unittest library to make testing easier.")
-    (license license:lgpl2.0+)
-    (properties `((python2-variant . ,(delay python2-nose))))))
-
-(define-public python2-nose
-  (let ((base (package-with-python2
-               (strip-python2-variant python-nose))))
-    (package/inherit base
-      (arguments (substitute-keyword-arguments (package-arguments base)
-                   ((#:phases phases)
-                    `(modify-phases ,phases
-                       (delete 'invoke-2to3))))))))
+    (license license:lgpl2.0+)))
 
 (define-public python-nose2
   (package
@@ -947,9 +913,6 @@ better plugin api, being easier for users to configure, and simplifying internal
 interfaces and processes.")
     (license license:bsd-2)))
 
-(define-public python2-nose2
-  (package-with-python2 python-nose2))
-
 (define-public python-unittest2
   (package
     (name "python-unittest2")
@@ -980,9 +943,6 @@ interfaces and processes.")
 standard library.")
     (license license:psfl)))
 
-(define-public python2-unittest2
-  (package-with-python2 python-unittest2))
-
 (define-public python-pytest
   (package
     (name "python-pytest")
@@ -1043,77 +1003,17 @@ standard library.")
      "Pytest is a testing tool that provides auto-discovery of test modules
 and functions, detailed info on failing assert statements, modular fixtures,
 and many external plugins.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest))))))
+    (license license:expat)))
 
 (define-public python-pytest-6 python-pytest)
 
-;; Pytest 4.x are the last versions that support Python 2.
-(define-public python2-pytest
-  (package
-    (inherit (strip-python2-variant python-pytest))
-    (name "python2-pytest")
-    (version "4.6.11")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "pytest" version))
-              (sha256
-               (base32
-                "0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       ,@(package-arguments python-pytest)))
-    (propagated-inputs
-     `(("python-atomicwrites" ,python2-atomicwrites)
-       ("python-attrs" ,python2-attrs-bootstrap)
-       ("python-funcsigs" ,python2-funcsigs)
-       ("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
-       ("python-more-itertools" ,python2-more-itertools)
-       ("python-packaging" ,python2-packaging-bootstrap)
-       ("python-pathlib2" ,python2-pathlib2)
-       ("python-pluggy" ,python2-pluggy)
-       ("python-py" ,python2-py)
-       ("python-six" ,python2-six-bootstrap)
-       ("python-wcwidth" ,python2-wcwidth)))
-    (native-inputs
-     `(("bash" ,bash)                   ;tests require 'compgen'
-       ("python-hypothesis" ,python2-hypothesis)
-       ("python-nose" ,python2-nose)
-       ("python-mock" ,python2-mock)
-       ("python-pytest" ,python2-pytest-bootstrap)
-       ("python-setuptools-scm" ,python2-setuptools-scm)))))
-
 (define-public python-pytest-bootstrap
   (package
-    (inherit (strip-python2-variant python-pytest))
+    (inherit python-pytest)
     (name "python-pytest-bootstrap")
     (native-inputs (list python-iniconfig python-setuptools-scm
                          python-toml))
-    (arguments `(#:tests? #f))
-    (properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
-
-(define-public python2-pytest-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-pytest
-    (name "python2-pytest-bootstrap")
-    (arguments
-     (substitute-keyword-arguments (package-arguments python2-pytest)
-       ((#:tests? _ #f) #f)))
-    (native-inputs
-     `(("python-setuptools-scm" ,python2-setuptools-scm)))
-     (propagated-inputs
-      `(("python-atomicwrites" ,python2-atomicwrites)
-        ("python-attrs" ,python2-attrs-bootstrap)
-        ("python-funcsigs" ,python2-funcsigs-bootstrap)
-        ("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
-        ("python-more-itertools" ,python2-more-itertools)
-        ("python-packaging" ,python2-packaging-bootstrap)
-        ("python-pathlib2" ,python2-pathlib2-bootstrap)
-        ("python-pluggy" ,python2-pluggy-bootstrap)
-        ("python-py" ,python2-py)
-        ("python-wcwidth" ,python2-wcwidth))))))
+    (arguments `(#:tests? #f))))
 
 (define-public python-pytest-assume
   (package
@@ -1178,38 +1078,6 @@ distributed testing in both @code{load} and @code{each} modes.  It also
 supports coverage of subprocesses.")
   (license license:expat)))
 
-(define-public python2-pytest-cov
-  (package
-    (name "python2-pytest-cov")
-    (version "2.8.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "pytest-cov" version))
-        (sha256
-         (base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-          (lambda _
-            ;; Options taken from tox.ini.
-            ;; TODO: make "--restructuredtext" tests pass. They currently fail
-            ;; with "Duplicate implicit target name".
-            (invoke "python" "./setup.py" "check"
-                    "--strict" "--metadata"))))))
-    (propagated-inputs
-     (list python2-coverage python2-pytest))
-    (home-page "https://github.com/pytest-dev/pytest-cov")
-    (synopsis "Pytest plugin for measuring coverage")
-    (description
-     "Pytest-cov produces coverage reports.  It supports centralised testing and
-distributed testing in both @code{load} and @code{each} modes.  It also
-supports coverage of subprocesses.")
-  (license license:expat)))
-
 (define-public python-pytest-httpserver
   (package
     (name "python-pytest-httpserver")
@@ -1344,25 +1212,6 @@ Python's @code{random.seed}.")
 @file{setup.py} files can use to run tests.")
     (license license:expat)))
 
-(define-public python2-pytest-runner
-  (package-with-python2 python-pytest-runner))
-
-;; python-bleach 3.1.0 requires this ancient version of pytest-runner.
-;; Remove once no longer needed.
-(define-public python-pytest-runner-2
-  (package
-    (inherit python-pytest-runner)
-   (version "2.12.2")
-   (source (origin
-             (method url-fetch)
-             (uri (pypi-uri "pytest-runner" version))
-             (sha256
-              (base32
-               "11ivjj9hfphkv4yfb2g74av4yy86y8gcbf7gbif0p1hcdfnxg3w6"))))))
-
-(define-public python2-pytest-runner-2
-  (package-with-python2 python-pytest-runner-2))
-
 (define-public python-pytest-lazy-fixture
   (package
     (name "python-pytest-lazy-fixture")
@@ -1434,29 +1283,8 @@ around the patching API provided by the @code{mock} package, but with the
 benefit of not having to worry about undoing patches at the end of a test.
 The mocker fixture has the same API as @code{mock.patch}, supporting the
 same arguments.")
-    (properties `((python2-variant . ,(delay python2-pytest-mock))))
     (license license:expat)))
 
-(define-public python2-pytest-mock
-  (let ((base (package-with-python2
-               (strip-python2-variant python-pytest-mock))))
-    (package/inherit base
-      (version "1.10.1")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "pytest-mock" version))
-         (sha256
-          (base32
-           "1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
-      (arguments
-       `(#:python ,python-2))
-      (native-inputs
-       `(("python2-setuptools-scm" ,python2-setuptools-scm)))
-      (propagated-inputs
-       `(("python2-mock" ,python2-mock)
-         ("python2-pytest" ,python2-pytest))))))
-
 (define-public python-pytest-xdist
   (package
     (name "python-pytest-xdist")
@@ -1509,9 +1337,6 @@ program code to a remote location, executes there, and then syncs the
 result back.")
     (license license:expat)))
 
-(define-public python2-pytest-xdist
-  (package-with-python2 python-pytest-xdist))
-
 (define-public python-pytest-xdist-next
   (package/inherit python-pytest-xdist
     (name "python-pytest-xdist")
@@ -1910,9 +1735,6 @@ library to determine which lines are executable, and which have been
 executed.")
     (license license:bsd-3)))
 
-(define-public python2-coverage
-  (package-with-python2 python-coverage))
-
 (define-public python-pytest-asyncio
   (package
     (name "python-pytest-asyncio")
@@ -1973,9 +1795,6 @@ and @code{nose2-cov}.  It is useful for developing coverage plugins for these
 testing frameworks.")
     (license license:expat)))
 
-(define-public python2-cov-core
- (package-with-python2 python-cov-core))
-
 (define-public python-codecov
   (package
     (name "python-codecov")
@@ -2064,9 +1883,6 @@ tools for mocking system commands and recording calls to those.")
     (home-page "https://github.com/trentm/testlib")
     (license license:expat)))
 
-(define-public python2-testlib
-  (package-with-python2 python-testlib))
-
 ;;; The software provided by this package was integrated into pytest 2.8.
 (define-public python-pytest-cache
   (package
@@ -2087,9 +1903,6 @@ the last py.test invocation.")
     (home-page "https://bitbucket.org/hpk42/pytest-cache/")
     (license license:expat)))
 
-(define-public python2-pytest-cache
-  (package-with-python2 python-pytest-cache))
-
 (define-public python-pytest-localserver
   (package
     (name "python-pytest-localserver")
@@ -2160,9 +1973,6 @@ normally the case.")
     (home-page "https://github.com/untitaker/pytest-subtesthack/")
     (license license:unlicense)))
 
-(define-public python2-pytest-subtesthack
-  (package-with-python2 python-pytest-subtesthack))
-
 (define-public python-pytest-sugar
   (package
     (name "python-pytest-sugar")
@@ -2207,8 +2017,7 @@ much larger range of examples than you would ever want to write by hand.  It’s
 based on the Haskell library, Quickcheck, and is designed to integrate
 seamlessly into your existing Python unit testing work flow.")
     (home-page "https://github.com/HypothesisWorks/hypothesis")
-    (license license:mpl2.0)
-    (properties `((python2-variant . ,(delay python2-hypothesis))))))
+    (license license:mpl2.0)))
 
 ;;; TODO: Make the default python-hypothesis in the next rebuild cycle.
 (define-public python-hypothesis-next
@@ -2225,22 +2034,6 @@ seamlessly into your existing Python unit testing work flow.")
      (modify-inputs (package-propagated-inputs python-hypothesis)
        (append python-pytest)))))       ;to satisfy the sanity-check phase
 
-;; This is the last version of Hypothesis that supports Python 2.
-(define-public python2-hypothesis
-  (let ((hypothesis (package-with-python2
-                     (strip-python2-variant python-hypothesis))))
-    (package (inherit hypothesis)
-      (version "4.57.1")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "hypothesis" version))
-                (sha256
-                 (base32
-                  "183gpxbfcdhdqzlahkji5a71n6lmvgqsbkcb0ihqad51n2j6jhrw"))))
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs hypothesis)
-         (prepend python2-enum34))))))
-
 (define-public python-hypothesmith
   (package
     (name "python-hypothesmith")
@@ -2430,9 +2223,6 @@ a Pytest test execution.")
     (description "Pytest plugin for checking PEP8 compliance.")
     (license license:expat)))
 
-(define-public python2-pytest-pep8
-  (package-with-python2 python-pytest-pep8))
-
 (define-public python-pytest-perf
   (package
     (name "python-pytest-perf")
@@ -2522,9 +2312,6 @@ each of the environments.")
     (description "Pytest plugin for checking Python source code with pyflakes.")
     (license license:expat)))
 
-(define-public python2-pytest-flakes
-  (package-with-python2 python-pytest-flakes))
-
 (define-public python-coverage-test-runner
   (package
     (name "python-coverage-test-runner")
@@ -2555,9 +2342,6 @@ unit tests and failing them if the unit test module does not exercise all
 statements in the module it tests.")
     (license license:gpl3+)))
 
-(define-public python2-coverage-test-runner
-  (package-with-python2 python-coverage-test-runner))
-
 (define-public python-pylint
   (package
     (name "python-pylint")
@@ -2629,9 +2413,6 @@ cases.  Since they are TestCase subclasses, they work with other test suites tha
 recognize TestCases.")
     (license license:bsd-2)))
 
-(define-public python2-python-paramunittest
-  (package-with-python2 python-paramunittest))
-
 (define-public python-pytest-warnings
   (package
     (name "python-pytest-warnings")
@@ -2652,14 +2433,7 @@ recognize TestCases.")
      "Python-pytest-warnings is a pytest plugin to list Python warnings in
 pytest report.")
     (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pytest-warnings))
-                  ;; This package is part of pytest as of version 3.1.0.
-                  (superseded . ,python-pytest)))))
-
-(define-public python2-pytest-warnings
-  (package (inherit (package-with-python2
-                     (strip-python2-variant python-pytest-warnings)))
-           (properties `((superseded . ,python2-pytest)))))
+    (properties `((superseded unquote python-pytest)))))
 
 (define-public python-pytest-capturelog
   (package
@@ -2681,9 +2455,6 @@ pytest report.")
      "Python-pytest-catchlog is a pytest plugin to catch log messages.")
     (license license:expat)))
 
-(define-public python2-pytest-capturelog
-  (package-with-python2 python-pytest-capturelog))
-
 (define-public python-pytest-catchlog
   (package
     (name "python-pytest-catchlog")
@@ -2707,9 +2478,6 @@ pytest report.")
 a fork of pytest-capturelog.")
     (license license:expat)))
 
-(define-public python2-pytest-catchlog
-  (package-with-python2 python-pytest-catchlog))
-
 (define-public python-nosexcover
   (package
     (name "python-nosexcover")
@@ -2733,9 +2501,6 @@ It will honor all the options you pass to the Nose coverage plugin,
 especially -cover-package.")
     (license license:expat)))
 
-(define-public python2-nosexcover
-  (package-with-python2 python-nosexcover))
-
 (define-public python-discover
   (package
     (name "python-discover")
@@ -2756,9 +2521,6 @@ especially -cover-package.")
 backported from Python 2.7 for Python 2.4+.")
     (license license:bsd-3)))
 
-(define-public python2-discover
-  (package-with-python2 python-discover))
-
 (define-public behave
   (package
     (name "behave")
@@ -2859,9 +2621,6 @@ JSON APIs with Behave.")
 @command{nosetests} command of the Python Nose unit test framework.")
     (license license:bsd-3)))
 
-(define-public python2-rednose
-  (package-with-python2 python-rednose))
-
 (define-public python-nose-random
   (package
     (name "python-nose-random")
@@ -2912,9 +2671,6 @@ by resetting it to a repeatable number for each test, enabling the tests to
 create data based on random numbers and yet remain repeatable.")
     (license license:bsd-3)))
 
-(define-public python2-nose-randomly
-  (package-with-python2 python-nose-randomly))
-
 (define-public python-nose-timer
   (package
     (name "python-nose-timer")
@@ -2933,9 +2689,6 @@ create data based on random numbers and yet remain repeatable.")
     (description "Shows how much time was needed to run individual tests.")
     (license license:expat)))
 
-(define-public python2-nose-timer
-  (package-with-python2 python-nose-timer))
-
 (define-public python-freezegun
   (package
     (name "python-freezegun")
@@ -2966,37 +2719,6 @@ create data based on random numbers and yet remain repeatable.")
 time by mocking the datetime module.")
     (license license:asl2.0)))
 
-(define-public python2-freezegun
-  (package
-    (name "python2-freezegun")
-    (version "0.3.14")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "freezegun" version))
-       (sha256
-        (base32 "0al75mk829j1izxi760b7yjnknjihyfhp2mvi5qiyrxb9cpxwqk2"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python2-mock python2-pytest))
-    (propagated-inputs
-     (list python2-six python2-dateutil))
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         ;; The tests are normally executed via `make test`, but the PyPi
-         ;; package does not include the Makefile.
-         (replace 'check
-           (lambda _
-             (invoke "pytest" "-vv"))))))
-    (home-page "https://github.com/spulec/freezegun")
-    (synopsis "Test utility for mocking the datetime module")
-    (description
-     "FreezeGun is a library that allows your python tests to travel through
-time by mocking the datetime module.")
-    (license license:asl2.0)))
-
 (define-public python-flexmock
   (package
     (name "python-flexmock")
@@ -3015,9 +2737,6 @@ time by mocking the datetime module.")
 mocks, stubs and fakes.")
     (license license:bsd-3)))
 
-(define-public python2-flexmock
-  (package-with-python2 python-flexmock))
-
 (define-public python-flaky
   (package
     (name "python-flaky")
@@ -3044,9 +2763,6 @@ those tests or marking them to @code{@@skip}, they can be automatically
 retried.")
     (license license:asl2.0)))
 
-(define-public python2-flaky
-  (package-with-python2 python-flaky))
-
 (define-public python-pyhamcrest
   (package
     (name "python-pyhamcrest")
@@ -3298,23 +3014,10 @@ under test to interact with a fake file system instead of the real file
 system.  The code under test requires no modification to work with pyfakefs.")
     (license license:asl2.0)))
 
-;; This minimal variant is used to avoid a circular dependency between
-;; python2-importlib-metadata, which requires pyfakefs for its tests, and
-;; python2-pytest, which requires python2-importlib-metadata.
-(define-public python2-pyfakefs-bootstrap
-  (hidden-package
-   (package
-     (inherit (package-with-python2 python-pyfakefs))
-     (name "python2-pyfakefs-bootstrap")
-     (native-inputs '())
-     (arguments
-      `(#:python ,python-2
-        #:tests? #f)))))
-
 (define-public python-aiounittest
   (package
     (name "python-aiounittest")
-    (version "1.4.0")
+    (version "1.4.1")
     ;; Pypi package lacks tests.
     (source
      (origin (method git-fetch)
@@ -3324,7 +3027,7 @@ system.  The code under test requires no modification to work with pyfakefs.")
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0hql5mw62lclrpblbh7xvinwjfcdcfvhhlvl7xlq2hi9isjq1c8r"))))
+               "10x7ds09b9415r92f7g9714gxixvvq3bm5mnh29ml9aba8blcb0n"))))
     (build-system python-build-system)
     (arguments
      '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index 94803719ac..735d599d2d 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -128,35 +128,6 @@ science, and related areas.  It offers flexible high quality rendering and a
 powerful plugin architecture.")
     (license license:bsd-3)))
 
-(define-public domainfinder
-  (package
-    (name "domainfinder")
-    (version "2.0.5")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://bitbucket.org/khinsen/"
-                           "domainfinder/downloads/DomainFinder-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "1z26lsyf7xwnzwjvimmbla7ckipx6p734w7y0jk2a2fzci8fkdcr"))))
-    (build-system python-build-system)
-    (inputs
-     (list python2-mmtk))
-    (arguments
-     `(#:python ,python-2
-       ;; No test suite
-       #:tests? #f))
-    (home-page "http://dirac.cnrs-orleans.fr/DomainFinder.html")
-    (synopsis "Analysis of dynamical domains in proteins")
-    (description "DomainFinder is an interactive program for the determination
-and characterization of dynamical domains in proteins.  It can infer dynamical
-domains by comparing two protein structures, or from normal mode analysis on a
-single structure.  The software is currently not actively maintained and works
-only with Python 2 and NumPy < 1.9.")
-    (license license:cecill-c)))
-
 (define-public inchi
   (package
     (name "inchi")
@@ -332,69 +303,6 @@ with templates to facilitate the execution of the program.  Input files can be
 staged, and output files collected using a standard interface.")
     (license license:bsd-3)))
 
-(define with-numpy-1.8
-  (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
-
-(define-public nmoldyn
-  (package
-    (name "nmoldyn")
-    (version "3.0.11")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/khinsen/nMOLDYN3")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "016h4bqg419p6s7bcx55q5iik91gqmk26hbnfgj2j6zl0j36w51r"))))
-    (build-system python-build-system)
-    (inputs
-     (list (with-numpy-1.8 python2-matplotlib) python2-scientific netcdf
-           gv))
-    (propagated-inputs
-     (list python2-mmtk))
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f  ; No test suite
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'create-linux2-directory
-           (lambda _
-             (mkdir-p "nMOLDYN/linux2")))
-         (add-before 'build 'change-PDF-viewer
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "nMOLDYN/Preferences.py"
-               ;; Set the paths for external executables, substituting
-               ;; gv for acroread.
-               ;; There is also vmd_path, but VMD is not free software
-               ;; and Guix contains currently no free molecular viewer that
-               ;; could be substituted.
-               (("PREFERENCES\\['acroread_path'\\] = ''")
-                (format #f "PREFERENCES['acroread_path'] = '~a'"
-                        (which "gv")))
-               (("PREFERENCES\\['ncdump_path'\\] = ''")
-                (format #f "PREFERENCES['ncdump_path'] = '~a'"
-                        (which "ncdump")))
-               (("PREFERENCES\\['ncgen_path'\\] = ''")
-                (format #f "PREFERENCES['ncgen_path'] = '~a'"
-                        (which "ncgen3")))
-               (("PREFERENCES\\['task_manager_path'\\] = ''")
-                (format #f "PREFERENCES['task_manager_path'] = '~a'"
-                        (which "task_manager")))
-               ;; Show documentation as PDF
-               (("PREFERENCES\\['documentation_style'\\] = 'html'")
-                "PREFERENCES['documentation_style'] = 'pdf'") ))))))
-    (home-page "http://dirac.cnrs-orleans.fr/nMOLDYN.html")
-    (synopsis "Analysis software for Molecular Dynamics trajectories")
-    (description "nMOLDYN is an interactive analysis program for Molecular Dynamics
-simulations.  It is especially designed for the computation and decomposition of
-neutron scattering spectra, but also computes other quantities.  The software
-is currently not actively maintained and works only with Python 2 and
-NumPy < 1.9.")
-    (license license:cecill)))
-
 (define-public tng
   (package
     (name "tng")
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 4c62acd2b5..5936ab23c3 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -313,7 +313,7 @@
   '("third_party/blink/perf_tests"))
 
 (define %chromium-version "102.0.5005.61")
-(define %ungoogled-revision (string-append %chromium-version "-1"))
+(define %ungoogled-revision (string-append %chromium-version "-3"))
 (define %debian-revision "debian/102.0.5005.61-1")
 
 (define %ungoogled-origin
@@ -324,7 +324,7 @@
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "1hlyi6k894blkkqmqsizx72bag2vj6wlpza0fvi8db5wp6i5b58g"))))
+      "19i4ygxjm503dmck3bdqv3fcpda3dp9wr7z306pi6i1k989rbs8l"))))
 
 (define %debian-origin
   (origin
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 449d3e34bb..382fe348a0 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2321,7 +2321,7 @@ reading from and writing to ZIP archives.")
   (package
     (inherit quazip-0)
     (name "quazip")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method git-fetch)
@@ -2330,7 +2330,7 @@ reading from and writing to ZIP archives.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1dwld7jxhjz9l33lrqwvklazdy7ygi6n1m4ry1n1sk5dnschrhby"))))))
+        (base32 "0njgbdm3dm5p7xic5mhppbqsl36zn83zz0xfsfh624hlk0ff7n0a"))))))
 
 (define-public zchunk
   (package
@@ -2715,7 +2715,7 @@ can append files to the end of such compressed archives.")
 (define-public libcbor
   (package
     (name "libcbor")
-    (version "0.8.0")
+    (version "0.9.0")
     (source
      (origin
        (method git-fetch)
@@ -2723,7 +2723,7 @@ can append files to the end of such compressed archives.")
              (url "https://github.com/PJK/libcbor")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
-       (sha256 (base32 "01dv4vxcmbvpphqy16vqiwh25wx11x630js5wfnx7cryarsh9ld7"))))
+       (sha256 (base32 "1n9fx5i81wr9j18bhz74wclfkwqf1k3piq6lzngvkmq04krzi7ss"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
@@ -2737,8 +2737,8 @@ can append files to the end of such compressed archives.")
           (string-append "-DCMAKE_INSTALL_RPATH=" lib)))))
     (synopsis "The C library for parsing and generating CBOR")
     (description
-     "The Concise Binary Object Representation (CBOR) is a data format whose
-design goals include the possibility of extremely small code size, fairly
+     "@acronym{CBOR, The Concise Binary Object Representation} is a data format
+whose design goals include the possibility of extremely small code size, fairly
 small message size, and extensibility without the need for version
 negotiation.  These design goals make it different from earlier binary
 serializations such as ASN.1 and MessagePack.")
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index fafa55c3cd..87bd43356a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1391,7 +1391,7 @@ feature set with a simple and intuitive interface.")
 (define-public caf
   (package
     (name "caf")
-    (version "0.18.5")
+    (version "0.18.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1400,7 +1400,7 @@ feature set with a simple and intuitive interface.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04b4kjisb5wzq6pilh8xzbxn7qcjgppl8k65hfv0zi0ja8fyp1xk"))))
+                "055y82044djphpwbazaxsvmb66c2xfdi8vyny8pzdxkdgxfh0vq1"))))
     (build-system cmake-build-system)
     (arguments
      '(#:configure-flags
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 0fdcfb3cb9..0299e0041e 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -255,14 +255,14 @@ etc.")
 (define-public r-datawizard
   (package
     (name "r-datawizard")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "datawizard" version))
        (sha256
         (base32
-         "1j26xv1zm7qwp80gy6vlysq3zxdj9r8ivi54b1d6s0ckqkww6gja"))))
+         "09lyh1awm2rplfzgwbdw4iy76mbaqwjd4hwlrsgvxj9pwdnjs4cx"))))
     (properties `((upstream-name . "datawizard")))
     (build-system r-build-system)
     (propagated-inputs
@@ -347,6 +347,29 @@ visualization of their differences.")
     (description "This package implements Dirichlet regression models.")
     (license license:gpl2+)))
 
+(define-public r-dixontest
+  (package
+    (name "r-dixontest")
+    (version "1.0.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "dixonTest" version))
+       (sha256
+        (base32 "1a3yc30g5rbb0jhm2b0iir5i1dy4jyl67spkhx4yysg4snz131wv"))))
+    (properties `((upstream-name . "dixonTest")))
+    (build-system r-build-system)
+    (native-inputs (list gfortran))
+    (home-page "https://cran.r-project.org/package=dixonTest")
+    (synopsis "Dixon's ratio test for outlier detection")
+    (description
+     "For outlier detection in small and normally distributed samples the ratio
+test of Dixon (Q-test) can be used.  Density, distribution function, quantile
+function and random generation for Dixon's ratio statistics are provided as
+wrapper functions.  The core applies McBane's Fortran functions that use
+Gaussian quadrature for a numerical solution.")
+    (license license:gpl3)))
+
 (define-public r-emdist
   (package
     (name "r-emdist")
@@ -402,6 +425,33 @@ Distance (EMD).")
     (description "This package lets you manage Google Drive files from R.")
     (license license:expat)))
 
+(define-public r-googlevis
+  (package
+    (name "r-googlevis")
+    (version "0.7.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "googleVis" version))
+       (sha256
+        (base32 "1s82xcs6zrlmnhay764bspzwvabfyi35nq6fwdrrk3v79q13c5jz"))))
+    (properties `((upstream-name . "googleVis")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-jsonlite))
+    (native-inputs (list r-knitr))
+    (home-page "https://mages.github.io/googleVis/")
+    (synopsis "R interface to Google Charts")
+    (description
+     "The @code{googleVis} package provides an interface between R and the Google
+Charts API.  Google Charts offer interactive charts which can be embedded into
+web pages.  The functions of the @code{googleVis} package allow the user to
+visualise data stored in R data frames with Google Charts without uploading
+the data to Google.  The output of a @code{googleVis} function is HTML code
+that contains the data and references to JavaScript functions hosted by
+Google.  @code{googleVis} makes use of the internal R HTTP server to display
+the output locally.")
+    (license license:gpl2+)))
+
 (define-public r-guix-install
   (package
     (name "r-guix-install")
@@ -655,14 +705,14 @@ similar rank-based tests for equal probability distributions due to Neuhauser
 (define-public r-v8
   (package
     (name "r-v8")
-    (version "4.1.0")
+    (version "4.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "V8" version))
        (sha256
         (base32
-         "15ylzcxlhkba99cccw5rvhwhg9i4zcax2fhmr03w8g4fdhbd3n89"))))
+         "0hs7ajjw6y3q7mp7z00a9712y4cn6wgcnk5dbjbzlc6cfk4zsqkc"))))
     (properties `((upstream-name . "V8")))
     (build-system r-build-system)
     (arguments
@@ -787,13 +837,13 @@ known as Dynamic Linear Models.")
 (define-public r-zoo
   (package
     (name "r-zoo")
-    (version "1.8-9")
+    (version "1.8-10")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "zoo" version))
               (sha256
                (base32
-                "18vjywalpgzqyk66gajb8x1yp8avdaaf11ykynld9fd8cy82bgmp"))))
+                "0izd66dywq6qd62hdp64apncainrrb9mgmm19wf6a8jc03c858n9"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice))
@@ -1175,13 +1225,13 @@ available as companion packages.")
 (define-public r-scales
   (package
     (name "r-scales")
-    (version "1.1.1")
+    (version "1.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "scales" version))
        (sha256
-        (base32 "019ps0njjc0rzrjygqiyn8b9vp0c3c0jd56h1yi19wzi49jvdcj0"))))
+        (base32 "1pq2rrix6a5gsi8xw38viiydp1bsxxmcmyy7dv9q8gkb1qj50p8q"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-farver
@@ -1189,6 +1239,7 @@ available as companion packages.")
            r-lifecycle
            r-munsell
            r-rcolorbrewer
+           r-rlang
            r-r6
            r-viridislite))
     (home-page "https://github.com/hadley/scales")
@@ -1318,13 +1369,13 @@ with default R plot functions.")
 (define-public r-polychrome
   (package
     (name "r-polychrome")
-    (version "1.3.1")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Polychrome" version))
        (sha256
-        (base32 "044vbylgbqf0ccv4r15nmbw1vz0j95g67i6blw73hvbvbm6w5x4d"))))
+        (base32 "0hyi02m2jpdhk1ky6ihz6dv5pwqwjwk4csjim2qr8ywx8midmrvg"))))
     (properties `((upstream-name . "Polychrome")))
     (build-system r-build-system)
     (propagated-inputs
@@ -1470,13 +1521,13 @@ objects.")
 (define-public r-mboost
   (package
    (name "r-mboost")
-   (version "2.9-6")
+   (version "2.9-7")
    (source (origin
             (method url-fetch)
             (uri (cran-uri "mboost" version))
             (sha256
              (base32
-              "1gvcq1y9prpgxw5kxa20l31p384gksfx0pn7gf29jbl3cknqiyix"))))
+              "01ln0vxbbx1fq77q17sx61si82lhfibbchsnf2yw9032cn8wnhh2"))))
    (build-system r-build-system)
    (propagated-inputs
     (list r-lattice
@@ -1499,13 +1550,13 @@ high-dimensional data.")
 (define-public r-shadowtext
   (package
    (name "r-shadowtext")
-   (version "0.1.1")
+   (version "0.1.2")
    (source (origin
             (method url-fetch)
             (uri (cran-uri "shadowtext" version))
             (sha256
              (base32
-              "01h0w3b02r8snjkx5sxkf2x8xm4gd0r8jm27xqz9cv6hgqfmh1pb"))))
+              "0zdfidrcnmxmfhngv86ppxrjmpmz9kl78l4yfah2lc5vgmrlwg15"))))
    (properties `((upstream-name . "shadowtext")))
    (build-system r-build-system)
    (propagated-inputs
@@ -1596,13 +1647,13 @@ read a protected key.")
 (define-public r-astsa
   (package
     (name "r-astsa")
-    (version "1.14")
+    (version "1.15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "astsa" version))
        (sha256
-        (base32 "09zx2q419p0b1c336ybh4i62v5dvn3sp39dxn5kwlrqchjj7f5z6"))))
+        (base32 "0mllsq0xdqkviyvs77lq565r1vznsj1qp9cnlj5p48k9v76d7arp"))))
     (properties `((upstream-name . "astsa")))
     (build-system r-build-system)
     (home-page "https://github.com/nickpoison/astsa/")
@@ -1619,14 +1670,14 @@ Analysis Approach Using R.  Chapman-Hall, 2019,
 (define-public r-vegan
   (package
     (name "r-vegan")
-    (version "2.5-7")
+    (version "2.6-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vegan" version))
        (sha256
         (base32
-         "0aj6m9l1vkh32sar6fyvq4p8j4h2f2f347w1300qnzgaa5lmhfz6"))))
+         "0nf0ny6jzfy135xiygzzkr0y55y8g27hrbk8c869plarr48d2xxb"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr ; needed for vignettes
@@ -2272,14 +2323,14 @@ data structures in C++.")
 (define-public r-fastghquad
   (package
     (name "r-fastghquad")
-    (version "1.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fastGHQuad" version))
        (sha256
         (base32
-         "1rjia8wggadr9xwxcmzmal0rc4g6pa3dr5888fbbnb6abl8b2lrj"))))
+         "1zj7nsbnx4g253m3dpz9vi3zk3jxwrixwjw1ks6n4shpb4dlkp2w"))))
     (properties `((upstream-name . "fastGHQuad")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2294,14 +2345,14 @@ rules and utility functions for adaptive GH quadrature.")
 (define-public r-rstpm2
   (package
     (name "r-rstpm2")
-    (version "1.5.2")
+    (version "1.5.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rstpm2" version))
        (sha256
         (base32
-         "0c6l3z250b2kn6mh2xyb0bd2y5nsbj11n9xfi51dac9s8xq3v7m4"))))
+         "17mhzfxh761vl64ar6pynpj3k2jkhjgbacxsjhkrfkbmy3aiv0d1"))))
     (properties `((upstream-name . "rstpm2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2787,13 +2838,13 @@ application framework for R, making it easy to create attractive dashboards.")
 (define-public r-shinyfiles
   (package
     (name "r-shinyfiles")
-    (version "0.9.1")
+    (version "0.9.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyFiles" version))
        (sha256
-        (base32 "0f8dfdiar376lx0979ccyghgx5rhr08v5z3z60asrrjsxlq4cs85"))))
+        (base32 "1l4a4v9ivxkj2vx6xw4z3pk7a8px23icppcgvgpybibq2j74pglg"))))
     (properties `((upstream-name . "shinyFiles")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3424,14 +3475,14 @@ including functions for geolocation and routing.")
 (define-public r-haven
   (package
     (name "r-haven")
-    (version "2.4.3")
+    (version "2.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "haven" version))
        (sha256
         (base32
-         "0pr9jcdk1r9pi9iz0xm1g5yy5qyjk5r7hh9467abx4kpwx3hzdwm"))
+         "1x5g6kjrzcyarbjz91f4aaspx7rb50qs6a9y29mzr3mjq4dk305m"))
        (modules '((guix build utils)))
        (snippet
         ;; unvendor readstat
@@ -3442,17 +3493,22 @@ including functions for geolocation and routing.")
        (modify-phases %standard-phases
          (add-after 'unpack 'unbundle-readstat
            (lambda _
-             ;; Not required, since we’re not building readstat.
-             (substitute* "src/Makevars"
-               (("-lz") "-lreadstat")))))))
+             ;; We’re not building readstat.
+             (substitute* "configure"
+               (("exit 1") "")) ;don't be so dramatic!
+             (substitute* '("src/Makevars.in"
+                            "configure")
+               (("^PKG_LIBS=.*") "PKG_LIBS=\"-lreadstat\"\n")))))))
     (inputs
      (list readstat))
     (native-inputs
      (list r-knitr))
     (propagated-inputs
-     (list r-cpp11
+     (list r-cli
+           r-cpp11
            r-forcats
            r-hms
+           r-lifecycle
            r-rlang
            r-readr
            r-tibble
@@ -3713,13 +3769,13 @@ print, summary, plot, update, etc.
 (define-public r-ps
   (package
     (name "r-ps")
-    (version "1.6.0")
+    (version "1.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ps" version))
        (sha256
-        (base32 "0cdzjqgap108whhsilxllg12m2d05pgksryhrz5bq608bvf7vbc9"))))
+        (base32 "1qaj9gyz7q09aadlnj5al53k2pa4axmzjsbndf5r0b51qqrcy842"))))
     (build-system r-build-system)
     (home-page "https://ps.r-lib.org")
     (synopsis "List, query, and manipulate system processes")
@@ -3828,6 +3884,27 @@ and Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see
 @code{citation(\"Rcpp\")} for details on these last two.")
     (license license:gpl2+)))
 
+(define-public r-rcppml
+  (package
+    (name "r-rcppml")
+    (version "0.3.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "RcppML" version))
+       (sha256
+        (base32 "1ih8i7i6m221iw227mnl3rvnaw2l53h8fpnc4f8yn9sm10anap1j"))))
+    (properties `((upstream-name . "RcppML")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-matrix r-rcpp r-rcppeigen))
+    (native-inputs (list r-knitr))
+    (home-page "https://github.com/zdebruine/RcppML")
+    (synopsis "Rcpp machine learning library")
+    (description
+     "This package provides fast machine learning algorithms including matrix
+factorization and divisive clustering for large sparse and dense matrices.")
+    (license license:gpl2+)))
+
 (define-public r-rcppthread
   (package
     (name "r-rcppthread")
@@ -3872,13 +3949,13 @@ with @code{Rcpp}.")
 (define-public r-rcppxptrutils
   (package
     (name "r-rcppxptrutils")
-    (version "0.1.1")
+    (version "0.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RcppXPtrUtils" version))
        (sha256
-        (base32 "0jh64c46gp99d2nsih14vx34pamc8i7gkmiy2nj94rx3sxq62yh5"))))
+        (base32 "0hm57nf4dzgsmg4hjj6wikwjx93fgfwkmybw6ly4b58wi6qwml1l"))))
     (properties `((upstream-name . "RcppXPtrUtils")))
     (build-system r-build-system)
     (propagated-inputs (list r-rcpp))
@@ -4017,14 +4094,14 @@ validation and filtering on the values, making options invisible or private.")
 (define-public r-circlize
   (package
     (name "r-circlize")
-    (version "0.4.14")
+    (version "0.4.15")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "circlize" version))
        (sha256
         (base32
-         "0b0yqjmbj1s1jg7y6cgyawadlfv0i6xrls8a4qy9qs7hz8zrpvb1"))))
+         "1iswb7dy08as3pbzxvhx5qlsbnwvp79nwg8m158nfz7y2d9xa0nn"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-colorspace r-globaloptions r-shape))
@@ -4169,14 +4246,14 @@ any subsequent lookup as it keeps the hash table in memory.")
 (define-public r-ff
   (package
     (name "r-ff")
-    (version "4.0.5")
+    (version "4.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ff" version))
        (sha256
         (base32
-         "0dsh6llfdz04w94xr3yl2b4vkk9g3rwhvfnxcd025v2424krxfls"))))
+         "1yl3ipzz9bjkfy9bbna7xz5n7iz4lchnw5l7agww7by764yk6iqa"))))
     (build-system r-build-system)
     (propagated-inputs (list r-bit))
     (home-page "http://ff.r-forge.r-project.org/")
@@ -4251,17 +4328,17 @@ curve to a data matrix in arbitrary dimensions.")
 (define-public r-reshape
   (package
     (name "r-reshape")
-    (version "0.8.8")
+    (version "0.8.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reshape" version))
        (sha256
         (base32
-         "0s6i0sqxg1vldxs6miv8mi0zydxbqzgpmzfiwkj8y7jix3yrfmad"))))
+         "0j203qmc076x5lp6q2xi4dq4xdb73jmsa42rpxp1c37knnrph4br"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-plyr r-rcpp))
+     (list r-plyr))
     (home-page "http://had.co.nz/reshape")
     (synopsis "Flexibly reshape data")
     (description
@@ -4272,16 +4349,17 @@ curve to a data matrix in arbitrary dimensions.")
 (define-public r-restrserve
   (package
     (name "r-restrserve")
-    (version "1.0.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RestRserve" version))
        (sha256
-        (base32 "0qb1x13n2sm0lg52x3289jsln3gw9rawfs1z2372pvr9ydpjsfqb"))))
+        (base32 "1ydsdgy6mxl0zqk7xqf4v6if5nf2qv7k48q340fhaqyjk2gd60p7"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-checkmate
+           r-digest
            r-jsonlite
            r-mime
            r-r6
@@ -4384,13 +4462,13 @@ most popular ones.")
 (define-public r-sp
   (package
     (name "r-sp")
-    (version "1.4-6")
+    (version "1.4-7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "sp" version))
        (sha256
-        (base32 "09m2ddbrbs2aqnq5si42ipa0g1vbd0pxg4zbcx59is2047pv7sws"))))
+        (base32 "1bdi06n5zkjnnyh0rallf04s0vlcx9rg9p5q7s6vfqvkf19nk501"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice))
@@ -4428,14 +4506,14 @@ a variety of different samplers.")
 (define-public r-rmtstat
   (package
     (name "r-rmtstat")
-    (version "0.3")
+    (version "0.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RMTstat" version))
        (sha256
         (base32
-         "1nn25q4kmh9kj975sxkrpa97vh5irqrlqhwsfinbck6h6ia4rsw1"))))
+         "1r1a2sdqv64m9cpm2pz6r8abf7l810126ayd8iq3gx86c7bjfj5v"))))
     (properties `((upstream-name . "RMTstat")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/RMTstat")
@@ -4589,14 +4667,14 @@ spreadsheet software.")
 (define-public r-extremes
   (package
     (name "r-extremes")
-    (version "2.1-1")
+    (version "2.1-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "extRemes" version))
        (sha256
         (base32
-         "00ps7yggp89sx1j0w6c8dk0la3k95rwjv1iz7rdfqy7i46xjf6as"))))
+         "19q560prq02h3bwk01jb68693qb5bhsv8wiqhia7v5knm34qv8x7"))))
     (properties `((upstream-name . "extRemes")))
     (build-system r-build-system)
     (propagated-inputs
@@ -4736,14 +4814,14 @@ matrices, a special case of sparse matrices.")
 (define-public r-bbmle
   (package
     (name "r-bbmle")
-    (version "1.0.24")
+    (version "1.0.25")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bbmle" version))
        (sha256
         (base32
-         "1bck8rmink4wsk8pcbnj4d60svxymp29pxbzwj8p9gzsg42c1v81"))))
+         "0mdj21q7k0fp4cj7la14vmcjmp49zqm57g7r6zrwmxpv0acwda46"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-bdsmatrix
@@ -4872,14 +4950,14 @@ data).  Weighted versions of MLE, MME and QME are available.")
 (define-public r-energy
   (package
     (name "r-energy")
-    (version "1.7-9")
+    (version "1.7-10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "energy" version))
        (sha256
         (base32
-         "1ndssfi0hbnsm5jwrns7m63ppxm221hd6gk0b0wa1a7mk7ny1l38"))))
+         "19xyw5bkyzfk22gly2ca2nsznqnrhaq4a77727kr1k26bj3y8gal"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-boot r-gsl r-rcpp))
@@ -5238,14 +5316,14 @@ Optimization problems by using the simplex algorithm.")
 (define-public r-geometry
   (package
     (name "r-geometry")
-    (version "0.4.5")
+    (version "0.4.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "geometry" version))
        (sha256
         (base32
-         "1n10l8ax3783v3lgaacb15qsn8b3f0wpmhg3k39j31s6ciyd3vcg"))))
+         "1n7m0djqlhrv01l98r76grkki6cv4k4q2z6c7fksqgq4r2l6a14i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-magic r-linprog r-lpsolve r-rcpp r-rcppprogress))
@@ -5374,14 +5452,14 @@ problems as well as resampling based estimators of prediction error.")
 (define-public r-psych
   (package
     (name "r-psych")
-    (version "2.2.3")
+    (version "2.2.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "psych" version))
        (sha256
         (base32
-         "0fi7gcaxcb1mdyfpgjm03sxz3qgp1s0hnrgx8pyswni5skb903pn"))))
+         "08f3byqwabgkqcxwpjbsxdcjkdg012iraqinw0fzskfl1srzkhyw"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice r-mnormt r-nlme))
@@ -5427,14 +5505,14 @@ by base R methods related to model fitting.")
 (define-public r-broom
   (package
     (name "r-broom")
-    (version "0.7.12")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "broom" version))
        (sha256
         (base32
-         "1nbv4a4s8548h2q226xmhyp42higayh95yvllh1rcs264lmw3yh4"))))
+         "16grzja9hz5mqpfzbp1r6zif1gp7swfadkm52340si9h8ifhk8b6"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-backports
@@ -5511,14 +5589,14 @@ models.")
 (define-public r-pdist
   (package
     (name "r-pdist")
-    (version "1.2")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pdist" version))
        (sha256
         (base32
-         "18nd3mgad11f2zmwcp0w3sxlch4a9y6wp8dfdyzvjn7y4b4bq0dd"))))
+         "0bvg8si81hs79v39d7svv4zbv2p0sk2r6m9vamibvkh9qvl4x406"))))
     (build-system r-build-system)
     (home-page "https://github.com/jeffwong/pdist")
     (synopsis "Partitioned distance function")
@@ -5880,14 +5958,14 @@ programming} (SQP) based solver).")
 (define-public r-hardyweinberg
   (package
     (name "r-hardyweinberg")
-    (version "1.7.4")
+    (version "1.7.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "HardyWeinberg" version))
        (sha256
         (base32
-         "11y3zg8aqxk5xdzsv7i3bgqkky6a0wgf2n8saa3a4adq75k328ib"))))
+         "0b3szw090dsc3bkas2kvx787ww2i6zzg2qmdyivmqc8amx5arn6g"))))
     (properties `((upstream-name . "HardyWeinberg")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5932,13 +6010,13 @@ and density estimation")
 (define-public r-venndiagram
   (package
     (name "r-venndiagram")
-    (version "1.7.1")
+    (version "1.7.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "VennDiagram" version))
               (sha256
                (base32
-                "0yw54j9as0vf8ypnq4a3sl2w0lajri6s979f4y11hjzpgmr1m16b"))))
+                "0ilcxcp8qskmb5cp7fyb7i0qizg42lrx0ny8ws3if90kfrglghp7"))))
     (properties `((upstream-name . "VennDiagram")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6266,14 +6344,14 @@ plots in @code{ggplot2}.")
 (define-public r-cli
   (package
     (name "r-cli")
-    (version "3.2.0")
+    (version "3.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cli" version))
        (sha256
         (base32
-         "0qp8k1afrn6ppwi6d9n05fjgj02196qcsppji3q37ph99msinnnd"))))
+         "0qqd4mscv8ndjbji7knprdlv2hhyk35gazagvapbjzq1p6yfpaf3"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-glue))
@@ -6415,14 +6493,14 @@ of merit, ordering functions, and enhanced versions of @code{pairs} and
 (define-public r-webshot
   (package
     (name "r-webshot")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "webshot" version))
        (sha256
         (base32
-         "0gq4h8cw51z95yvsnf38kj5l58wgljkm0dalmi8mn1sp06bxr0zi"))))
+         "1h6v94zwq0ypgi4vf8xlhp5k13j7f9061hx908177i68c6zg5i5p"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-callr r-jsonlite r-magrittr))
@@ -6470,13 +6548,13 @@ iVAT).")
 (define-public r-xfun
   (package
     (name "r-xfun")
-    (version "0.30")
+    (version "0.31")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xfun" version))
        (sha256
-        (base32 "1vn0cbskyrk8ww9yx75jni9s684yv4cvbj643lvg0lg00briry7b"))))
+        (base32 "0dgjkrlwl6rxmvdn6s1xrbiaa53hkfx2s7rqrbrc7c6shbkg6sfi"))))
     (build-system r-build-system)
     ;; knitr itself depends on xfun
     #;
@@ -6557,14 +6635,14 @@ estimated from a given sample.")
 (define-public r-vctrs
   (package
     (name "r-vctrs")
-    (version "0.4.0")
+    (version "0.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "vctrs" version))
        (sha256
         (base32
-         "0bslr22jnnwxx45s1a19az6saqf2svi8vkjf64pnpc6rma4ygpl9"))))
+         "1pb0wjpwix29q8d8p3wi72a9mp9mif7369pk31w238cs00g8hxln"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cli r-glue r-rlang))
@@ -6644,14 +6722,14 @@ packages that work with genomic data.")
 (define-public r-uuid
   (package
     (name "r-uuid")
-    (version "1.0-4")
+    (version "1.1-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "uuid" version))
        (sha256
         (base32
-         "08j3ylf49l9qslhlcxvix3mqw6hh8kxainnklv0qmwmwj6q6i5i8"))))
+         "0bzlc2knmr338h4ykx8v8c2a1inizxafj8rh13kwii68gpp50nz7"))))
     (build-system r-build-system)
     (home-page "https://www.rforge.net/uuid")
     (synopsis "Tools for generating and handling of UUIDs")
@@ -6663,14 +6741,14 @@ packages that work with genomic data.")
 (define-public r-tinytex
   (package
     (name "r-tinytex")
-    (version "0.38")
+    (version "0.39")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tinytex" version))
        (sha256
         (base32
-         "11hww4x4q44xg559gplmjc6hmzmap0w249nnzyw5dy2ys30bbhga"))))
+         "1v95pjxdq0ma90jji5yqh8ihlcf35cmrqx9v0z649zh0q9vrnbpj"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-xfun))
@@ -6722,14 +6800,14 @@ features:
 (define-public r-network
   (package
     (name "r-network")
-    (version "1.17.1")
+    (version "1.17.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "network" version))
        (sha256
         (base32
-         "19q563v5xfkbmr0ws9nhqx4wrxkf9jsck51rqc8mm2gq2h03lg7w"))))
+         "1xrhzbci7ls4h05skdlirxl49jsvmylrqivz2kd6i33wh2ca324m"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-magrittr r-statnet-common r-tibble))
@@ -6791,14 +6869,14 @@ vectors.")
 (define-public r-statnet-common
   (package
     (name "r-statnet-common")
-    (version "4.5.0")
+    (version "4.6.0")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "statnet.common" version))
         (sha256
           (base32
-            "0bw8dwnv568i60xrj6d7gv0hnna1x7rvqaayy5i0827khvdj7nrw"))))
+            "07djgc6qbxahiy5v15lfayxbj4188lxsb8xcs7hnbm2hic953bfx"))))
     (properties
       `((upstream-name . "statnet.common")))
     (build-system r-build-system)
@@ -7208,14 +7286,14 @@ Fisher's method), and Sidak correction.")
 (define-public r-quantmod
   (package
     (name "r-quantmod")
-    (version "0.4.18")
+    (version "0.4.20")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantmod" version))
        (sha256
         (base32
-         "0dbcrncv06iqcbkky95dd7l32xq0hhbnkb0kj8wwzym1jf748h5a"))))
+         "154fqhw46kc7r08zsj5fsg97hg93phsli3z14xwmz22xb50xymzp"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-curl r-ttr r-xts r-zoo))
@@ -7229,14 +7307,14 @@ financial trading strategies.")
 (define-public r-tseries
   (package
     (name "r-tseries")
-    (version "0.10-50")
+    (version "0.10-51")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tseries" version))
        (sha256
         (base32
-         "16654v691jqpgiisz442h9znlxgj96c9gvhk3pgmm48bfsxs6iqw"))))
+         "0zr09ikaz96djcvnjbr8ah6waqzjy06f4yd4isshlwc391q20px5"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-quadprog r-quantmod r-zoo))
@@ -7675,14 +7753,14 @@ Memorial-Sloan-Kettering Cancer Center (MSKCC).")
 (define-public r-import
   (package
     (name "r-import")
-    (version "1.2.0")
+    (version "1.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "import" version))
        (sha256
         (base32
-         "018s0x224gqnv4cjfh0fwliyfg6ma9vslmwybrlizfsmqcc5wp37"))))
+         "19g4jnfg9pkvvsncw62yc15xlb97hfbdqxivpjd9jqi36i6mdjrg"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -7701,14 +7779,14 @@ files.")
 (define-public r-shinyace
   (package
     (name "r-shinyace")
-    (version "0.4.1")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyAce" version))
        (sha256
         (base32
-         "1m33dfm2kjirvgix7ybv1kbzgjkicdpv411g9c0q3fw6rnyhfxxn"))))
+         "12mqvdh6rxsr61pc3pzla95r5f4l7xagjs2rcdr7c2lbqyxpx6aa"))))
     (properties `((upstream-name . "shinyAce")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7792,14 +7870,14 @@ systems.")
 (define-public r-radiant-data
   (package
     (name "r-radiant-data")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "radiant.data" version))
        (sha256
         (base32
-         "12x4nz5n6yz1a67ji79pwvznp9flmn50hpp9y9sfhixir7dvwy27"))
+         "0c5c99q13pwv6k0b07x3r2bxmh0h2w15h02xb1pincgs61qwi15k"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -7853,13 +7931,13 @@ the application.")
 (define-public r-algdesign
   (package
     (name "r-algdesign")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "AlgDesign" version))
        (sha256
-        (base32 "0ammlg148gk0p24fh700116nd66636np0jb1wwh0axq5jphwk1pz"))))
+        (base32 "01cx63wqr6yvgl5ml1lj6gh9p1sn42b6qcnsppcw7mvba9n652ar"))))
     (properties `((upstream-name . "AlgDesign")))
     (build-system r-build-system)
     (home-page "https://github.com/jvbraun/AlgDesign")
@@ -8059,14 +8137,14 @@ multivariate plot methods.")
 (define-public r-fnn
   (package
     (name "r-fnn")
-    (version "1.1.3")
+    (version "1.1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "FNN" version))
        (sha256
         (base32
-         "0cllqlnynm5yaj4r64mqyyfc8phkb38rwssq8k8ikgfgr4jklxny"))))
+         "0nmynpiy3d2dnd5ngjf4m79jy02byhk43gj0xny9a6j8243f5c2j"))))
     (properties `((upstream-name . "FNN")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/FNN")
@@ -8283,14 +8361,14 @@ goodness-of-fit.")
 (define-public r-abc
   (package
     (name "r-abc")
-    (version "2.1")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "abc" version))
        (sha256
         (base32
-         "0ngzaaz2y2s03fhngvwipmy4kq38xrmyddaz6a6l858rxvadrlhb"))))
+         "16753lyzk2dfwgdjfyanwacqw3bvrwby52inq4709804labs6lnv"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-abc-data r-locfit r-mass r-nnet r-quantreg))
@@ -8389,14 +8467,14 @@ simple method for converting between file types.")
 (define-public r-maptools
   (package
     (name "r-maptools")
-    (version "1.1-3")
+    (version "1.1-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "maptools" version))
        (sha256
         (base32
-         "0ixvh4qbdjjl19ghgbb2r26yksya977q1yzs4yn5wshwm0763xph"))))
+         "1jgx8iiirj8qhrmh19mkisa35jcql7352dmc7lvwi5vxg3wjbvpk"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-foreign r-lattice r-sp))
@@ -8831,14 +8909,14 @@ those searches and pull data into their R sessions.")
 (define-public r-renv
   (package
     (name "r-renv")
-    (version "0.15.4")
+    (version "0.15.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "renv" version))
        (sha256
         (base32
-         "0byfs4cydhyqzdrxjv7sa6i30xc7qhnx0qw9d8wwwlzdkv235flf"))))
+         "0bjq3ms5dg155clya62m462m93g90sxfxm7b4cqhqbx8vakskwdl"))))
     (properties `((upstream-name . "renv")))
     (build-system r-build-system)
     (native-inputs
@@ -8948,14 +9026,14 @@ always locate the files relative to your project root.")
 (define-public r-reticulate
   (package
     (name "r-reticulate")
-    (version "1.24")
+    (version "1.25")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reticulate" version))
        (sha256
         (base32
-         "1k0nv43fa9lx44pamxpprnvvmsp15adn5z6hg9siyq0n94hca65r"))))
+         "0b1szzsqyc8wcfpkn5517bb1ds064vs2hky71my3p74kfngay991"))))
     (build-system r-build-system)
     (inputs (list python))
     (propagated-inputs
@@ -9348,14 +9426,14 @@ that account for the effects of ANSI text formatting control sequences.")
 (define-public r-nbclust
   (package
     (name "r-nbclust")
-    (version "3.0")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "NbClust" version))
        (sha256
         (base32
-         "1vwb48zy6ln1ddpqmfngii1i80n8qmqyxnzdp6gbaq96lakl3w3c"))))
+         "0k5hr4zgx4gp1n62xchgz2zvyl35ba2cnczhhvj8rfbg2n4hx6qs"))))
     (properties `((upstream-name . "NbClust")))
     (build-system r-build-system)
     (home-page "https://sites.google.com/site/malikacharrad/research/nbclust-package")
@@ -9522,14 +9600,14 @@ functions.")
 (define-public r-rjags
   (package
     (name "r-rjags")
-    (version "4-12")
+    (version "4-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rjags" version))
        (sha256
         (base32
-         "041y4zfr50y96g0kl857jcba0a3gpdpk8qfn9fj8zxzbz71k87xr"))))
+         "0cibz6xhmh86fh7ynmdgpmlchizi57pi6dpslgc2if17a56c6p7q"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-coda))
@@ -9812,14 +9890,14 @@ other add-on packages.")
 (define-public r-insight
   (package
     (name "r-insight")
-    (version "0.17.0")
+    (version "0.17.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "insight" version))
        (sha256
         (base32
-         "1rxcy8nyg3y50czm3y1x2pibivywcb1bjmvpyqlzg4yy2j84v69p"))))
+         "0dffrsimgijdqsgvr9cad4g4w97d5ssjl3l0fm5ssly9l115ag35"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr))
@@ -10097,14 +10175,14 @@ matches version and feature constraints.")
 (define-public r-argparse
   (package
     (name "r-argparse")
-    (version "2.1.3")
+    (version "2.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "argparse" version))
        (sha256
         (base32
-         "0vm6nrzl6rsq2qw3km3i4s92kq9phs3cbxzv3i8hlyld9ajk3nmf"))))
+         "13b5halfxc7nr57vkz3qmkkcpw1hr4xdk1mjh2cq8cvpnjz15qc3"))))
     (build-system r-build-system)
     (inputs (list python))
     (propagated-inputs
@@ -10191,14 +10269,14 @@ the work.")
 (define-public r-doby
   (package
     (name "r-doby")
-    (version "4.6.12")
+    (version "4.6.13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doBy" version))
        (sha256
         (base32
-         "1m60ya4cdickqsj0dc90bv4n47df6qg6n82fikxrkl4yhg7yyn1i"))))
+         "0qnfcw4rg5kd1mll3rq6vchz3lgdqfif9469p8x6ixsgrxxpivbz"))))
     (properties `((upstream-name . "doBy")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10502,14 +10580,14 @@ from the @code{stats} package (plus some extra parameters).")
 (define-public r-cmplot
   (package
     (name "r-cmplot")
-    (version "4.0.0")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "CMplot" version))
        (sha256
         (base32
-         "0xyh75y0c84nnkrv6c8xrvla54w51phgdwn8a69799f2r87z7c81"))))
+         "1h09prpiw7l32mr7jarp8ddrddg1431nfn4kw3bznfnv0sr78zfg"))))
     (properties `((upstream-name . "CMplot")))
     (build-system r-build-system)
     (home-page "https://github.com/YinLiLin/CMplot")
@@ -10832,14 +10910,14 @@ a library of prediction algorithms to be used in the super learner.")
 (define-public r-drtmle
   (package
     (name "r-drtmle")
-    (version "1.1.0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "drtmle" version))
        (sha256
         (base32
-         "08a6k0nrg6mqdslwjc71583x52vnax87nbfalk98zczwvrrdwvxa"))))
+         "12vplpz9bg5444jy29mbdr70hqby073vb3iw76v2csrwy3ws3f21"))))
     (properties `((upstream-name . "drtmle")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10857,14 +10935,14 @@ both to consistency and asymptotic normality.")
 (define-public r-dofuture
   (package
     (name "r-dofuture")
-    (version "0.12.1")
+    (version "0.12.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "doFuture" version))
        (sha256
         (base32
-         "0fhk32ih9cbwxw3mvkddqjv0dsaw9xk8qjdslfcabvmixhnh3s6m"))))
+         "0w07pmzpsfq4kvfc745s1i9b6dfn1df1wrfi4s9ys4ir3g2s8nk1"))))
     (properties `((upstream-name . "doFuture")))
     (build-system r-build-system)
     (arguments
@@ -10968,14 +11046,14 @@ subsequence} (LCS) using a dynamic programming algorithm.")
 (define-public r-labelled
   (package
     (name "r-labelled")
-    (version "2.9.0")
+    (version "2.9.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "labelled" version))
        (sha256
         (base32
-         "0ffnhlr239nqcwb35m4hll21abnnhpmyy5wlxnyahrg0kqb0xb1n"))))
+         "0h7scbyzh7kr51gds222rkhld2b3k36s86hj8rrzpwv4bwj0pccy"))))
     (properties `((upstream-name . "labelled")))
     (build-system r-build-system)
     (propagated-inputs
@@ -11162,13 +11240,13 @@ calls to the particular toolkits in use in function of the context.")
 (define-public r-svdialogs
   (package
     (name "r-svdialogs")
-    (version "1.0.3")
+    (version "1.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "svDialogs" version))
        (sha256
-        (base32 "0j00xjvkwv992ir48czhvyj29rb9vpd243vbyyj2binn0q0qa431"))))
+        (base32 "0z3a5glsi0ab43mdk2yvslxyzg12nbqqqc35jvgzj475mpkbgjif"))))
     (properties `((upstream-name . "svDialogs")))
     (build-system r-build-system)
     (inputs
@@ -11255,18 +11333,17 @@ genotypes as \"graphical genotypes\".")
 (define-public r-furrr
   (package
     (name "r-furrr")
-    (version "0.2.3")
+    (version "0.3.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "furrr" version))
        (sha256
         (base32
-         "001p2yhznrpnrjvdcmf2h3wpgdnw01wnqgid7wbq8bhavhi3888a"))))
+         "117xj66l14r08macwghgyibzm282ljv1afpa133h952gc70irs9z"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-ellipsis
-           r-future
+     (list r-future
            r-globals
            r-lifecycle
            r-purrr
@@ -11708,14 +11785,14 @@ analysis.")
 (define-public r-gee
   (package
     (name "r-gee")
-    (version "4.13-22")
+    (version "4.13-23")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gee" version))
        (sha256
         (base32
-         "1wbwn7bjqz09l6clh43dy3x5qgv9b9wwn7xnfw9fkkrhn6rvc3rw"))))
+         "0v0fam678pqqkxmj95f1pwsi08y1rbz1wxnp1ig81jvpn0xpq8gq"))))
     (properties `((upstream-name . "gee")))
     (build-system r-build-system)
     (native-inputs
@@ -12025,14 +12102,14 @@ cross-sectional, time series, clustered, panel, and longitudinal data.")
 (define-public r-th-data
   (package
     (name "r-th-data")
-    (version "1.1-0")
+    (version "1.1-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TH.data" version))
        (sha256
         (base32
-         "0ghihfpk5d8gsdlzf6phw7dwwz3adx64pxk82vlmlqx53ljpxcr1"))))
+         "0ynxacnz002bjsp2ybql7rdqw4zd14af8r7w44nwbx22n4bapwzd"))))
     (properties `((upstream-name . "TH.data")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12049,14 +12126,14 @@ packages maintained by Torsten Hothorn.")
 (define-public r-multcomp
   (package
     (name "r-multcomp")
-    (version "1.4-18")
+    (version "1.4-19")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "multcomp" version))
        (sha256
         (base32
-         "01i8gjppyxl3xph1dw0kags8qbb7r06j91kk3lkqn5gzrxjmwyhh"))))
+         "0mz5wdqrqpp2gqijfpp9rgfbq8yvxki4is8fbbc4qwdwryqp6d7h"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-codetools r-mvtnorm r-sandwich r-survival r-th-data))
@@ -12094,14 +12171,14 @@ the differences were not significantly different.")
 (define-public r-emmeans
   (package
     (name "r-emmeans")
-    (version "1.7.3")
+    (version "1.7.4-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "emmeans" version))
        (sha256
         (base32
-         "0kbbin3zfxqkm5awq4331fv7y2kfpdhkwrqh91prl7qpf8kscin6"))))
+         "08g7ifqhwqa00hc850nwx03dp7isz0281ig6kvixc4xdahmkm8zp"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-estimability r-mvtnorm r-numderiv r-xtable))
@@ -12223,14 +12300,14 @@ Bayesian modeling.")
 (define-public r-tmb
   (package
     (name "r-tmb")
-    (version "1.8.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TMB" version))
        (sha256
         (base32
-         "1hzvvx1g5nkmiqwzihj8nir48k7idbw1jvb14ldjk9rsikgpywdl"))))
+         "1mr5vwamw6ag1fhd83jyy6015296908qwshwq0fcphhiv60x579c"))))
     (properties `((upstream-name . "TMB")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12326,14 +12403,14 @@ differentiation.")
 (define-public r-bayestestr
   (package
     (name "r-bayestestr")
-    (version "0.11.5")
+    (version "0.12.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bayestestR" version))
        (sha256
         (base32
-         "0lz8mzacxgmll576p88654mrvlk4pzvhwwghvn5pm7zxisgx0kq0"))))
+         "1fbkpagc5zznrafy7h68nhx43a1yg4v7242pbqjkd0h2481c101z"))))
     (properties `((upstream-name . "bayestestR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12407,14 +12484,14 @@ results using @code{ggplot2}.")
 (define-public r-effectsize
   (package
     (name "r-effectsize")
-    (version "0.6.0.1")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "effectsize" version))
        (sha256
         (base32
-         "1rhpbhyrv0avinm6dz6v2qw4xxdl9m1wknq1dv2flfxgcz0k9qiz"))))
+         "07dbj7n9vwjkb7xrdj224lzc3ppr3jjdgyyilkj7gpkvgjgfrqhz"))))
     (properties `((upstream-name . "effectsize")))
     (build-system r-build-system)
     (propagated-inputs
@@ -12696,14 +12773,14 @@ User credentials are shared with command line git through the
 (define-public r-usethis
   (package
     (name "r-usethis")
-    (version "2.1.5")
+    (version "2.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "usethis" version))
        (sha256
         (base32
-         "0lph2rxv7nq3h022gp8d50wbq5lwicnx85d2l5dx876wxhb9wlvx"))))
+         "0638dzl4nm4c36990sf2biy74hjr2fzlqzfb98fsqrbhaw3ngp1i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cli
@@ -12884,14 +12961,14 @@ ways.")
 (define-public r-summarytools
   (package
     (name "r-summarytools")
-    (version "1.0.0")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "summarytools" version))
        (sha256
         (base32
-         "04qcysfywljnqkcz2b7kzpy0xv3ykkvvb14vnda63z1wvmadyhkn"))))
+         "0gr95cd1ja8di6s0xghk6w7nj3bh3z4g7j7ixdy7f88q681aixgx"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-base64enc
@@ -13055,14 +13132,14 @@ analysing multivariate abundance data in community ecology.")
 (define-public r-afex
   (package
     (name "r-afex")
-    (version "1.1-0")
+    (version "1.1-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "afex" version))
        (sha256
         (base32
-         "0h8zqv82dqll19l3p89a2csvgnx8ayb2bajq7b35a8svhj427zax"))))
+         "09q426s2zmzxx5ilxy0x5mflpb38pl075ss1s8xvpswkn6cia0b6"))))
     (build-system r-build-system)
     ;; This is needed for the vignette builder
     (arguments
@@ -13346,13 +13423,13 @@ netCDF files.")
 (define-public r-biocmanager
   (package
     (name "r-biocmanager")
-    (version "1.30.16")
+    (version "1.30.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "BiocManager" version))
        (sha256
-        (base32 "0m9qxwqajg8lp0z06blbpgk3zw0z73aly1cvmjk6mvwja6jm99vm"))))
+        (base32 "0dawbd546rznllpw5wq282r0viga4cck398d4s1inkk18mmi4qzp"))))
     (properties `((upstream-name . "BiocManager")))
     (build-system r-build-system)
     (native-inputs
@@ -13367,14 +13444,14 @@ Bioconductor packages.")
 (define-public r-rgl
   (package
     (name "r-rgl")
-    (version "0.108.3")
+    (version "0.108.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgl" version))
        (sha256
         (base32
-         "0fqkx079z9y5b1gdg6qfz2wpw2j8q3ddflfkd9wwrkyacas6xyc9"))))
+         "0r9wzhjzl346i37ngs6hqzmizhi53kzqz582lv822v6yxang6fh3"))))
     (build-system r-build-system)
     (native-inputs
      (list pkg-config r-knitr))
@@ -13448,13 +13525,13 @@ isosurfaces.")
 (define-public r-ks
   (package
     (name "r-ks")
-    (version "1.13.4")
+    (version "1.13.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ks" version))
        (sha256
-        (base32 "15sm1ys7sk0gn7hr1vik4xrn4jdf837knwk7j8h32lr29w9mh917"))))
+        (base32 "05bqrjkbx2kn5aax0hy3xd6pf7nxka9bm1sp8ll1cc2gf1nx1i6i"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-fnn
@@ -13533,14 +13610,14 @@ University Press, 2007.")
 (define-public r-circular
   (package
     (name "r-circular")
-    (version "0.4-94")
+    (version "0.4-95")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "circular" version))
        (sha256
         (base32
-         "0wanbd6n7g1avvyc7pm0lnkwg868dix2byiz4wm6vmxzm0y47fmr"))))
+         "1qmwj1pf37lc2s5r83y7nqckscznqhbsv66bdfgfbby7x4qkwga8"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-boot r-mvtnorm))
@@ -13557,17 +13634,17 @@ Scientific.")
 (define-public r-activity
   (package
     (name "r-activity")
-    (version "1.3.1")
+    (version "1.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "activity" version))
        (sha256
         (base32
-         "1wn2a0hx7wfr2jyj1b772w5fgl6bcqkkw8cybais2s1wyjx8kjr5"))))
+         "11n6wmqz7p3428rr615f92m61a5gb908xpn4l8q484h61bwg38c3"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-circular r-insol r-pbapply))
+     (list r-insol r-pbapply))
     (home-page "https://cran.r-project.org/web/packages/activity/")
     (synopsis "Animal activity statistics")
     (description
@@ -13581,14 +13658,14 @@ circular variables).")
 (define-public r-ouch
   (package
     (name "r-ouch")
-    (version "2.17")
+    (version "2.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ouch" version))
        (sha256
         (base32
-         "1a7r24j59xz3lxa5wc694j6b80j8m5l86zd1sw9pvs66l8gd98kf"))))
+         "119s9llpjy0b4q830xig2xr66fq6izp6mr2k4k79ggmf3gxww8as"))))
     (build-system r-build-system)
     (propagated-inputs (list r-subplex))
     (home-page "https://kingaa.github.io/ouch/")
@@ -13685,13 +13762,13 @@ Anderson-Darling Distribution\".")
 (define-public r-admisc
   (package
     (name "r-admisc")
-    (version "0.26")
+    (version "0.27")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "admisc" version))
        (sha256
-        (base32 "19zkwyp8gvq8f74midmwld4azx44sbqxqx9mgs726i6dhnls6821"))))
+        (base32 "07hfrhv3pcldsffnyfzpa1q3x32gxr1386r8fik1nhql2w46mm13"))))
     (properties `((upstream-name . "admisc")))
     (build-system r-build-system)
     (home-page "https://github.com/dusadrian/admisc")
@@ -13906,14 +13983,14 @@ over-plotting in scatter plots with text.")
 (define-public r-colorramps
   (package
     (name "r-colorramps")
-    (version "2.3")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "colorRamps" version))
        (sha256
         (base32
-         "0shbjh83x1axv4drm5r3dwgbyv70idih8z4wlzjs4hiac2qfl41z"))))
+         "12jnkj50yh2hc5l7j56lrrrmn58akrj9dwj98vzf42iq4h42kwb1"))))
     (properties `((upstream-name . "colorRamps")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/colorRamps")
@@ -14164,18 +14241,20 @@ definiteness of a matrix.")
 (define-public r-rspectra
   (package
     (name "r-rspectra")
-    (version "0.16-0")
+    (version "0.16-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "RSpectra" version))
        (sha256
         (base32
-         "1ab45as2ysjrvkhvmx7y3nbhd0y1w4j9k2a789lcd973zz4wzwda"))))
+         "16ij84wgpsmqmnxqiii8dgihy3bfxazry9znmckhwzba7m0d79fb"))))
     (properties `((upstream-name . "RSpectra")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-matrix r-rcpp r-rcppeigen))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/yixuan/RSpectra")
     (synopsis "Solvers for large-scale Eigenvalue and SVD problems")
     (description
@@ -14211,14 +14290,14 @@ diagnostics for controlling type-1 errors are also provided.")
 (define-public r-flare
   (package
     (name "r-flare")
-    (version "1.7.0")
+    (version "1.7.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "flare" version))
        (sha256
         (base32
-         "0f992dmgnr6s8g3386i9bjfyf08q8srgw7sjz2yx7snj8znq7251"))))
+         "1xvrbvq2y7zfp98ijal3z8y1w2xbzfcdykzw4pqc3mnh0qrhq2d5"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-igraph r-lattice r-mass r-matrix))
@@ -14352,13 +14431,13 @@ methods, incorporating one or more trees and trait data.")
 (define-public r-rnexml
   (package
     (name "r-rnexml")
-    (version "2.4.6")
+    (version "2.4.7")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RNeXML" version))
               (sha256
                (base32
-                "0k56brcg80mvx35hgc5gj8arwba4k7q0075g38qp0qgq9d1b87cs"))))
+                "1zp6pijsc73jx8cmxb1hng36nvaf5wnhldnzlqhmba9kv9niscfb"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ape
@@ -14902,14 +14981,14 @@ want to include run-time testing features in their own packages.")
 (define-public r-assertive-properties
   (package
     (name "r-assertive-properties")
-    (version "0.0-4")
+    (version "0.0-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "assertive.properties" version))
        (sha256
         (base32
-         "0sqs54acs9qk9kvm32rxzfbzxz1l8mjahpfnw7r30z2brgz661jw"))))
+         "1pgljbwwbvbl4kc5c8mcv0qbzq3k6fzi29k88811yml263sm92dn"))))
     (properties
      `((upstream-name . "assertive.properties")))
     (build-system r-build-system)
@@ -15363,14 +15442,14 @@ covariance functions for large data sets.")
 (define-public r-spatialextremes
   (package
     (name "r-spatialextremes")
-    (version "2.0-9")
+    (version "2.1-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SpatialExtremes" version))
        (sha256
         (base32
-         "1mhn1c8n3bmgf0fjyac3wji4790zswzkqliqcv3n8kv9806crb0y"))))
+         "0z1swxp1syz8hdskarjxx4sdd7wx835kcnb783bwqm235yh991j3"))))
     (properties
      `((upstream-name . "SpatialExtremes")))
     (build-system r-build-system)
@@ -15639,14 +15718,14 @@ model with finite state space using the Aalen-Johansen estimator.")
 (define-public r-epi
   (package
     (name "r-epi")
-    (version "2.44")
+    (version "2.46")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Epi" version))
        (sha256
         (base32
-         "1wcxr1f7irgfdwzz4vf67114yhxrhxxxnhy4hfaww0zy91vzxx10"))))
+         "0s3ij0rya4wd7k97kc4s3pwj1d1ypaxl1s7zqr6sa07hp4a8fzz0"))))
     (properties `((upstream-name . "Epi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -15654,12 +15733,12 @@ model with finite state space using the Aalen-Johansen estimator.")
            r-data-table
            r-dplyr
            r-etm
+           r-magrittr
            r-mass
            r-matrix
            r-mgcv
            r-numderiv
            r-plyr
-           r-purrr
            r-survival
            r-zoo))
     (home-page "https://BendixCarstensen.com/Epi/")
@@ -15796,14 +15875,14 @@ subsetting.")
 (define-public r-globals
   (package
     (name "r-globals")
-    (version "0.14.0")
+    (version "0.15.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "globals" version))
        (sha256
         (base32
-         "1wrjiiif6rpc268zz79pvpw33si6n6ffgxdnxmmcracwhb5vqg90"))))
+         "15llx4233ihj4w815k7inc17530w9ja0mi29n1i0s2sr42j8jdpq"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-codetools))
@@ -15820,14 +15899,14 @@ them in distributed compute environments.")
 (define-public r-parallelly
   (package
     (name "r-parallelly")
-    (version "1.31.0")
+    (version "1.31.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parallelly" version))
        (sha256
         (base32
-         "0kjwxgxnlpjbxpr1dyzk3nyx9fwa6vwqr22bvsxz56xwxnirzdxx"))))
+         "1nhp66psk3m79is5qm4ppxkj7bdy46jr2h2pir22ia9ghhyzris0"))))
     (properties `((upstream-name . "parallelly")))
     (build-system r-build-system)
     (home-page "https://github.com/HenrikBengtsson/parallelly")
@@ -15848,14 +15927,14 @@ port-forwarding to your local computer.")
 (define-public r-future
   (package
     (name "r-future")
-    (version "1.24.0")
+    (version "1.26.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future" version))
        (sha256
         (base32
-         "0xmj17fq9paww796490bmakv6pcvrzk15i8mzhxk1mp9l0mj32vv"))))
+         "1mchjdvvwgs8v0iv8z5m6gav3xzvnq11h8qrc7lfnrb2x3d0np53"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -15883,14 +15962,14 @@ the local machine to, say, distributed processing on a remote compute cluster.")
 (define-public r-future-apply
   (package
     (name "r-future-apply")
-    (version "1.8.1")
+    (version "1.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "future.apply" version))
        (sha256
         (base32
-         "1ix61bfbk43pwnjb0wk8lkfgdsy5zi8svk74gar5nrl90b5w6nqd"))))
+         "1xb7qj8izjwmy4aa92p5f4cdbhgp220hrly3b5879f9hrv2w2rk1"))))
     (properties `((upstream-name . "future.apply")))
     (build-system r-build-system)
     (arguments
@@ -16066,14 +16145,14 @@ several common set, element and attribute related tasks.")
 (define-public r-shinybs
   (package
     (name "r-shinybs")
-    (version "0.61")
+    (version "0.61.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "shinyBS" version))
        (sha256
         (base32
-         "0rhim4mbp4x9vvm7xkmpl7mhb9qd1gr96cr4dv330v863ra2kgji"))))
+         "0h51685a9qll4agayldjyryi60ih969219ibg071slv0613p5v8a"))))
     (properties `((upstream-name . "shinyBS")))
     (build-system r-build-system)
     ;; The tests spawn Shiny browser apps.  They cannot be run
@@ -16302,14 +16381,14 @@ numbers (e.g. concentrations).")
 (define-public r-cobs
   (package
     (name "r-cobs")
-    (version "1.3-4")
+    (version "1.3-5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "cobs" version))
        (sha256
         (base32
-         "0hiw5smk6kgk0gb9840kcqkhkybl7n30s77xhjc395x09izbgix1"))))
+         "04f6a6gp11p93j2k35mbrfqgjx5qsgi3dj1085a5v5s0z6l7vbkz"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-quantreg r-sparsem))
@@ -16504,14 +16583,14 @@ marginal histograms/boxplots/density plots to ggplot2 scatterplots.")
 (define-public r-minpack-lm
   (package
     (name "r-minpack-lm")
-    (version "1.2-1")
+    (version "1.2-2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "minpack.lm" version))
        (sha256
         (base32
-         "18ym2pdql5vzngc7q5gn66d153hrfrnd8ilv8yh6vd7j7sx7vjql"))))
+         "11yz6hk2r33571d16kq01cb1x6sgdzi6jmksqlrm8mr84l95c2f7"))))
     (properties `((upstream-name . "minpack.lm")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -16528,14 +16607,14 @@ for lower and upper parameter bounds.  The implementation can be used via
 (define-public r-moments
   (package
     (name "r-moments")
-    (version "0.14")
+    (version "0.14.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "moments" version))
        (sha256
         (base32
-         "0f9y58w1hxcz4bqivirx25ywlmc80gbi6dfx5cnhkpdg1pk82fra"))))
+         "0r6qf3i1rzh2822bx1p0h8mh91gsbgg6asl2rzh2l4ys094bilif"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/moments")
     (synopsis "Moments, cumulants, skewness, kurtosis and related tests")
@@ -16639,14 +16718,14 @@ obtain confidence intervals associated with AIC and BIC.")
 (define-public r-penalized
   (package
     (name "r-penalized")
-    (version "0.9-51")
+    (version "0.9-52")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "penalized" version))
        (sha256
         (base32
-         "1zcrwa93mc27qj3g4ayc2k895r6g8q0g6qb2azmvj7wqk750va7a"))))
+         "08badmgygppbqzay20qijyww028yw6s8dyd8ijcp8g4r9rn8xqyq"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-rcpp r-rcpparmadillo r-survival))
@@ -16857,14 +16936,14 @@ network.")
 (define-public r-gmodels
   (package
     (name "r-gmodels")
-    (version "2.18.1")
+    (version "2.18.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gmodels" version))
        (sha256
         (base32
-         "0s8kd8krqk4kwv2zqxpsfy3w8qdwf5naf4b5l383vidq9sil0qb2"))))
+         "158y7yh4maawn9vki8cq4sil48xib2bbpl6qgj5gvlkw3c14hzfs"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-gdata r-mass))
@@ -17212,14 +17291,14 @@ barplots or heatmaps.")
 (define-public r-seqinr
   (package
     (name "r-seqinr")
-    (version "4.2-8")
+    (version "4.2-16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seqinr" version))
        (sha256
         (base32
-         "1xz9spln6s9mcwpgcv1m4jymn4gnl1bb6vh90bphqcn0vvlk8jsq"))))
+         "0cj07b7km5mla63qhbkxg1mnqq6vh79lsyyfpnbm29gw68w2bwy4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ade4 r-segmented))
@@ -17472,13 +17551,13 @@ datum transformations.")
 (define-public r-spdep
   (package
     (name "r-spdep")
-    (version "1.2-3")
+    (version "1.2-4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "spdep" version))
               (sha256
                (base32
-                "0qd7qjblx49gp07pcf4qb2f93ab3p126pa77g6mq4z3jaa510hak"))
+                "0xx6k3rsvsz1hwj0ny8aqfi9ca54x38f8pz8sfya5cggaspxbx59"))
               (snippet
                '(for-each delete-file '("inst/doc/CO69.html"
                                         "inst/doc/CO69.R"
@@ -17514,14 +17593,14 @@ spanning tree.")
 (define-public r-adegenet
   (package
     (name "r-adegenet")
-    (version "2.1.5")
+    (version "2.1.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "adegenet" version))
        (sha256
         (base32
-         "1wjp31634n6z6wglf4z3ydrhhn5jmpwwckmp3n2b0v5f3p2fivp4"))))
+         "0sx25p7bgz0h9mc3jsdnnjhvmb7sy8nb3r0z923vhk336d4xw8vq"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ade4
@@ -17651,13 +17730,13 @@ either PDF/EPS files.")
 (define-public r-polspline
   (package
     (name "r-polspline")
-    (version "1.1.19")
+    (version "1.1.20")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "polspline" version))
        (sha256
-        (base32 "0rhzf735hmbqfn2xbgcln4sqx7m9far72g5gq9mghgkw016kqglm"))))
+        (base32 "1dd1jwiaglkkhajzvqfkd1x5r3wzjlk5ww0yxzmns0s1kr74i4k9"))))
     (build-system r-build-system)
     (native-inputs (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/polspline/")
@@ -17671,13 +17750,13 @@ lspec, polyclass, and polymars.")
 (define-public r-rms
   (package
     (name "r-rms")
-    (version "6.2-0")
+    (version "6.3-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rms" version))
        (sha256
-        (base32 "1di4xvsx0rwkr77nfqiysbg4qf699199xqil70i39d4zwfzqrm8h"))))
+        (base32 "1yfk800q4mgmrjkh0hqjkiv907sr1bi1jaigrj8l6pmg1mkynhbc"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-cluster
@@ -17917,13 +17996,13 @@ SELECT or UPDATE queries to an end-point.")
 (define-public r-bookdown
   (package
     (name "r-bookdown")
-    (version "0.25")
+    (version "0.26")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "bookdown" version))
               (sha256
                (base32
-                "0v5nlm3lbm0h5cvd9j2211yqk68rkm416aq8qp6r8klj69xm1bri"))))
+                "11din9h2sgzvg44627xc5is4psbq2b34km5sbiaprskjrf474866"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-htmltools
@@ -17938,7 +18017,7 @@ SELECT or UPDATE queries to an end-point.")
     ;; input to knitr.
     #;
     (native-inputs
-     `(("r-knitr" ,r-knitr)))
+     (list r-knitr))
     (home-page "https://github.com/rstudio/bookdown")
     (synopsis "Authoring books and technical documents with R markdown")
     (description "This package provides output formats and utilities for
@@ -17993,14 +18072,14 @@ and a QP solver.")
 (define-public r-hierfstat
   (package
     (name "r-hierfstat")
-    (version "0.5-10")
+    (version "0.5-11")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hierfstat" version))
        (sha256
         (base32
-         "1p4vlna185sa3b5xjbysiqxcj9aa5s7dmxy41hg79vlqdivf874r"))))
+         "0nyb5091lr8ma9vydbssyx9503601rynlrbldv98mmrmh74h6v41"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ade4 r-adegenet r-gaston r-gtools))
@@ -18019,14 +18098,14 @@ variance components, using the likelihood-ratio statistics G.")
 (define-public r-hapassoc
   (package
     (name "r-hapassoc")
-    (version "1.2-8")
+    (version "1.2-9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "hapassoc" version))
        (sha256
         (base32
-         "0qs5jl0snzfchgpp6pabncwywxcmi743g91jvjiyyzw0lw85yv4s"))))
+         "09ijc4sbw743z74fzklmvig11ndkycg6j86k4214wfsj1yj6j9x6"))))
     (build-system r-build-system)
     (home-page "https://stat.sfu.ca/statgen/research/hapassoc.html")
     (synopsis "Inference of trait associations with SNP haplotypes")
@@ -18061,14 +18140,14 @@ handle missing genotypes at some SNPs.")
 (define-public r-r2html
   (package
     (name "r-r2html")
-    (version "2.3.2")
+    (version "2.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "R2HTML" version))
        (sha256
         (base32
-         "00kxny7hajs9r2kw63qk7d03ggdxx2j1g8vbrmzp806y8aczvik9"))))
+         "12qg9rp1j26h2f48dfg5k9jds26ycacv3f3ymk686ks43hd1hzja"))))
     (properties `((upstream-name . "R2HTML")))
     (build-system r-build-system)
     (home-page "https://github.com/nalimilan/R2HTML")
@@ -18224,14 +18303,14 @@ interaction search in high-dimensional data.")
 (define-public r-extrafont
   (package
     (name "r-extrafont")
-    (version "0.17")
+    (version "0.18")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "extrafont" version))
        (sha256
         (base32
-         "0b9k2n9sk23bh45hjgnkxpjyvpdrz1hx7kmxvmb4nhlhm1wpsv9g"))))
+         "0mx810mld67vb1w3wkl4fhpjmkq32lgpq5x1c0a9rf8li5wskrj4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-extrafontdb r-rttf2pt1))
@@ -19238,14 +19317,14 @@ external dependencies.  This package has is implemented purely in R.")
 (define-public r-aplot
   (package
     (name "r-aplot")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "aplot" version))
        (sha256
         (base32
-         "10cqa35bh4lhpnybaalp3d69k392b25ba16dgbngqz0vikzp4czk"))))
+         "1b4jjj05a602dgn6yr1bsmbzlzkj6wf6af3k3w63g3mkqv0xzsfd"))))
     (properties `((upstream-name . "aplot")))
     (build-system r-build-system)
     (propagated-inputs
@@ -19253,8 +19332,7 @@ external dependencies.  This package has is implemented purely in R.")
            r-ggplot2
            r-ggplotify
            r-magrittr
-           r-patchwork
-           r-yulab-utils))
+           r-patchwork))
     (home-page "https://github.com/YuLab-SMU/aplot")
     (synopsis "Decorate a ggplot with associated information")
     (description
@@ -19314,14 +19392,14 @@ colored by the number of neighboring points.  This is useful to visualize the
 (define-public r-arrow
   (package
     (name "r-arrow")
-    (version "7.0.0")
+    (version "8.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "arrow" version))
        (sha256
         (base32
-         "1s9h2aw6iig45nz2rfk13qbp0qydx6cc4r6qs58f9cm9vgwsg76l"))))
+         "1b85vc5ld7nibqgsdkl5kbzc0rm5jh5lqfdrssvrrcxpd26a16kc"))))
     (properties `((upstream-name . "arrow")))
     (build-system r-build-system)
     (inputs
@@ -19375,14 +19453,14 @@ regular expressions from human readable expressions")
 (define-public r-mlapi
   (package
     (name "r-mlapi")
-    (version "0.1.0")
+    (version "0.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mlapi" version))
        (sha256
         (base32
-         "023vk5bp8cjcq88sapkl87kdxr92bay1dyxl6xirnyj699pyj51k"))))
+         "1qyiii6x9b89i4pd4yi2zd23aabpmnpj18gqi5va0zy0l8r7kknr"))))
     (properties `((upstream-name . "mlapi")))
     (build-system r-build-system)
     (propagated-inputs
@@ -19461,14 +19539,14 @@ Row} (CSR) format.")
 (define-public r-text2vec
   (package
     (name "r-text2vec")
-    (version "0.6")
+    (version "0.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "text2vec" version))
        (sha256
         (base32
-         "0r75cv77x2zm1z66s95hic71dpbqmybz39n48q6mz7gfd3m7312y"))))
+         "0bisr31051hnshw26rp9r4bm8ksr977dl9k1d3fb1x79pq5aa2pi"))))
     (properties `((upstream-name . "text2vec")))
     (build-system r-build-system)
     (propagated-inputs
@@ -19497,14 +19575,14 @@ multicore machines.")
 (define-public r-mcmcpack
   (package
     (name "r-mcmcpack")
-    (version "1.6-2")
+    (version "1.6-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MCMCpack" version))
        (sha256
         (base32
-         "18nyncvgb75q8flndni99ldr7ynqhillphkj7ydsmfv5w8b0zvqp"))))
+         "1cwdjn43b9hxpxf9mnas583myhk6r2258mh57f0zsc8bd4hbl56b"))))
     (properties `((upstream-name . "MCMCpack")))
     (build-system r-build-system)
     (propagated-inputs
@@ -19697,14 +19775,14 @@ the functions can also be applied to other types of categorical data.")
 (define-public r-pbmcapply
   (package
     (name "r-pbmcapply")
-    (version "1.5.0")
+    (version "1.5.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pbmcapply" version))
        (sha256
         (base32
-         "0i58gcqpnbyvc448qfgm45b7rpbmrnagsvk1h1hsqchbbicfslnz"))))
+         "1p8jf7c4k45482w72sr0jw4jkz787krrxai3sl6jz5l4lda2iz3z"))))
     (build-system r-build-system)
     (home-page "https://github.com/kvnkuang/pbmcapply")
     (synopsis "Track the progress of apply procedures with a progress bar")
@@ -19776,14 +19854,14 @@ experiments in a well-organized and reproducible way.")
 (define-public r-clue
   (package
     (name "r-clue")
-    (version "0.3-60")
+    (version "0.3-61")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clue" version))
        (sha256
         (base32
-         "0apgpdnn74mqg2bnr8yjyxgyvdl411h0r2b1r2xd67k21pyxs8bd"))))
+         "0cfw2k1kh4a8imdv7b5qw977xd6indampsabhfldj3rqrqb1ncbi"))))
     (build-system r-build-system)
     (propagated-inputs (list r-cluster))
     (home-page "https://cran.r-project.org/web/packages/clue/")
@@ -19957,14 +20035,14 @@ been used in the call to @code{aov}.")
 (define-public r-dalex
   (package
     (name "r-dalex")
-    (version "2.4.0")
+    (version "2.4.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "DALEX" version))
        (sha256
         (base32
-         "1s7r7k5ihdbj69r27vbcs3ghra9s4yqw7cyh2rkm2ry901zq3114"))))
+         "0mcdd2bd8zlsz7x174g87dp8vy4wc06w58dyr27f6lgv9shzya8j"))))
     (properties `((upstream-name . "DALEX")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20128,14 +20206,14 @@ the current document.")
 (define-public r-xgboost
   (package
     (name "r-xgboost")
-    (version "1.5.2.1")
+    (version "1.6.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "xgboost" version))
        (sha256
         (base32
-         "13mi3rmpxhgm4qbm4xcqml9n5d1xyai2k1mi52i8x60jd5m8s319"))))
+         "1gafjv6vcpny03lqw8s68xszalsylniavaqwsbzh46vyk4h9mscs"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-data-table r-jsonlite r-matrix))
@@ -20341,14 +20419,14 @@ computed using the L1 (Manhattan, taxicab) metric.")
 (define-public r-leiden
   (package
     (name "r-leiden")
-    (version "0.3.9")
+    (version "0.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "leiden" version))
        (sha256
         (base32
-         "03gaxpcab3a1av5lk8r5ll1s858gvyx5ndknci1sia96w1v44xc1"))))
+         "1gg24afwbz818041bhmswmdqgxv35zp5h1i1102p58aaiis8dkna"))))
     (properties `((upstream-name . "leiden")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20718,14 +20796,14 @@ in pipelines.")
 (define-public r-parameters
   (package
     (name "r-parameters")
-    (version "0.17.0")
+    (version "0.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "parameters" version))
        (sha256
         (base32
-         "0wrhs3rhr62441cghg4nsrlp6r41nf7x5nclzz71v5c0rfn8jh79"))))
+         "0zcypf3fi745pa18vpqgx3q9izhkkmpcvcv1gv8pxawyq9mw8ag9"))))
     (properties `((upstream-name . "parameters")))
     (build-system r-build-system)
     (propagated-inputs
@@ -20746,13 +20824,13 @@ effect size.")
 (define-public r-rgdal
   (package
     (name "r-rgdal")
-    (version "1.5-30")
+    (version "1.5-32")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rgdal" version))
        (sha256
-        (base32 "1f4zshgkaifbfcgq61vqb7jw5w2cc128d98rq2465r8696q2p0s9"))))
+        (base32 "1vbkyhw8nd7dw1r53qisphav31x6zvpbzilvnlvbjbj9hzhs90s5"))))
     (properties `((upstream-name . "rgdal")))
     (build-system r-build-system)
     (inputs
@@ -20877,13 +20955,13 @@ programming problems.")
 (define-public r-desolve
   (package
     (name "r-desolve")
-    (version "1.31")
+    (version "1.32")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "deSolve" version))
        (sha256
-        (base32 "06gsh514msqdmri78969snhgh22d2bzmnkqfgh0s74aprfd93m8r"))))
+        (base32 "1bfr4w760nr7mjhpmf32z39swr6isnn1665cld2d1pdgx8b0yrvl"))))
     (properties `((upstream-name . "deSolve")))
     (build-system r-build-system)
     (native-inputs
@@ -20953,14 +21031,14 @@ porting.")
 (define-public r-subplex
   (package
     (name "r-subplex")
-    (version "1.7")
+    (version "1.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "subplex" version))
        (sha256
         (base32
-         "11zqzydbj6ivgvlw1gv1r2yxra7misbc622g575p2vckhjjg9v6m"))))
+         "19g5bd39gmcn27xdsklkzxg99x1r5v5q8zcw1iwry31qj24ivhrv"))))
     (build-system r-build-system)
     (native-inputs
      (list gfortran))
@@ -21561,18 +21639,18 @@ elicitation options based on Kass and Vaidyanathan (1992)
 (define-public r-reldist
   (package
     (name "r-reldist")
-    (version "1.7-0")
+    (version "1.7-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "reldist" version))
        (sha256
         (base32
-         "0i04d6w3r6fzm4bykz6lnnh6dngmd61v5wlpli70r3fzdzhi7fji"))))
+         "17kbqqapqmckghv7jizibmicv3bzbycfr3mz4xg3yjp3c2bap4r6"))))
     (properties `((upstream-name . "reldist")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-densestbayes r-hmisc r-mgcv))
+     (list r-densestbayes r-mgcv))
     (home-page "http://www.stat.ucla.edu/~handcock/RelDist")
     (synopsis "Relative distribution methods")
     (description
@@ -21733,14 +21811,14 @@ data.")
 (define-public r-mda
   (package
     (name "r-mda")
-    (version "0.5-2")
+    (version "0.5-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mda" version))
        (sha256
         (base32
-         "1hq0zhhz9klmp4zcr1w8hyn7s1h9kfg57d2l2mfm7psx459j0krl"))))
+         "0qw4scc2w7jmnxssj5w2mdxb9rrl4dscqn54gplzm1gk2yf419mx"))))
     (properties `((upstream-name . "mda")))
     (build-system r-build-system)
     (propagated-inputs (list r-class))
@@ -21902,20 +21980,18 @@ and prints vectorized images.")
 (define-public r-randtoolbox
   (package
     (name "r-randtoolbox")
-    (version "1.31.1")
+    (version "2.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "randtoolbox" version))
        (sha256
         (base32
-         "1b9vjzqg014hxp1vfb62m01d7xim5vmpbyxzlbll49bqas0jx69h"))))
+         "005x2igljc6vm0nsmkld9aqjqz1ccwapc8z3aw5c3ivh4n2bghf9"))))
     (properties `((upstream-name . "randtoolbox")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-rngwell))
-    (native-inputs
-     (list gfortran))
     (home-page "https://cran.r-project.org/web/packages/randtoolbox/")
     (synopsis "Toolbox for pseudo and quasi random number generation")
     (description
@@ -22062,14 +22138,14 @@ models.")
 (define-public r-gamlss
   (package
     (name "r-gamlss")
-    (version "5.4-1")
+    (version "5.4-3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gamlss" version))
        (sha256
         (base32
-         "0fp9bmgykpqd950bk58dk423iy5r1fm3dy2gw0cwwmgivpq2lx0q"))))
+         "0xih19zqgpjl5qv5j38ana6x29y84shn2jfl2lk4kaw3q7yx86b6"))))
     (properties `((upstream-name . "gamlss")))
     (build-system r-build-system)
     (propagated-inputs
@@ -22582,13 +22658,13 @@ management} (aCRM).")
 (define-public r-tree
   (package
    (name "r-tree")
-   (version "1.0-41")
+   (version "1.0-42")
    (source (origin
             (method url-fetch)
             (uri (cran-uri "tree" version))
             (sha256
              (base32
-              "13jwdxx3na16mly176n01zdkaqn4a8x9fc43rq5xx5vx31drkkr1"))))
+              "1q3jgkhl5d4d8c396cyvkw60094p0z0a3x7xwhdbi8gl4c2c65ss"))))
    (build-system r-build-system)
    (home-page "https://cran.r-project.org/web/packages/tree/")
    (synopsis "Classification and regression trees")
@@ -22774,14 +22850,14 @@ R\" (ISBN 978-1-119-15272-9.)")
 (define-public r-alabama
   (package
     (name "r-alabama")
-    (version "2015.3-1")
+    (version "2022.4-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "alabama" version))
        (sha256
         (base32
-         "0mlgk929gdismikwx4k2ndqq57nnqj7mlgvd3479b214hksgq036"))))
+         "0v6kl6ndm8wvp9xzya3x4gj5kh03qgx13x5vyzn410wsndcjiim8"))))
     (properties `((upstream-name . "alabama")))
     (build-system r-build-system)
     (propagated-inputs (list r-numderiv))
@@ -23012,18 +23088,20 @@ variable observed over time.")
 (define-public r-fda
   (package
     (name "r-fda")
-    (version "5.5.1")
+    (version "6.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "fda" version))
        (sha256
         (base32
-         "0fm2vswc8fdi2p1axby0hjwh8m6lc1zrdikrpiamilr6w9m2zanw"))))
+         "1lvp4i4hqz650k27sa5flbdlkalihc79xy9128hfhr16h6wi8n10"))))
     (properties `((upstream-name . "fda")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-desolve r-fds r-matrix))
+     (list r-desolve r-fds))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://www.functionaldata.org")
     (synopsis "Functional data analysis")
     (description
@@ -23375,14 +23453,14 @@ it may be seen by an animal with less acute vision.")
 (define-public r-caret
   (package
     (name "r-caret")
-    (version "6.0-91")
+    (version "6.0-92")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "caret" version))
        (sha256
         (base32
-         "1kbx51cf71z2x19a0jflwnhx5jd9wk9q9203kzdxlqw5izdjvmdz"))))
+         "048mp325ndfl83a8p4dkd1b6zh5bws4gg9kxka5ss8qsj8m4m08x"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-e1071
@@ -24006,14 +24084,14 @@ Francesca Mazzia (2012).")
 (define-public r-lim
   (package
     (name "r-lim")
-    (version "1.4.6")
+    (version "1.4.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "LIM" version))
        (sha256
         (base32
-         "03x1gnm06bw1wrzc01110bjzd2mvjdzbc2mbrazh22jrmb32w5d8"))))
+         "0d9bgyd0mnag8wds993dsvlbpkhyakydlzwc3nghxzv2n8504hjj"))))
     (properties `((upstream-name . "LIM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -24053,14 +24131,14 @@ automatically show a loader when the output is (re)calculating.")
 (define-public r-rsvg
   (package
     (name "r-rsvg")
-    (version "2.2.0")
+    (version "2.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rsvg" version))
        (sha256
         (base32
-         "05mvi1ijnxayyj1f4p8nb56pncmm7x0sbq0d87asv7c7kw765n1a"))))
+         "096w4d1gvfc65d4jg7ykp23k9f7cf7f8zvzfhvhd7qkfsbjpxqkj"))))
     (properties `((upstream-name . "rsvg")))
     (build-system r-build-system)
     (inputs
@@ -24784,13 +24862,13 @@ actuarial models such as pension mathematics.")
 (define-public r-matrixextra
   (package
     (name "r-matrixextra")
-    (version "0.1.9-1")
+    (version "0.1.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MatrixExtra" version))
        (sha256
-        (base32 "098apgqlncgxspa8mi4bx2nk5fbk3880whqiwkvydsfsqrbv1sj0"))))
+        (base32 "00f6sgw6p2709gs3df68yr59nvsr429pk9xql71id3kachjzh618"))))
     (properties `((upstream-name . "MatrixExtra")))
     (build-system r-build-system)
     (propagated-inputs
@@ -24852,14 +24930,14 @@ least squares.")
 (define-public r-semtools
   (package
     (name "r-semtools")
-    (version "0.5-5")
+    (version "0.5-6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "semTools" version))
        (sha256
         (base32
-         "1dpsn43ifvfy5v8w2fqdy54yclmy0d3qlzix67lflr2r7isq7y6x"))))
+         "1wnakz76c4mgkwvx3iycmvgrzqys860jg9zpkba0ln5c08ycw8pm"))))
     (properties `((upstream-name . "semTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -25026,14 +25104,14 @@ importation and recoding.")
 (define-public r-rockchalk
   (package
     (name "r-rockchalk")
-    (version "1.8.151")
+    (version "1.8.152")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rockchalk" version))
        (sha256
         (base32
-         "17mfaxn3gj0vac5wdmsjj2z2668cszbpvan7hnxp7ic9bvsm1w2y"))))
+         "1d15jlgcy35pvaicaddd4zrhwm5ajb9yc3jk6dyxm99gc5wcn6h3"))))
     (properties `((upstream-name . "rockchalk")))
     (build-system r-build-system)
     (propagated-inputs
@@ -25053,14 +25131,14 @@ fairly comprehensive overview.")
 (define-public r-lisreltor
   (package
     (name "r-lisreltor")
-    (version "0.1.4")
+    (version "0.1.5")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lisrelToR" version))
        (sha256
         (base32
-         "0zicq0z3hhixan1p1apybnf3v5s6v6ysll4pcz8ivygwr2swv3p5"))))
+         "0i51v0x87277ly0kggdd594w6q4zq62b4n7xs9r25j08bzs82nfk"))))
     (properties `((upstream-name . "lisrelToR")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/package=lisrelToR")
@@ -25073,18 +25151,20 @@ output in R.")
 (define-public r-bdgraph
   (package
     (name "r-bdgraph")
-    (version "2.65")
+    (version "2.67")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "BDgraph" version))
        (sha256
         (base32
-         "0rg3wi9xwsbj90gb60p3vzkfrf76hwh47nc6fwv6c21yzd3s7vm4"))))
+         "0s2j4462zlgyjnqvvvxg4lynhmwwnjaw1cr1chzmagfvaj94qhhz"))))
     (properties `((upstream-name . "BDgraph")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-igraph))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://www.uva.nl/profile/a.mohammadi")
     (synopsis "Bayesian structure learning in graphical models")
     (description
@@ -25199,14 +25279,14 @@ translated to input syntax for the R packages @code{sem} and @code{lavaan}.")
 (define-public r-cdm
   (package
     (name "r-cdm")
-    (version "7.6-11")
+    (version "8.1-12")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "CDM" version))
        (sha256
         (base32
-         "0k3arkzz7nzswjcsr7fdmpfs94ilg8l265dyn49555fw3673cgqj"))))
+         "1cnk19k09cj81ic43rwbvcalvczfca4ncdyy8r1gyc8fzf2glb0i"))))
     (properties `((upstream-name . "CDM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -25230,14 +25310,14 @@ well as Ravand and Robitzsch (2015).")
 (define-public r-tam
   (package
     (name "r-tam")
-    (version "3.7-16")
+    (version "4.0-16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "TAM" version))
        (sha256
         (base32
-         "1969xm1f7s183h0xnd4g1bxhjp80rl7kad29zwcig0fmw6bs2mpd"))))
+         "00ww277hsyci5rph4gb155h0y95dmjhqgn9amz6g8zbrjb2748dw"))))
     (properties `((upstream-name . "TAM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -25287,18 +25367,20 @@ elimination, and a simulation module for various binary data matrices.")
 (define-public r-irtoys
   (package
     (name "r-irtoys")
-    (version "0.2.1")
+    (version "0.2.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "irtoys" version))
        (sha256
         (base32
-         "0h6iiaxikhbxhbyksbjnb09qdxinlkwr2v9yzs5wslbni14paq5q"))))
+         "1qshz6czykgf53mq6xiswzv5xsjwrkrinpfkf1yavql4v08hs82b"))))
     (properties `((upstream-name . "irtoys")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ltm r-sm))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://cran.r-project.org/package=irtoys")
     (synopsis "Collection of functions related to Item Response Theory (IRT)")
     (description
@@ -25354,14 +25436,14 @@ interesting features. iheatmapr uses the plotly library for interactivity.")
 (define-public r-packrat
   (package
     (name "r-packrat")
-    (version "0.7.0")
+    (version "0.8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "packrat" version))
        (sha256
         (base32
-         "1hnwhdgqljqs3m7c4rjlyndyc0k85jpa4rbfymxkm3zjg3yy3g78"))))
+         "1vs4i19x6jdwl3jnanp127k4hk80h1mj56cjn07w1gkl542vj99h"))))
     (properties `((upstream-name . "packrat")))
     (build-system r-build-system)
     (home-page "https://github.com/rstudio/packrat/")
@@ -26512,14 +26594,14 @@ estimation.")
 (define-public r-optimx
   (package
     (name "r-optimx")
-    (version "2021-10.12")
+    (version "2022-4.30")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "optimx" version))
        (sha256
         (base32
-         "0hvrpfya767vp3anmb8ih516v4zz1sv4h193rn93kyjydf2lqf1r"))))
+         "045ls1vl1392ihwln6mngz0zg2w93ym1m607vfrg8v1949x8isgb"))))
     (properties `((upstream-name . "optimx")))
     (build-system r-build-system)
     (propagated-inputs (list r-numderiv))
@@ -26540,14 +26622,14 @@ here.")
 (define-public r-projpred
   (package
     (name "r-projpred")
-    (version "2.1.1")
+    (version "2.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "projpred" version))
        (sha256
         (base32
-         "170pskvcsyk22xl4q8mklx8nw29miqzb42wajcab7bki8ap1ix46"))))
+         "1c6gnmknd3vb0fb5h6gd372dk27nzif90b4c1snql49wacg6b2m8"))))
     (properties `((upstream-name . "projpred")))
     (build-system r-build-system)
     (propagated-inputs
@@ -26661,14 +26743,14 @@ inference diagnostics.
 (define-public r-brms
   (package
     (name "r-brms")
-    (version "2.16.3")
+    (version "2.17.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "brms" version))
        (sha256
         (base32
-         "1q93z4cf3iy4rs6pgvph6z7hc8q05iwif76hcg8p4kr6nl82nc38"))))
+         "0wff5rld4kgkk2nbllvm1h4c596igzgd0q7nx1cabgl11fja7r94"))))
     (properties `((upstream-name . "brms")))
     (build-system r-build-system)
     (propagated-inputs
@@ -26770,14 +26852,14 @@ pies on a map.")
 (define-public r-scrypt
   (package
     (name "r-scrypt")
-    (version "0.1.3")
+    (version "0.1.4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "scrypt" version))
        (sha256
         (base32
-         "14iblgbp9v2by8fjbrpsd59iknp5babcz7j3yv1yxxzcwyb6wrrm"))))
+         "12q9d4m7flbvlgssvjh1ga4jswkmqjfshf6pna6qk6v087gmzdsj"))))
     (properties `((upstream-name . "scrypt")))
     (build-system r-build-system)
     (propagated-inputs
@@ -27253,14 +27335,14 @@ simple interface for all functions.")
 (define-public r-iml
   (package
     (name "r-iml")
-    (version "0.10.1")
+    (version "0.11.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "iml" version))
        (sha256
         (base32
-         "1wz6xqhvqkzj723nw7qrlwb1171wvvpxhv3pa8cq7vcbkiflq37r"))))
+         "1za7bjnp07i20vyb6vxz2ya5cr8g4p076w61n8m38wnz04lz5yz5"))))
     (properties `((upstream-name . "iml")))
     (build-system r-build-system)
     (propagated-inputs
@@ -27270,7 +27352,6 @@ simple interface for all functions.")
            r-future
            r-future-apply
            r-ggplot2
-           r-keras
            r-metrics
            r-prediction
            r-r6))
@@ -27341,14 +27422,14 @@ diagonals.  This package allows you to compute the tensor product of arrays.")
 (define-public r-spatstat-utils
   (package
     (name "r-spatstat-utils")
-    (version "2.3-0")
+    (version "2.3-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.utils" version))
        (sha256
         (base32
-         "06nvn2ffyrskhzaavsy6lmdp0m8askkrp1fnwrhjsj01lbjnq2az"))))
+         "08pybliv4r3v4rcazmlfr4a07sjfhrkmksdmhhq9k185vw4474av"))))
     (properties
      `((upstream-name . "spatstat.utils")))
     (build-system r-build-system)
@@ -27362,14 +27443,14 @@ which may also be useful for other purposes.")
 (define-public r-spatstat-sparse
   (package
     (name "r-spatstat-sparse")
-    (version "2.1-0")
+    (version "2.1-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.sparse" version))
        (sha256
         (base32
-         "148fxbxss569w73xaqpzwpz9rfjdgznh2ngf06gvm33631222680"))))
+         "00vkvv5pnm82gn7vqnzrrp68y46gbkhdq0hbwqx7nxjvf5lssdcs"))))
     (properties
      `((upstream-name . "spatstat.sparse")))
     (build-system r-build-system)
@@ -27386,14 +27467,14 @@ matrix calculations that are common in statistics, such as quadratic forms.")
 (define-public r-spatstat-data
   (package
     (name "r-spatstat-data")
-    (version "2.1-4")
+    (version "2.2-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.data" version))
        (sha256
         (base32
-         "0bq9randa3lgkh2q932iss5cxazq743q6p8asiqqf0yi32b003jq"))))
+         "1rf36zy29h9qabpv19hx84gjdiay7i9y9777d2zn17ahyss3p56k"))))
     (properties `((upstream-name . "spatstat.data")))
     (build-system r-build-system)
     (propagated-inputs
@@ -27431,14 +27512,14 @@ for the geometry of linear networks.")
 (define-public r-spatstat-core
   (package
     (name "r-spatstat-core")
-    (version "2.4-2")
+    (version "2.4-4")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "spatstat.core" version))
        (sha256
         (base32
-         "0bhdxyw212yf9y9nsvbz4yy08ka3wr3hkjqpag0ys2s1p22c51b9"))))
+         "0fyi8y1z919nzn47kaviln7gflhcp5qdi3gfvf7nwkdix3pkk373"))))
     (properties `((upstream-name . "spatstat.core")))
     (build-system r-build-system)
     (propagated-inputs
@@ -28018,14 +28099,14 @@ the @code{survival} package.")
 (define-public r-exactranktests
   (package
     (name "r-exactranktests")
-    (version "0.8-34")
+    (version "0.8-35")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "exactRankTests" version))
        (sha256
         (base32
-         "1i4mwz61mjlh1ai3dww2pjkicx9ww8c4mljnr8xlawh91479lva9"))))
+         "1qv9i57chhz8xiv0j8r47rbigyqs72fa7ssz99inyc0s8gzskd3y"))))
     (properties
      `((upstream-name . "exactRankTests")))
     (build-system r-build-system)
@@ -28228,14 +28309,14 @@ model.")
 (define-public r-igraph
   (package
     (name "r-igraph")
-    (version "1.3.0")
+    (version "1.3.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "igraph" version))
        (sha256
         (base32
-         "09dzc8lslljvhj2q46075vxcmlgkvq2qs500zdqyy9g8scq6iqbi"))))
+         "0khl87ncc9hkvx4f1kyzv7w7bg9zbyd1rk20ja3azkhpqjkjnnjh"))))
     (build-system r-build-system)
     (native-inputs
      (list gfortran))
@@ -28686,14 +28767,14 @@ models without involving a test set.")
 (define-public r-tidypredict
   (package
     (name "r-tidypredict")
-    (version "0.4.8")
+    (version "0.4.9")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidypredict" version))
        (sha256
         (base32
-         "0fff349pkksss8h1k2qza78l81ha6avx63pxziv6dfa8h62qmrdy"))))
+         "0x0r36zvny4rqgndx7iqh39yhr53gl4d8wd8wpvdcgg35q6z02z2"))))
     (properties `((upstream-name . "tidypredict")))
     (build-system r-build-system)
     (propagated-inputs
@@ -28807,14 +28888,14 @@ vignettes in all common formats.")
 (define-public r-tidytext
   (package
     (name "r-tidytext")
-    (version "0.3.2")
+    (version "0.3.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tidytext" version))
        (sha256
         (base32
-         "0as7lscjl6ywk85almmb4f71vxmgkfds46g52ryggkg2isksvq3g"))))
+         "0kljaxyhhzbcv9jkjdy0wn6gkamh25y2xfb9k11sqhz3lv72nfvm"))))
     (properties `((upstream-name . "tidytext")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29007,14 +29088,14 @@ data structures of the tidyverse.")
 (define-public r-lsa
   (package
     (name "r-lsa")
-    (version "0.73.2")
+    (version "0.73.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lsa" version))
        (sha256
         (base32
-         "1a33irqa6qvbc02z12rgbgv8kxq2gmahy7j5bg8b23lvvaxif06b"))))
+         "16k1g0kh3yaw7azg76aqf3hn3b6jgqg92xx0syai8l0my9ci2zzh"))))
     (properties `((upstream-name . "lsa")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29096,14 +29177,14 @@ phylogenetic relatedness) can also be conducted.")
 (define-public r-altmeta
   (package
     (name "r-altmeta")
-    (version "3.3")
+    (version "4.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "altmeta" version))
        (sha256
         (base32
-         "1xq12hnzxh7kgv2i36xprg4lkvqfmxwz3sq4a1jlq2d5g3narvcm"))))
+         "17cyiydf4n5j64izj7jph2v43h4x9kfd5b0x6m0ik5ci2aw8xzr5"))))
     (properties `((upstream-name . "altmeta")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29275,18 +29356,26 @@ data to rasters.  It speeds up plotting of data with millions of points.")
 (define-public r-seuratobject
   (package
     (name "r-seuratobject")
-    (version "4.0.4")
+    (version "4.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "SeuratObject" version))
        (sha256
         (base32
-         "1308hjbs8br3gp9vwm65awgp6vimwgi2jyl1ryn96l84savn2ljq"))))
+         "018anas8a9m3kh9jn5370v64d93k64z3iic13a75hp6r7g5hd94w"))))
     (properties `((upstream-name . "SeuratObject")))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-matrix r-rcpp r-rcppeigen r-rlang))
+     (list r-future
+           r-future-apply
+           r-matrix
+           r-progressr
+           r-rcpp
+           r-rcppeigen
+           r-rgeos
+           r-rlang
+           r-sp))
     (home-page "https://satijalab.org/seurat")
     (synopsis "Data structures for single cell data")
     (description
@@ -29300,13 +29389,13 @@ other R users.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "4.1.0")
+    (version "4.1.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "0p9i3fnkqa3vranr7c7ckzp1kq42d7p0gcfi9ml4kr334yd84195"))))
+                "1klamxk6dj0jgpfwll5frcnj9h8lh8c5fxdn9ky7h8xk35lsj6i0"))))
     (properties `((upstream-name . "Seurat")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29625,14 +29714,14 @@ kernel estimators.")
 (define-public r-lpme
   (package
     (name "r-lpme")
-    (version "1.1.2")
+    (version "1.1.3")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "lpme" version))
         (sha256
           (base32
-            "1b0w5ji8hjayni1sh5id193cmanf6n11p16fijkxln4sv4lks4aw"))))
+            "1ch11cwjci98m7952p9wdsh9fj5y1mjya6ayq0q4wmbm824qfpzb"))))
     (properties `((upstream-name . "lpme")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29789,13 +29878,13 @@ package also supersedes the package @code{BBmisc}.")
 (define-public r-mlr3pipelines
   (package
     (name "r-mlr3pipelines")
-    (version "0.4.0")
+    (version "0.4.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3pipelines" version))
               (sha256
                (base32
-                "0913f67c1r9bi68gxh1prsp0vch21bl6plahnvjrlbq8rrs1sr6p"))))
+                "1zz55i8c08znxpcs6gp5inaw96c6la9wnsla0972ankvj1hsrcr2"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-backports
@@ -29852,13 +29941,13 @@ performing ordinal regression.")
 (define-public r-paradox
   (package
     (name "r-paradox")
-    (version "0.8.0")
+    (version "0.9.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "paradox" version))
               (sha256
                (base32
-                "1jfzbpqi1rp3r8hnk37dqwggp48ha5bnilmdz7dwzfdaskssycxa"))))
+                "0fzq59903fklgj3kblnpzasy13a82s72c1qjsy7d1m0fyj28ahdw"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-backports r-checkmate r-data-table r-mlr3misc r-r6))
@@ -29910,13 +29999,13 @@ computational operations, add-on packages provide additional functionality.")
 (define-public r-mlr3learners
   (package
     (name "r-mlr3learners")
-    (version "0.5.2")
+    (version "0.5.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3learners" version))
               (sha256
                (base32
-                "1d9hcrnj622ynrzg0ii0fkhz2n66ip46yln21jq1pwpwkqwqzv35"))))
+                "088i2piv7sgxsvc7jyr6mq53vqf8yjdlrysgqphsryq6k50i00zd"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-checkmate
@@ -29937,14 +30026,14 @@ vector machines, and gradient boosting.")
 (define-public r-bbotk
   (package
     (name "r-bbotk")
-    (version "0.5.2")
+    (version "0.5.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bbotk" version))
        (sha256
         (base32
-         "0k1vlh14mfbcgdw2yfhab7shkrqm4d2h6af12mybr9gks26xmw82"))))
+         "13qj8qysqismv9k9rfw770r7w8jdaw82n71k7sp3wsrlhxjxw734"))))
     (properties `((upstream-name . "bbotk")))
     (build-system r-build-system)
     (propagated-inputs
@@ -29967,13 +30056,13 @@ annealing.")
 (define-public r-mlr3tuning
   (package
     (name "r-mlr3tuning")
-    (version "0.13.0")
+    (version "0.13.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "mlr3tuning" version))
               (sha256
                (base32
-                "0czlpi8bshn8cjq7pa1cyy7lpv35g4hv2nbyhc59zrcykzfv8afm"))))
+                "0jfslx6pwk408ydn69grrvsp22jd7gsjmwvss0a1j0zav3q1pvks"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-bbotk
@@ -30320,14 +30409,14 @@ in output to the equivalent HTML.")
 (define-public r-pkgdown
   (package
     (name "r-pkgdown")
-    (version "2.0.2")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pkgdown" version))
        (sha256
         (base32
-         "11grx7a2rz6b4kwspm7c8crjav677c22hysnp4bkwh5g8kr5nm2h"))))
+         "0wqga9bcl7wmvkwpkkmf5hx1cl7rjq5ddvqmxhl4p1dczys3adnr"))))
     (properties `((upstream-name . "pkgdown")))
     (build-system r-build-system)
     (inputs (list pandoc))
@@ -30429,14 +30518,14 @@ visualized at any level of the experiment's design.")
 (define-public r-qdapregex
   (package
     (name "r-qdapregex")
-    (version "0.7.2")
+    (version "0.7.5")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "qdapRegex" version))
         (sha256
           (base32
-            "1xa8q1way3gjadrjh3mv3xr4c6b4h16nd2c6lgl969difplpfz9p"))))
+            "1hdilycwrvi0q6cx7k8vg87bamm2xsafjkya5x4smxysm5k1r4qb"))))
     (properties `((upstream-name . "qdapRegex")))
     (build-system r-build-system)
     (propagated-inputs (list r-stringi))
@@ -30732,32 +30821,29 @@ Also support writing data frame into ODS file.")
 (define-public r-qpdf
   (package
     (name "r-qpdf")
-    (version "1.1")
+    (version "1.2.0")
     (source
      (origin
       (method url-fetch)
       (uri (cran-uri "qpdf" version))
       (sha256
        (base32
-        "03lnfncw8qd1fwfyqh1mjvnsjr3b63wxbah0wp5g7z7gba90dwbi"))
+        "1a1d7zad2l94z068mic6dg9wr9bq8mlmqszrj8vxps1441mb6gfh"))
       (modules '((guix build utils)))
       (snippet
        '(begin
            ;; unvendor libqpdf
           (delete-file-recursively "src/libqpdf")
-          (delete-file-recursively "src/include/qpdf")
-          #t))))
+          (delete-file-recursively "src/include/qpdf")))))
     (properties `((upstream-name . "qpdf")))
     (build-system r-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'configure
-           (lambda _
-             (setenv "EXTERNAL_QPDF" "1")
-             #t)))))
+           (lambda _ (setenv "EXTERNAL_QPDF" "1"))))))
     (inputs
-      (list zlib qpdf))
+      (list libjpeg-turbo qpdf zlib))
     (propagated-inputs
       (list r-askpass r-curl r-rcpp))
     (native-inputs (list pkg-config))
@@ -30775,14 +30861,14 @@ data you need the @code{pdftools} package.")
 (define-public r-pdftools
   (package
     (name "r-pdftools")
-    (version "3.1.1")
+    (version "3.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pdftools" version))
        (sha256
         (base32
-         "1lflqf2ypdm4w033vyjykmsy8cl34sp42fzkfgfdhvl2d0xjhl96"))))
+         "1b9ppdndvlf8nl0i3xy1rx4f9j0j8ic6q9n0c4zn3rv6jdy8zqfi"))))
     (properties `((upstream-name . "pdftools")))
     (build-system r-build-system)
     (inputs (list zlib poppler))
@@ -31261,6 +31347,25 @@ indicator, a quantitative variable or a survival time.")
     ;; Any version of the LGPL
     (license license:lgpl3+)))
 
+(define-public r-gsalib
+  (package
+    (name "r-gsalib")
+    (version "2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "gsalib" version))
+       (sha256
+        (base32
+         "1k3zjdydzb0dfh1ihih08d4cw6rdamgb97cdqna9mf0qdjc3pcp1"))))
+    (build-system r-build-system)
+    (home-page "https://cran.r-project.org/web/packages/gsalib")
+    (synopsis "Utility functions for GATK")
+    (description "This package contains utility functions used by the Genome
+Analysis Toolkit (GATK) to load tables and plot data.  The GATK is a toolkit
+for variant discovery in high-throughput sequencing data.")
+    (license license:expat)))
+
 (define-public r-randomforestsrc
   (package
     (name "r-randomforestsrc")
@@ -31476,16 +31581,16 @@ asynchronously from formatting.")
 (define-public r-rmisc
   (package
     (name "r-rmisc")
-    (version "1.5")
+    (version "1.5.1")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Rmisc" version))
               (sha256
                (base32
-                "1ijjhfy3v91fspid77rrkc5dkcb2lav37wc3f4k5lwrn24wzy5y8"))))
+                "1h6jb0xwkyhm9lwm7nj9bhrb5dhrsifvkpqkrd594j1lz74dar8x"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-plyr r-rcpp r-lattice))
+     (list r-plyr r-lattice))
     (home-page "https://cran.r-project.org/web/packages/Rmisc/")
     (synopsis "Ryan Miscellaneous")
     (description "The Rmisc library contains functions for data analysis and
@@ -31549,13 +31654,13 @@ reading and writing arbitrary protocol-buffer data in R.")
 (define-public r-opencpu
   (package
     (name "r-opencpu")
-    (version "2.2.7")
+    (version "2.2.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "opencpu" version))
        (sha256
-        (base32 "06jpmk95hm39ib5c75xw0mdrdv9x9zz1qil3m8ysb6pp1xx47jz0"))))
+        (base32 "1h0s7fbifyf4h1296sdk3amij0m6s12wq32mbky7xg4nz8wj29ni"))))
     (properties `((upstream-name . "opencpu")))
     (build-system r-build-system)
     (inputs
@@ -31592,14 +31697,14 @@ Apache2.")
 (define-public r-exactextractr
   (package
     (name "r-exactextractr")
-    (version "0.8.1")
+    (version "0.8.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "exactextractr" version))
        (sha256
         (base32
-         "11s58vc63r9kah815a18ihb0x2nmnjnpngybw3yr2d6715sz89nc"))))
+         "0x4axrq9iznvajqy07gcfcrvzniz5yj6wabchgksg0fqz0xancnc"))))
     (properties `((upstream-name . "exactextractr")))
     (build-system r-build-system)
     (inputs (list geos))
@@ -31618,14 +31723,14 @@ the @code{raster} package that is suitable for extracting raster values using
 (define-public r-stringfish
   (package
     (name "r-stringfish")
-    (version "0.15.5")
+    (version "0.15.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "stringfish" version))
        (sha256
         (base32
-         "0ac17wl0fcpmipbvhhg5nyccg055671fnlxvnjd5l3kilx313wlx"))))
+         "0ddpsi7z0kzqgbq9y646pk9afclq0r7ak22zsdh0i93ni0x71c9l"))))
     (properties `((upstream-name . "stringfish")))
     (build-system r-build-system)
     (propagated-inputs
@@ -31772,14 +31877,14 @@ Tensorflow graphs.")
 (define-public r-tensorflow
   (package
     (name "r-tensorflow")
-    (version "2.8.0")
+    (version "2.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tensorflow" version))
        (sha256
         (base32
-         "19ayjvlxmgjais0kx6fj9an1h1i8mh4c9dhah7dj6390p53pgz93"))))
+         "12c6ndxx4g6fqjakpzp9pgl29ghswhqyr6q9jahpk0cawizh2znj"))))
     (properties `((upstream-name . "tensorflow")))
     (build-system r-build-system)
     (inputs (list tensorflow))
@@ -31803,14 +31908,14 @@ between them.")
 (define-public r-keras
   (package
     (name "r-keras")
-    (version "2.8.0")
+    (version "2.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "keras" version))
        (sha256
         (base32
-         "10zvy4lmhb2sbn0gsm12pf95pxj9bmi8241ap1n6170xsld9phcf"))))
+         "06513d1fp7cxk4v03xm9lhgj6xmp9dqqvw3lnzwbzjwdkfj948yc"))))
     (properties `((upstream-name . "keras")))
     (build-system r-build-system)
     (propagated-inputs
@@ -31989,24 +32094,25 @@ with the dynamic plots from @code{dygraphs}.")
 (define-public r-rfigshare
   (package
     (name "r-rfigshare")
-    (version "0.3.7")
+    (version "0.3.8")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rfigshare" version))
        (sha256
         (base32
-         "1qgzn0mpjy4czy0pnbi395fxxx84arkg8r7rk8aidmd34584gjiq"))))
+         "10shwl1y9220m7ld5w9fjsjzy5yg8myrz9cz97ps9z2bw7bvka5j"))))
     (properties `((upstream-name . "rfigshare")))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ggplot2
            r-httpuv
            r-httr
-           r-plyr
            r-rjsonio
            r-xml
            r-yaml))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/ropensci/rfigshare")
     (synopsis "R Interface to figshare")
     (description
@@ -32496,14 +32602,14 @@ zoom/navigate any plot when called with any active plot.")
 (define-public r-zoolog
   (package
     (name "r-zoolog")
-    (version "0.4.1")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "zoolog" version))
        (sha256
         (base32
-         "1wxxxscw4ji4p4599vdw6vcrkqm0g75x1gh13m4758lb51wav9ks"))))
+         "00fi7czfwr0ll9070w3ijskd0xvilj02gy8wkgqzzrlilij8ah7p"))))
     (properties `((upstream-name . "zoolog")))
     (build-system r-build-system)
     (propagated-inputs
@@ -32550,14 +32656,14 @@ large datasets.")
 (define-public r-mlearning
   (package
     (name "r-mlearning")
-    (version "1.0-0")
+    (version "1.1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mlearning" version))
        (sha256
         (base32
-         "0r8xfaxw83s2r27b8x5qd0k4r5ayxpkafzn9b1a0jvsr87i6520r"))))
+         "1zjnh4gcw068li1bks60gazn3205xhmqz67hbkb1san33lmlxya3"))))
     (properties `((upstream-name . "mlearning")))
     (build-system r-build-system)
     (propagated-inputs
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f1fd9f1fef..452a22f0f2 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
 ;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2022 Evgenii Lepikhin <e.lepikhin@corp.mail.ru>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32382,6 +32383,29 @@ by inspecting the system for user preference.")
         ("rust-regex" ,rust-regex-1)
         ("rust-winapi" ,rust-winapi-0.3))))))
 
+(define-public rust-located-yaml-0.2
+  (package
+    (name "rust-located-yaml")
+    (version "0.2.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "located_yaml" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0xnx5al5v7d9syspj0irm22alwc3a9adikqxpbyyf6vsz3k8xilv"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
+        ("rust-serde" ,rust-serde-1)
+        ("rust-yaml-rust" ,rust-yaml-rust-0.4))))
+    (home-page "https://github.com/johnlepikhin/located_yaml")
+    (synopsis "YAML parser with saved positions")
+    (description
+     "YAML parser which provides AST with saved tokens positions.")
+    (license (list license:expat))))
+
 (define-public rust-lock-api-0.4
   (package
     (name "rust-lock-api")
@@ -34684,23 +34708,38 @@ file's MIME type by its extension.")
     ;; No copyright headers in the source code.  LICENSE indicates gpl3.
     (license license:gpl3)))
 
-(define-public rust-minimal-lexical-0.1
+(define-public rust-minimal-lexical-0.2
   (package
     (name "rust-minimal-lexical")
-    (version "0.1.4")
+    (version "0.2.1")
     (source
       (origin
         (method url-fetch)
         (uri (crate-uri "minimal-lexical" version))
         (file-name (string-append name "-" version ".tar.gz"))
         (sha256
-         (base32 "0xynhr97vyv5n5lls41dl7bfa3ba122lix9mqij1l7yprl6n6r4w"))))
+         (base32 "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8"))))
     (build-system cargo-build-system)
     (home-page "https://github.com/Alexhuszagh/minimal-lexical")
-    (synopsis "Fast float parsing conversion routines")
-    (description "Fast float parsing conversion routines.")
+    (synopsis "Float parsing conversion routines")
+    (description "This is a minimal version of rust-lexical, meant to allow
+efficient round-trip float parsing. Minimal-lexical implements a correct, fast
+float parser.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-minimal-lexical-0.1
+  (package
+    (inherit rust-minimal-lexical-0.2)
+    (name "rust-minimal-lexical")
+    (version "0.1.4")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "minimal-lexical" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "0xynhr97vyv5n5lls41dl7bfa3ba122lix9mqij1l7yprl6n6r4w"))))))
+
 (define-public rust-miniz-oxide-0.4
   (package
     (name "rust-miniz-oxide")
@@ -37322,7 +37361,7 @@ implementation (which is unstable / requires nightly).")
 (define-public rust-nom-7
   (package
     (name "rust-nom")
-    (version "7.0.0")
+    (version "7.1.1")
     (source
      (origin
        (method url-fetch)
@@ -37331,13 +37370,13 @@ implementation (which is unstable / requires nightly).")
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1ha24yclw4m74gi9p5c3d68rhrrcb7qvkgicz153p5cahck9vzbz"))))
+         "0djc3lq5xihnwhrvkc4bj0fd58sjf632yh6hfiw545x355d3x458"))))
     (build-system cargo-build-system)
     (arguments
      `(#:tests? #f  ; Tests require example directory, not included in tarball.
        #:cargo-inputs
        (("rust-memchr" ,rust-memchr-2)
-        ("rust-minimal-lexical" ,rust-minimal-lexical-0.1)
+        ("rust-minimal-lexical" ,rust-minimal-lexical-0.2)
         ("rust-version-check" ,rust-version-check-0.9))
        #:cargo-development-inputs
        (("rust-criterion" ,rust-criterion-0.3)
@@ -37548,6 +37587,30 @@ combinators library.")
     (description "This package derives custom nom parsers from structs.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-nom-locate-4
+  (package
+    (name "rust-nom-locate")
+    (version "4.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "nom_locate" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0186n5qbpiyhpas3nk8y4ynnbdghl4nx958bkq4a6a9hr8v48y9p"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-bytecount" ,rust-bytecount-0.6)
+        ("rust-memchr" ,rust-memchr-2)
+        ("rust-nom" ,rust-nom-7)
+        ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+    (home-page "https://github.com/fflorent/nom_locate")
+    (synopsis "Special input type for nom to locate tokens")
+    (description "This crate provides the @code{LocatedSpan} struct that
+encapsulates the data.")
+    (license (list license:expat))))
+
 (define-public rust-noop-proc-macro-0.3
   (package
     (name "rust-noop-proc-macro")
@@ -44339,23 +44402,30 @@ functions.")
        (("rust-predicates-core" ,rust-predicates-core-0.9)
         ("rust-treeline" ,rust-treeline-0.1))))))
 
-(define-public rust-pretty-0.5
+(define-public rust-pretty-0.11
   (package
     (name "rust-pretty")
-    (version "0.5.2")
+    (version "0.11.2")
     (source
      (origin
        (method url-fetch)
        (uri (crate-uri "pretty" version))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
-        (base32 "1lzn7d60l79vsdwcfgrh6jmk193nzwh1j36r8p9cv3n8dyghs37n"))))
+        (base32 "1282l4pa9hhamvbnd5mjrwhdgcsjy1l1lj44i0m4pczsf1cd3br9"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:skip-build? #t
-       #:cargo-inputs
-       (("rust-termcolor" ,rust-termcolor-0.3)
-        ("rust-typed-arena" ,rust-typed-arena-1))))
+     `(#:cargo-inputs
+       (("rust-arrayvec" ,rust-arrayvec-0.5)
+        ("rust-log" ,rust-log-0.4)
+        ("rust-termcolor" ,rust-termcolor-1)
+        ("rust-typed-arena" ,rust-typed-arena-2)
+        ("rust-unicode-segmentation" ,rust-unicode-segmentation-1))
+       #:cargo-development-inputs
+       (("rust-criterion" ,rust-criterion-0.3)
+        ("rust-difference" ,rust-difference-2)
+        ("rust-env-logger" ,rust-env-logger-0.9)
+        ("rust-tempfile" ,rust-tempfile-3))))
     (home-page "https://github.com/Marwes/pretty.rs")
     (synopsis "Pretty printing combinators for Rust")
     (description
@@ -44363,6 +44433,24 @@ functions.")
 particularly useful for printing structured recursive data like trees.")
     (license license:expat)))
 
+(define-public rust-pretty-0.5
+  (package
+    (inherit rust-pretty-0.11)
+    (name "rust-pretty")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (crate-uri "pretty" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32 "1lzn7d60l79vsdwcfgrh6jmk193nzwh1j36r8p9cv3n8dyghs37n"))))
+    (arguments
+     `(#:skip-build? #t
+       #:cargo-inputs
+       (("rust-termcolor" ,rust-termcolor-0.3)
+        ("rust-typed-arena" ,rust-typed-arena-1))))))
+
 (define-public rust-pretty-assertions-0.7
   (package
     (name "rust-pretty-assertions")
@@ -54582,6 +54670,30 @@ using nested parameters, similar to those used by @code{qs} for Node, and
 commonly used by Ruby on Rails via Rack.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-serde-regex-1
+  (package
+    (name "rust-serde-regex")
+    (version "1.1.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "serde_regex" version))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "1pxsnxb8c198szghk1hvzvhva36w2q5zs70hqkmdf5d89qd6y4x8"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-regex" ,rust-regex-1))
+       #:cargo-development-inputs
+       (("rust-serde-derive" ,rust-serde-derive-1)
+        ("rust-serde-json" ,rust-serde-json-1))))
+    (home-page "https://github.com/tailhook/serde-regex")
+    (synopsis "Serde wrapper to serialize regular expressions as strings")
+    (description "This package provides a serde wrapper, that can be used to
+serialize regular expressions as strings.")
+    (license (list license:expat license:asl2.0))))
+
 (define-public rust-serde-repr-0.1
   (package
     (name "rust-serde-repr")
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 93e4f8a445..9c98c923ff 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -242,6 +242,9 @@ target that libc."
         (append
          (origin-patches (package-source xgcc))
          (append (cond
+                  ((version>=? (package-version xgcc) "12.0")
+                   (search-patches "gcc-12-cross-environment-variables.patch"
+                                   "gcc-cross-gxx-include-dir.patch"))
                   ((version>=? (package-version xgcc) "10.0")
                    (search-patches "gcc-10-cross-environment-variables.patch"
                                    "gcc-cross-gxx-include-dir.patch"))
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index 617a89d954..005ec15f11 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -716,8 +716,7 @@ should only be used as part of the Guix cups-pk-helper service.")
                (search-patches "foomatic-filters-CVE-2015-8327.patch"
                                "foomatic-filters-CVE-2015-8560.patch"))))
     (build-system gnu-build-system)
-    (home-page
-     "https://wiki.linuxfoundation.org/openprinting/database/foomatic")
+    (home-page "https://openprinting.github.io/projects/02-foomatic/")
     (native-inputs
      (list perl pkg-config))
     (inputs
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 6ec6d2929f..4f2d7ef11c 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -102,6 +102,7 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages golang)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages icu4c)
@@ -178,47 +179,6 @@
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
-(define-public 4store
-  (package
-    (name "4store")
-    (version "1.1.6")
-    (source (origin
-      (method git-fetch)
-      (uri (git-reference
-             (url "https://github.com/4store/4store")
-             (commit (string-append "v" version))))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32 "1kzdfmwpzy64cgqlkcz5v4klwx99w0jk7afckyf7yqbqb4rydmpk"))
-      (patches (search-patches "4store-unset-preprocessor-directive.patch"
-                               "4store-fix-buildsystem.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list perl
-           python-2
-           autoconf
-           automake
-           gettext-minimal
-           libtool
-           `(,pcre "bin") ;for 'pcre-config'
-           pkg-config))
-    (inputs
-     (list glib
-           rasqal
-           libxml2
-           raptor2
-           readline
-           avahi
-           cyrus-sasl
-           openssl
-           `(,util-linux "lib")))
-    ;; http://www.4store.org has been down for a while now.
-    (home-page "https://github.com/4store/4store")
-    (synopsis "Clustered RDF storage and query engine")
-    (description "4store is a RDF/SPARQL store written in C, supporting
-either single machines or networked clusters.")
-    (license license:gpl3+)))
-
 (define-public ephemeralpg
   (package
     (name "ephemeralpg")
@@ -1511,9 +1471,6 @@ CSV, DB3, iXF, SQLite, MS-SQL or MySQL to PostgreSQL.")
 Most public APIs are compatible with @command{mysqlclient} and MySQLdb.")
     (license license:expat)))
 
-(define-public python2-pymysql
-  (package-with-python2 python-pymysql))
-
 (define-public qdbm
   (package
     (name "qdbm")
@@ -2776,29 +2733,20 @@ semantics.")
 (define-public libpqxx
   (package
     (name "libpqxx")
-    (version "4.0.1")
+    (version "7.7.3")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://pqxx.org/download/software/libpqxx/"
-                    name "-" version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jtv/libpqxx")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0f6wxspp6rx12fkasanb0z2g2gc8dhcfwnxagx8wwqbpg6ifsz09"))))
+                "1mrhsih5bhiin0l3c4vp22l9p7c5035m0vvqpx18c0407fkzc7hp"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("python" ,python-2)))
+    (native-inputs (list gcc-11 python-wrapper))
     (inputs (list postgresql))
-    (arguments
-     `(#:tests? #f   ; # FAIL:  1
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'fix-sed-command
-           (lambda _
-             ;; Newer sed versions error out if double brackets are not used.
-             (substitute* "configure"
-               (("\\[:space:\\]") "[[:space:]]"))
-             #t)))))
+    (arguments '(#:tests? #f))      ;tests require a running PostgreSQL server
     (synopsis "C++ connector for PostgreSQL")
     (description
      "Libpqxx is a C++ library to enable user programs to communicate with the
@@ -2862,9 +2810,6 @@ support for sqlite, mysql and postgresql.  If you already have a database, you
 can autogenerate peewee models using @code{pwiz}, a model generator.")
     (license license:expat)))
 
-(define-public python2-peewee
-  (package-with-python2 python-peewee))
-
 (define-public python-pypika-tortoise
   (package
     (name "python-pypika-tortoise")
@@ -3080,9 +3025,6 @@ development.")
 for ODBC.")
     (license (license:x11-style "file://LICENSE.TXT"))))
 
-(define-public python2-pyodbc-c
-  (package-with-python2 python-pyodbc-c))
-
 (define-public python-pyodbc
   (package
     (name "python-pyodbc")
@@ -3105,9 +3047,6 @@ for ODBC.")
 for ODBC.")
     (license (license:x11-style "file:///LICENSE.TXT"))))
 
-(define-public python2-pyodbc
-  (package-with-python2 python-pyodbc))
-
 (define-public mdbtools
   (package
     (name "mdbtools")
@@ -3215,14 +3154,30 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.")
 (define-public virtuoso-ose
   (package
     (name "virtuoso-ose")
-    (version "7.2.6")
+    (version "7.2.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/virtuoso/virtuoso/" version "/"
                            "virtuoso-opensource-" version ".tar.gz"))
        (sha256
-        (base32 "0ly7s7a3w2a2zhhi9rq9k2qlnzapqbbc1rcdqb3zqqpgg81krz9q"))))
+        (base32 "1853ln0smiilf3pni70gq6nmi9ps039cy44g6b5i9d2z1n9hnj02"))
+       (patches (search-patches "virtuoso-ose-remove-pre-built-jar-files.patch"))
+       (modules '((guix build utils)))
+       ;; This snippet removes pre-built Java archives.
+       (snippet
+        '(for-each delete-file-recursively
+                   (list "binsrc/hibernate"
+                         "binsrc/jena"
+                         "binsrc/jena2"
+                         "binsrc/jena3"
+                         "binsrc/jena4"
+                         "binsrc/rdf4j"
+                         "binsrc/sesame"
+                         "binsrc/sesame2"
+                         "binsrc/sesame3"
+                         "binsrc/sesame4"
+                         "libsrc/JDBCDriverType4")))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; Tests require a network connection.
@@ -3233,6 +3188,9 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.")
                            "--enable-static=no")
        #:phases
        (modify-phases %standard-phases
+         (replace 'bootstrap
+           (lambda _
+             (invoke "sh" "autogen.sh")))
          ;; Even with "--enable-static=no", "libvirtuoso-t.a" is left in
          ;; the build output.  The following phase removes it.
          (add-after 'install 'remove-static-libs
@@ -3242,6 +3200,8 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.")
                            (delete-file (string-append lib "/" file)))
                          '("libvirtuoso-t.a"
                            "libvirtuoso-t.la"))))))))
+    (native-inputs
+     (list autoconf automake bison flex gperf libtool))
     (inputs
      (list openssl net-tools readline zlib))
     (home-page "http://vos.openlinksw.com/owiki/wiki/VOS/")
@@ -3278,33 +3238,6 @@ local Cassandra clusters. It creates, launches and removes Cassandra clusters
 on localhost.")
     (license license:asl2.0)))
 
-(define-public python2-ccm
-  (package-with-python2 python-ccm))
-
-(define-public python2-pysqlite
-  (package
-    (name "python2-pysqlite")
-    (version "2.8.3")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (pypi-uri "pysqlite" version))
-      (sha256
-       (base32
-        "1424gwq9sil2ffmnizk60q36vydkv8rxs6m7xs987kz8cdc37lqp"))))
-    (build-system python-build-system)
-    (inputs
-     (list sqlite))
-    (arguments
-     `(#:python ,python-2 ; incompatible with Python 3
-       #:tests? #f)) ; no test target
-    (home-page "https://github.com/ghaering/pysqlite")
-    (synopsis "SQLite bindings for Python")
-    (description
-     "Pysqlite provides SQLite bindings for Python that comply to the
-Database API 2.0T.")
-    (license license:zlib)))
-
 (define-public python-sqlalchemy
   (package
     (name "python-sqlalchemy")
@@ -3343,30 +3276,6 @@ designed for efficient and high-performing database access, adapted into a
 simple and Pythonic domain language.")
     (license license:x11)))
 
-(define-public python2-sqlalchemy
-  (let ((base (package-with-python2 python-sqlalchemy)))
-    (package
-      (inherit base)
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          #~(modify-phases #$phases
-              (replace 'check
-                (lambda* (#:key tests? #:allow-other-keys)
-                  (when tests?
-                    (invoke "pytest" "-vv"
-                            ;; The memory usage tests are very expensive and run in
-                            ;; sequence; skip them.
-                            "-k"
-                            (string-append
-                             "not test_memusage.py"
-                             ;; This test fails with "AssertionError: Warnings
-                             ;; were not seen [...]".
-                             " and not test_fixture_five")))))))))
-      ;; Do not use pytest-xdist, which is broken for Python 2.
-      (native-inputs (modify-inputs (package-native-inputs base)
-                       (delete "python-pytest-xdist"))))))
-
 (define-public python-sqlalchemy-stubs
   (package
     (name "python-sqlalchemy-stubs")
@@ -3525,17 +3434,8 @@ value in database is immediately visible to other processes accessing the same
 database.  Concurrency is possible because the values are stored in separate
 files.  Hence the “database” is a directory where all files are governed by
 PickleShare.")
-    (properties `((python2-variant . ,(delay python2-pickleshare))))
     (license license:expat)))
 
-(define-public python2-pickleshare
-  (let ((pickleshare (package-with-python2
-                      (strip-python2-variant python-pickleshare))))
-    (package (inherit pickleshare)
-      (propagated-inputs (modify-inputs (package-propagated-inputs
-                                                        pickleshare)
-                           (prepend python2-pathlib2))))))
-
 (define-public python-apsw
   (package
     (name "python-apsw")
@@ -3579,9 +3479,6 @@ pysqlite it focuses on being a minimal layer over SQLite attempting just to
 translate the complete SQLite API into Python.")
     (license license:zlib)))
 
-(define-public python2-apsw
-  (package-with-python2 python-apsw))
-
 (define-public python-aiosqlite
   (package
     (name "python-aiosqlite")
@@ -3638,48 +3535,6 @@ managers for automatically closing connections.")
     (description "This package implements async database support for Python.")
     (license license:bsd-3)))
 
-(define-public python2-neo4j-driver
-  (package
-    (name "python2-neo4j-driver")
-    ;; NOTE: When upgrading to 1.5.0, please add a python3 variant.
-    (version "1.4.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "neo4j-driver" version))
-              (sha256
-               (base32
-                "011r1vh182p8mm83d8dz9rfnc3l7rf7fd00cyrbyfzi71jmc4g98"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://neo4j.com/developer/python/")
-    (synopsis "Neo4j driver code written in Python")
-    (description "This package provides the Neo4j Python driver that connects
-to the database using Neo4j's binary protocol.  It aims to be minimal, while
-being idiomatic to Python.")
-    (license license:asl2.0)))
-
-(define-public python2-py2neo
-  (package
-    (name "python2-py2neo")
-    (version "3.1.2")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "py2neo" version))
-              (sha256
-               (base32
-                "1f1q95vqcvlc3nsc33p841swnjdcjazddlq2dzi3qfnjqjrajxw1"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://py2neo.org")
-    (synopsis "Library and toolkit for working with Neo4j in Python")
-    (description "This package provides a client library and toolkit for
-working with Neo4j from within Python applications and from the command
-line.  The core library has no external dependencies and has been carefully
-designed to be easy and intuitive to use.")
-    (license license:asl2.0)))
-
 (define-public python-psycopg2
   (package
     (name "python-psycopg2")
@@ -3916,9 +3771,6 @@ for Python.  The design goals are:
 parsing code in hiredis.  It primarily speeds up parsing of multi bulk replies.")
     (license license:bsd-3)))
 
-(define-public python2-hiredis
-  (package-with-python2 python-hiredis))
-
 (define-public python-aioredis
   (package
     (name "python-aioredis")
@@ -4005,9 +3857,6 @@ reasonable substitute.")
      "This package provides a Python interface to the Redis key-value store.")
     (license license:expat)))
 
-(define-public python2-redis
-  (package-with-python2 python-redis))
-
 (define-public python-rq
   (package
     (name "python-rq")
@@ -4105,9 +3954,6 @@ is designed to have a low barrier to entry.")
   Redis protocol.")
     (license license:bsd-2)))
 
-(define-public python2-trollius-redis
-  (package-with-python2 python-trollius-redis))
-
 (define-public python-sqlparse
   (package
     (name "python-sqlparse")
@@ -4193,7 +4039,7 @@ the SQL language using a syntax that reflects the resulting query.")
 (define-public apache-arrow
   (package
     (name "apache-arrow")
-    (version "7.0.0")
+    (version "8.0.0")
     (source
      (origin
        (method git-fetch)
@@ -4203,7 +4049,7 @@ the SQL language using a syntax that reflects the resulting query.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "19xx6mlddca79q6d3wga574m4y32ixmxx2rmk6j3f22i5c37mjzw"))))
+         "1gwiflk72pq1krc0sjzabypmh7slfyf7ak71fiypy3xgzw8a777c"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 03a1778a36..5ff09393b9 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -36,10 +36,13 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages wget))
+  #:use-module (gnu packages wget)
+  #:use-module (srfi srfi-26))
 
 (define-public debian-archive-keyring
   (package
@@ -418,6 +421,152 @@ other apt sources typically provided by open source developers.")
 handling the installation and removal of Debian software packages.")
     (license license:gpl2+)))
 
+(define-public pbuilder
+  (package
+    (name "pbuilder")
+    (version "0.231")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://salsa.debian.org/pbuilder-team/pbuilder.git/")
+               (commit version)))
+        (file-name (git-file-name name version))
+        (sha256
+         (base32 "0z6f1fgcrkfql9ayc3d0nxra2y6cn91xd5lvr0hd8gdlp9xdvxbc"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+       #:modules `((guix build gnu-build-system)
+                   (guix build utils)
+                   (srfi srfi-26))
+       #:phases
+       #~(modify-phases %standard-phases
+           (delete 'configure)          ; no configure script
+           (add-after 'unpack 'patch-source
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+
+               ;; Documentation requires tldp-one-page.xsl
+               (substitute* "Makefile"
+                 ((".*-C Documentation.*") ""))
+
+               ;; Don't create #$output/var/cache/pbuilder/...
+               (substitute* '("Makefile"
+                              "pbuildd/Makefile")
+                 ((".*/var/cache/pbuilder.*") ""))
+
+               ;; Find the correct fallback location.
+               (substitute* '("pbuilder-checkparams"
+                              "pbuilder-loadconfig"
+                              "pbuilder-satisfydepends-apt"
+                              "pbuilder-satisfydepends-aptitude"
+                              "pbuilder-satisfydepends-classic"
+                              "t/test_pbuilder-satisfydepends-classic")
+                 (("\\$PBUILDER_ROOT(/usr)?") #$output))
+
+               ;; Some hardcoded paths
+               (substitute* '("debuild-pbuilder"
+                              "pbuilder"
+                              "pbuilder-buildpackage"
+                              "pbuilderrc"
+                              "pdebuild"
+                              "pdebuild-checkparams"
+                              "pdebuild-internal")
+                 (("/usr/lib/pbuilder")
+                  (string-append #$output "/lib/pbuilder")))
+               (substitute* "pbuildd/buildd-config.sh"
+                 (("/usr/share/doc/pbuilder")
+                  (string-append #$output "/share/doc/pbuilder")))
+               (substitute* "pbuilder-unshare-wrapper"
+                 (("/(s)?bin/ifconfig") "ifconfig")
+                 (("/(s)?bin/ip") (search-input-file inputs "/sbin/ip")))
+               (substitute* "Documentation/Makefile"
+                 (("/usr") ""))
+
+               ;; Ensure PATH works both in Guix and within the Debian chroot.
+               (substitute* "pbuilderrc"
+                 (("PATH=\"/usr/sbin:/usr/bin:/sbin:/bin")
+                  "PATH=\"$PATH:/usr/sbin:/usr/bin:/sbin:/bin"))))
+           (add-after 'install 'create-etc-pbuilderrc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (with-output-to-file (string-append #$output "/etc/pbuilderrc")
+                 (lambda ()
+                   (format #t "# A couple of presets to make this work more smoothly.~@
+                           MIRRORSITE=\"http://deb.debian.org/debian\"~@
+                           if [ -r /run/setuid-programs/sudo ]; then~@
+                               PBUILDERROOTCMD=\"/run/setuid-programs/sudo -E\"~@
+                           fi~@
+                           PBUILDERSATISFYDEPENDSCMD=\"~a/lib/pbuilder/pbuilder-satisfydepends-apt\"~%"
+                           #$output)))))
+           (add-after 'install 'install-manpages
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((man (string-append #$output "/share/man/")))
+                 (install-file "debuild-pbuilder.1" (string-append man "man1"))
+                 (install-file "pdebuild.1" (string-append man "man1"))
+                 (install-file "pbuilder.8" (string-append man "man8"))
+                 (install-file "pbuilderrc.5" (string-append man "man5")))))
+           (add-after 'install 'wrap-programs
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (for-each
+                 (lambda (file)
+                   (wrap-script file
+                    `("PATH" ":" prefix
+                      ,(map (compose dirname (cut search-input-file inputs <>))
+                            (list "/bin/cut"
+                                  "/bin/dpkg"
+                                  "/bin/grep"
+                                  "/bin/perl"
+                                  "/bin/sed"
+                                  "/bin/which"
+                                  "/sbin/debootstrap")))))
+                 (cons*
+                   (string-append #$output "/bin/pdebuild")
+                   (string-append #$output "/sbin/pbuilder")
+                   (find-files (string-append #$output "/lib/pbuilder"))))))
+           ;; Move the 'check phase to after 'install.
+           (delete 'check)
+           (add-after 'validate-runpath 'check
+             (assoc-ref %standard-phases 'check)))
+         #:make-flags
+         ;; No PREFIX, use DESTDIR instead.
+         #~(list (string-append "DESTDIR=" #$output)
+                 (string-append "SYSCONFDIR=" #$output "/etc")
+                 (string-append "BINDIR=" #$output "/bin")
+                 (string-append "PKGLIBDIR=" #$output "/lib/pbuilder")
+                 (string-append "SBINDIR=" #$output "/sbin")
+                 (string-append "PKGDATADIR=" #$output "/share/pbuilder")
+                 (string-append "EXAMPLEDIR=" #$output "/share/doc/pbuilder/examples")
+                 "PBUILDDDIR=/share/doc/pbuilder/examples/pbuildd/")))
+    (inputs
+     (list dpkg
+           debootstrap
+           grep
+           guile-3.0            ; for wrap-script
+           iproute
+           perl
+           which))
+    (native-inputs
+     (list man-db
+           util-linux))
+    (home-page "https://pbuilder-team.pages.debian.net/pbuilder/")
+    (synopsis "Personal package builder for Debian packages")
+    (description
+     "@code{pbuilder} is a personal package builder for Debian packages.
+@itemize
+@item@code{pbuilder} constructs a chroot system, and builds a package inside the
+chroot.  It is an ideal system to use to check that a package has correct
+build-dependencies.  It uses @code{apt} extensively, and a local mirror, or a
+fast connection to a Debian mirror is ideal, but not necessary.
+@item@code{pbuilder create} uses debootstrap to create a chroot image.
+@item@code{pbuilder update} updates the image to the current state of
+testing/unstable/whatever.
+@item@code{pbuilder build} takes a @code{*.dsc} file and builds a binary in the
+chroot image.
+@item@code{pdebuild} is a wrapper for Debian Developers, to allow running
+@code{pbuilder} just like @code{debuild}, as a normal user.
+@end itemize")
+    (license license:gpl2+)))
+
 (define-public reprepro
   (package
     (name "reprepro")
diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm
index c7c1963726..dac61611d5 100644
--- a/gnu/packages/dico.scm
+++ b/gnu/packages/dico.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,12 +42,12 @@
     (name "dico")
     (version "2.11")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnu/dico/dico-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "0nic4mggc0yhms130k7x4qp5k9c42fwg6n8hmk5cmynh6gi9h7xc"))))
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/dico/dico-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0nic4mggc0yhms130k7x4qp5k9c42fwg6n8hmk5cmynh6gi9h7xc"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output
@@ -59,23 +60,22 @@
                       ;; Guile is too talkative, which disturbs the test
                       ;; infrastructure.  Gag it.
                       (setenv "GUILE_AUTO_COMPILE" "0")
-                      (setenv "GUILE_WARN_DEPRECATED" "no")
-                      #t))
+                      (setenv "GUILE_WARN_DEPRECATED" "no")))
                   (replace 'check
                     (lambda _
                       ;; Test '71: append + dooffs + env' fails if $V is not 2.
                       (invoke "make" "check" "V=2"))))))
     (native-inputs (list groff))
     (inputs
-     `(("m4" ,m4)                                 ;used at run time
-       ("pcre" ,pcre)
-       ("python" ,python-2)
-       ("guile" ,guile-2.2)
-       ("gsasl" ,gsasl)
-       ("readline" ,readline)
-       ("zlib" ,zlib)
-       ("wordnet" ,wordnet)
-       ("libltdl" ,libltdl)))
+     (list m4                           ;used at run time
+           pcre
+           python-wrapper
+           guile-2.2
+           gsasl
+           readline
+           zlib
+           wordnet
+           libltdl))
     (home-page "https://www.gnu.org/software/dico/")
     (synopsis "Implementation of DICT server (RFC 2229)")
     (description
@@ -84,4 +84,4 @@ RFC 2229 (DICT Server).  It is able to access any database available,
 regardless of format, thanks to its modular structure.  New modules may be
 written in C, Guile or Python.  Dico also includes a command-line client,
 which may be used to query remote dictionary databases.")
-   (license gpl3+)))
+    (license gpl3+)))
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index bd091fedfc..16e3b2a481 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -74,7 +74,7 @@
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "213")
+    (version "214")
     (source
      (origin
        (method git-fetch)
@@ -83,7 +83,7 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "075zrraj7pibwgi731pa506pkq5i06mpilqa03w3dd548b1jc9py"))
+        (base32 "05vzvs8yn963wzxmnqifj0zsa9scxcq3iqrq9msm0vqznb1xgp7q"))
        (patches
         (search-patches "diffoscope-fix-llvm-test.patch"))))
     (build-system python-build-system)
@@ -111,13 +111,6 @@
                          (string-append "['" (which "stat") "',"))
                         (("\\['getfacl',")
                          (string-append "['" (which "getfacl") "',")))))
-                  (add-after 'unpack 'xb-tool-external-tool
-                    ;; Fixed upstream, remove this phase when updating to
-                    ;; diffoscope 213
-                    (lambda _
-                      (substitute* "diffoscope/external_tools.py"
-                        ((".debian.: .libxmlb-dev.")
-                         "\"debian\": \"libxmlb-dev\", \"guix\": \"libxmlb\""))))
                   (add-after 'build 'build-man-page
                     (lambda* (#:key (make-flags '()) #:allow-other-keys)
                       (apply invoke "make" "-C" "doc" make-flags)))
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 80aad1af5d..d567f7d3fe 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,7 +42,9 @@
   #:use-module (guix utils)
   #:use-module (guix gexp)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -252,70 +255,86 @@ experience for your users, your family and yourself")
     (license license:gpl3+)))
 
 (define-public lightdm
-  (package
-    (name "lightdm")
-    (version "1.30.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/CanonicalLtd/lightdm/releases/download/"
-                    version "/lightdm-" version ".tar.xz"))
-              (sha256
-               (base32
-                "158zb2d0v1309a8v19hh32y4yj3v6yg4yg6m0l7v59d3a2b7f651"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:parallel-tests? #f ; fails when run in parallel
-       #:configure-flags
-       (list "--localstatedir=/var")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda _
-             (substitute* "src/shared-data-manager.c"
-               (("/bin/rm") (which "rm")))
-             (substitute* '("data/users.conf"
-                            "common/user-list.c")
-               (("/bin/false") (which "false"))
-               (("/usr/sbin/nologin") (which "nologin")))
-             (substitute* "src/seat.c"
-               (("/bin/sh") (which "sh")))
-             #t))
-         (add-before 'check 'pre-check
-           ;; Run test-suite under a dbus session.
-           (lambda* (#:key inputs #:allow-other-keys)
-             (wrap-program "tests/src/test-python-greeter"
-               `("GUIX_PYTHONPATH"      ":" prefix (,(getenv "GUIX_PYTHONPATH")))
-               `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
+  ;; Use the latest commit, as the current official release doesn't build with
+  ;; glib >= 2.33.
+  (let ((revision "0")
+        (commit "b7fc3214cbaed09c73e963847443a0d648dfd896"))
+    (package
+      (name "lightdm")
+      (version (git-version "1.30.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/canonical/lightdm")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0378jacazpmdgdjkiilk3mbikz3iysb4s9q40hg9zv4yngwsix1m"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:parallel-tests? #f           ; fails when run in parallel
+         #:configure-flags
+         (list "--localstatedir=/var"
+               ;; Otherwise the test suite fails on such a warning.
+               "CFLAGS=-Wno-error=missing-prototypes")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/shared-data-manager.c"
+                 (("/bin/rm")
+                  (search-input-file inputs "bin/rm")))
+               (substitute* '("data/users.conf"
+                              "common/user-list.c")
+                 (("/bin/false")
+                  (search-input-file inputs "bin/false"))
+                 (("/usr/sbin/nologin")
+                  (search-input-file inputs "sbin/nologin")))
+               (substitute* "src/seat.c"
+                 (("/bin/sh")
+                  (search-input-file inputs "bin/sh")))))
+           (add-before 'check 'pre-check
+             ;; Run test-suite under a dbus session.
+             (lambda _
+               (wrap-program "tests/src/test-python-greeter"
+                 `("GUIX_PYTHONPATH"      ":" prefix (,(getenv "GUIX_PYTHONPATH")))
+                 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))
 
-             ;; Avoid printing locale warnings, which trip up the text
-             ;; matching tests.
-             (unsetenv "LC_ALL")
-             #t)))))
-    (inputs
-     (list audit
-           linux-pam
-           shadow ;for sbin/nologin
-           libgcrypt
-           libxcb))
-    (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("itstool" ,itstool)
-       ("intltool" ,intltool)
-       ("vala" ,vala)                   ;for Vala bindings
-       ;; For tests
-       ("dbus" ,dbus)
-       ("python" ,python-2)
-       ("python-pygobject" ,python2-pygobject)))
-    ;; Required by liblightdm-gobject-1.pc.
-    (propagated-inputs
-     (list glib libx11 libxklavier))
-    (home-page "https://www.freedesktop.org/wiki/Software/LightDM/")
-    (synopsis "Lightweight display manager")
-    (description "The Light Display Manager (LightDM) is a cross-desktop
+               ;; Avoid printing locale warnings, which trip up the text
+               ;; matching tests.
+               (unsetenv "LC_ALL"))))))
+      (inputs
+       (list audit
+             coreutils                  ;for cross-compilation
+             linux-pam
+             shadow                     ;for sbin/nologin
+             libgcrypt
+             libxcb))
+      (native-inputs
+       (list autoconf
+             automake
+             gobject-introspection
+             gtk-doc
+             pkg-config
+             itstool
+             intltool
+             libtool
+             vala                       ;for Vala bindings
+             ;; For tests
+             dbus
+             ;; python-wrapper
+             ;; python-pygobject
+             which
+             yelp-tools))
+      ;; Required by liblightdm-gobject-1.pc.
+      (propagated-inputs
+       (list glib libx11 libxklavier))
+      (home-page "https://www.freedesktop.org/wiki/Software/LightDM/")
+      (synopsis "Lightweight display manager")
+      (description "The Light Display Manager (LightDM) is a cross-desktop
 display manager which supports different greeters.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public lightdm-gtk-greeter
   (package
diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index 07c77f318e..b85193ccdb 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
@@ -149,31 +151,15 @@ a continuous layout.")
        (sha256
         (base32 "0c595yziz81c9izf9s5sskd00qmgz2n1hp2vdcgg0dx81g3xfidb"))))
     (build-system gnu-build-system)
-    (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)
-       ("python2" ,python-2)
-       ("python2-nose" ,python2-nose)))
+    (arguments (list #:tests? #f))      ;requires Python 2
+    (native-inputs (list gettext-minimal pkg-config))
     (inputs
-     `(("djvulibre" ,djvulibre)
-       ("exiv2" ,exiv2)
-       ("graphicsmagick" ,graphicsmagick)
-       ("poppler" ,poppler)
-       ("poppler-data" ,poppler-data)
-       ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
-    (arguments
-     `(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             (substitute* "tests/test-xmp-broken.py"
-               ;; Error message changed in recent versions of XML parser
-               (("XML parsing failure")
-                "Error in XMLValidator"))))
-         (add-before 'check 'set-home-for-tests
-           (lambda _
-             (setenv "HOME" "/tmp"))))))
+     (list djvulibre
+           exiv2
+           graphicsmagick
+           poppler
+           poppler-data
+           `(,util-linux "lib")))       ;for libuuid
     (synopsis "PDF to DjVu converter")
     (description
      "@code{pdf2djvu} creates DjVu files from PDF files.
@@ -290,193 +276,158 @@ and white.")
     (home-page "https://sourceforge.net/projects/minidjvu/")
     (license license:gpl2)))
 
-(define-public djvusmooth
-  (package
-    (name "djvusmooth")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jwilk/djvusmooth/releases/download/" version
-             "/djvusmooth-" version ".tar.gz"))
-       (sha256
-        (base32 "0z403cklvxzz0qaczgv83ax0nknrd9h8micp04j9kjfdxk2sgval"))))
-    (build-system python-build-system)
-    (inputs
-     (list djvulibre python2-djvulibre python2-subprocess32
-           python2-wxpython))
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "lib/djvused.py"
-               (("djvused_path = 'djvused'")
-                (string-append "djvused_path = '"
-                               (assoc-ref inputs "djvulibre")
-                               "/bin/djvused'"))))))))
-    (synopsis "Graphical editor for DjVu documents")
-    (description
-     "@code{djvusmooth} is a graphical editor for DjVu_ documents.
-It is able to:
-@itemize
-@item edit document metadata,
-@item edit document outline (bookmarks),
-@item add, remove or edit hyperlinks,
-@item correct occasional errors in the hidden text layer.
-@end itemize\n")
-    (home-page "https://jwilk.net/software/djvusmooth")
-    (license license:gpl2)))
-
 (define-public didjvu
-  (package
-    (name "didjvu")
-    (version "0.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jwilk/didjvu/releases/download/" version
-             "/didjvu-" version ".tar.gz"))
-       (sha256
-        (base32 "0xyrnk8d2khi7q1zr28gjkjq6frz4mkb5jdl8821yzf12k7c8pbv"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list python2-nose))
-    (inputs
-     `(("djvulibre" ,djvulibre)
-       ("minidjvu" ,minidjvu)
-       ("python" ,python-2)
-       ("python2-gamera" ,python2-gamera)
-       ("python2-pillow" ,python2-pillow)))
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  ((guix build python-build-system) #:prefix python:)
-                  (guix build utils))
-       #:imported-modules (,@%gnu-build-system-modules
-                           (guix build python-build-system))
-       #:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'check 'disable-failing-test
-           (lambda _
-             (substitute* "tests/test_ipc.py"
-               ;; test_wait_signal gets stuck forever
-               (("yield self\\._test_signal, name")
-                "return True")
-               ;; test_path fails to find a file it should have created
-               (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
-                "return True"))
-             (substitute* "tests/test_timestamp.py"
-               ;; test_timezones fails with:
-               ;;   '2009-12-18T21:25:14Z' != '2009-12-18T22:25:14+01:00'
-               (("@fork_isolation")
-                "return True"))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "make"
-                       "DESTDIR="
-                       (string-append "PREFIX=" out)
-                       "install"))))
-         (add-after 'install 'wrap-python
-           (assoc-ref python:%standard-phases 'wrap))
-         (add-after 'wrap-python 'wrap-path
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (djvulibre (assoc-ref inputs "djvulibre")))
-               (wrap-program (string-append out "/bin/didjvu")
-                 `("PATH" ":" prefix (,(string-append djvulibre "/bin"))))))))))
-    (synopsis "DjVu encoder with foreground/background separation")
-    (description
-     "@code{didjvu} uses the @code{Gamera} framework to separate the foreground
+  (let ((revision "0")
+        (commit "c792d61e85fbe5b6e678bc7d686b0208717c587b"))
+    (package
+      (name "didjvu")
+      (version (git-version "0.9" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/FriedrichFroebel/didjvu")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "09lwfwirmfl93062i2rvdcrgwp9fj95ny07059bxq7dl6z0z35qj"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:modules ((guix build gnu-build-system)
+                    ((guix build python-build-system) #:prefix python:)
+                    (guix build utils))
+         #:imported-modules (,@%gnu-build-system-modules
+                             (guix build python-build-system))
+         #:test-target "test"
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-before 'check 'disable-failing-test
+             (lambda _
+               (substitute* "tests/test_ipc.py"
+                 ;; test_wait_signal gets stuck forever
+                 (("yield self\\._test_signal, name")
+                  "return True")
+                 ;; test_path fails to find a file it should have created
+                 (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
+                  "return True"))
+               (substitute* "tests/test_timestamp.py"
+                 ;; test_timezones fails with:
+                 ;;   '2009-12-18T21:25:14Z' != '2009-12-18T22:25:14+01:00'
+                 (("@fork_isolation")
+                  "return True"))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (invoke "make"
+                         "DESTDIR="
+                         (string-append "PREFIX=" out)
+                         "install"))))
+           (add-after 'install 'wrap-python
+             (assoc-ref python:%standard-phases 'wrap))
+           (add-after 'wrap-python 'wrap-path
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (djvulibre (assoc-ref inputs "djvulibre")))
+                 (wrap-program (string-append out "/bin/didjvu")
+                   `("PATH" ":" prefix (,(string-append djvulibre "/bin"))))))))))
+      (native-inputs (list python-nose))
+      (inputs
+       (list djvulibre
+             minidjvu
+             python-gamera
+             python-pillow
+             python-wrapper))
+      (synopsis "DjVu encoder with foreground/background separation")
+      (description
+       "@code{didjvu} uses the @code{Gamera} framework to separate the foreground
 and background layers of images, which can then be encoded into a DjVu file.")
-    (home-page "https://jwilk.net/software/didjvu")
-    (license license:gpl2)))
+      (home-page "https://jwilk.net/software/didjvu")
+      (license license:gpl2))))
 
 (define-public ocrodjvu
-  (package
-    (name "ocrodjvu")
-    (version "0.12")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/jwilk/ocrodjvu/releases/download/" version
-             "/ocrodjvu-" version ".tar.xz"))
-       (sha256
-        (base32 "09w9rqr7z2jd5kwp178zz2yrsc82mxs7gksipg92znxzgzhmw2ng"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list libxml2 python2-nose python2-pillow))
-    (inputs
-     `(("djvulibre" ,djvulibre)
-       ("ocrad" ,ocrad)
-       ("python" ,python-2)
-       ("python2-djvulibre" ,python2-djvulibre)
-       ("python2-html5lib" ,python2-html5lib)
-       ("python2-lxml" ,python2-lxml)
-       ("python2-pyicu" ,python2-pyicu)
-       ("python2-subprocess32" ,python2-subprocess32)
-       ("tesseract-ocr" ,tesseract-ocr)))
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  ((guix build python-build-system) #:prefix python:)
-                  (guix build utils))
-       #:imported-modules (,@%gnu-build-system-modules
-                           (guix build python-build-system))
-       #:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (add-before 'check 'disable-failing-test
-           (lambda _
-             (substitute* "tests/test_ipc.py"
-               ;; test_wait_signal gets stuck forever
-               (("yield self\\._test_signal, name")
-                "return True")
-               ;; test_path fails to find a file it should have created
-               (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
-                "return True"))
-             ;; Disable tests with tesseract. They can't work without
-             ;; the language files that must downloaded by the final user
-             ;; as they are not packaged in Guix.
-             (substitute* "tests/ocrodjvu/test.py"
-               (("engines = stdout\\.getvalue\\(\\)\\.splitlines\\(\\)")
-                "engines = ['ocrad']"))
-             (substitute* "tests/ocrodjvu/test_integration.py"
-               (("engines = 'tesseract', 'cuneiform', 'gocr', 'ocrad'")
-                "engines = 'ocrad'"))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (invoke "make"
-                       "DESTDIR="
-                       (string-append "PREFIX=" out)
-                       "install"))))
-         (add-after 'install 'wrap-python
-           (assoc-ref python:%standard-phases 'wrap))
-         (add-after 'wrap-python 'wrap-path
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (djvulibre (assoc-ref inputs "djvulibre"))
-                   (ocrad (assoc-ref inputs "ocrad"))
-                   (tesseract (assoc-ref inputs "tesseract-ocr")))
-               (for-each (lambda (file)
-                           (wrap-program (string-append out "/bin/" file)
-                             `("PATH" ":" prefix
-                               (,(string-append djvulibre "/bin:"
-                                                ocrad "/bin:"
-                                                tesseract "/bin")))))
-                         '("djvu2hocr"
-                           "hocr2djvused"
-                           "ocrodjvu"))))))))
-    (synopsis "Program to perform OCR on DjVu files")
-    (description
-     "@code{ocrodjvu} is a wrapper for OCR systems, that allows you to perform
+  (let ((revision "0")
+        (commit "0dd3364462fc77d5674b4457fcc8230835323c30"))
+    (package
+      (name "ocrodjvu")
+      (version (git-version "0.12" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      ;; Use the following fork repository, as upstream
+                      ;; doesn't seem too concerned with Python 3
+                      ;; compatibility.
+                      (url "https://github.com/rmast/ocrodjvu")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0x64hg9ysrk8sismxb4jgk0sq7r9j90v2i9765xhmxpiy6f0lpni"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       (list libxml2 python-nose python-pillow))
+      (inputs
+       (list djvulibre
+             ocrad
+             python-djvulibre
+             python-future
+             python-html5lib
+             python-lxml
+             python-pyicu
+             python-regex
+             python-wrapper
+             tesseract-ocr))
+      (arguments
+       (list
+        #:modules '((guix build gnu-build-system)
+                    ((guix build python-build-system) #:prefix python:)
+                    (guix build utils))
+        #:imported-modules `(,@%gnu-build-system-modules
+                             (guix build python-build-system))
+        #:test-target "test"
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (add-before 'check 'disable-failing-test
+              (lambda _
+                (substitute* "tests/test_ipc.py"
+                  ;; test_wait_signal gets stuck forever
+                  (("yield self\\._test_signal, name")
+                   "return True")
+                  ;; test_path fails to find a file it should have created
+                  (("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
+                   "return True"))
+                ;; Disable tests with tesseract. They can't work without
+                ;; the language files that must downloaded by the final user
+                ;; as they are not packaged in Guix.
+                (substitute* "tests/ocrodjvu/test.py"
+                  (("engines = stdout\\.getvalue\\(\\)\\.splitlines\\(\\)")
+                   "engines = ['ocrad']"))
+                (substitute* "tests/ocrodjvu/test_integration.py"
+                  (("engines = 'tesseract', 'cuneiform', 'gocr', 'ocrad'")
+                   "engines = 'ocrad'"))))
+            (replace 'install
+              (lambda _
+                (invoke "make" "install"
+                        "DESTDIR=" (string-append "PREFIX=" #$output))))
+            (add-after 'install 'wrap-python
+              (assoc-ref python:%standard-phases 'wrap))
+            (add-after 'wrap-python 'wrap-path
+              (lambda* (#:key outputs #:allow-other-keys)
+                (for-each (lambda (file)
+                            (wrap-program (search-input-file outputs file)
+                              `("PATH" ":" prefix
+                                (,(string-append
+                                   #$(this-package-input "djvulibre") "/bin:"
+                                   #$(this-package-input "ocrad") "/bin:"
+                                   #$(this-package-input "tesseract-ocr")
+                                   "/bin")))))
+                          '("bin/djvu2hocr"
+                            "bin/hocr2djvused"
+                            "bin/ocrodjvu")))))))
+      (synopsis "Program to perform OCR on DjVu files")
+      (description
+       "@code{ocrodjvu} is a wrapper for OCR systems, that allows you to perform
 OCR on DjVu files.")
-    (home-page "https://jwilk.net/software/ocrodjvu")
-    (license license:gpl2)))
+      (home-page "https://jwilk.net/software/ocrodjvu")
+      (license license:gpl2))))
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 213c8f717b..3b9c01c786 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -445,109 +445,6 @@ specialized device.")
     (home-page "https://bipede.fr/contrib/")
     (license license:gpl3)))
 
-(define-public childsplay
-  (package
-    (name "childsplay")
-    (version "3.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://sourceforge/schoolsplay/"
-                    "childsplay-" version ".tgz"))
-              (sha256
-               (base32
-                "0z7yp2swjnbz51vn2zyfnjn40jq38l5mbh15yafmx1z3vn2z1m77"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'unbundle-dejavu-font
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((dejavu-dir
-                     (string-append (assoc-ref inputs "font-dejavu")
-                                    "/share/fonts/truetype"))
-                    (dejavu-font
-                     (string-append dejavu-dir
-                                    "/DejaVuSansCondensed-Bold.ttf")))
-               (substitute* "SPConstants.py"
-                 (("^(TTF(BOLD)? = ).*" _ prefix)
-                  (string-append prefix "'" dejavu-font "'\n")))
-               (for-each (lambda (f) (delete-file f))
-                         (find-files "lib/SPData" "DejaVu"))
-               #t)))
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (pixmaps (string-append out "/share/pixmaps"))
-                    (share (string-append out "/share/childsplay"))
-                    (doc (string-append out "/share/doc/" ,name "-",version)))
-               ;; Install icon.
-               (install-file "lib/SPData/themes/childsplay/logo_cp.svg" pixmaps)
-               ;; Install data.
-               (mkdir-p share)
-               (for-each (lambda (f)
-                           (copy-recursively f (string-append share "/" f)))
-                         '("alphabet-sounds" "lib" "locale" "SPWidgets"))
-               (for-each (lambda (f) (install-file f share))
-                         (find-files "." "\\.(py|dev|db)$"))
-               ;; Install documentation.
-               (mkdir-p doc)
-               (copy-recursively "docs" doc)
-               #t)))
-         (add-after 'install 'create-executable
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             (let* ((python (search-input-file inputs "/bin/python"))
-                    (out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (executable (string-append bin "/childsplay")))
-               (mkdir-p bin)
-               (call-with-output-file executable
-                 (lambda (file)
-                   (format file
-                           "~a ~a"
-                           python
-                           (string-append out "/share/childsplay/childsplay.py"))))
-               (chmod executable #o555)
-               #t)))
-         (add-after 'install 'create-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (applications (string-append out "/share/applications")))
-               (mkdir-p applications)
-               (call-with-output-file
-                   (string-append applications "/childsplay.desktop")
-                 (lambda (file)
-                   (format file
-                           "[Desktop Entry]~@
-                            Name=Childsplay~@
-                            Comment=Suite of educational games for young children~@
-                            Comment[ca]=Conjunt de jocs educatius per a xiquets~@
-                            Comment[es]=Conjunto de juegos educativos para niños~@
-                            Comment[de]=Sammlung mit lehrreichen Spielen für kleine Kinder~@
-                            Exec=~a/bin/childsplay~@
-                            Terminal=false~@
-                            Icon=logo_cp.svg~@
-                            Type=Application~@
-                            Categories=Application;Game;Education;KidsGame;~@
-                            Keywords=suite;children;games;young;educational;~%"
-                           out)))
-               #t))))))
-    (inputs
-     `(("font-dejavu" ,font-dejavu)
-       ("pygame" ,python2-pygame)
-       ("sqlalchemy" ,python2-sqlalchemy)))
-    (synopsis "Suite of educational games for young children")
-    (description "Childsplay is a collection of educational activities
-for young children.  Childsplay can be used at home, kindergartens and
-pre-schools.  Childsplay is a fun and safe way to let young children
-use the computer and at the same time teach them a little math,
-letters of the alphabet, spelling, eye-hand coordination, etc.")
-    (home-page "http://www.schoolsplay.org")
-    (license license:gpl3+)))
-
 (define-public openboard
   ;; The last release builds from qtwebkit, which is planned for removal in
   ;; Guix, so use the latest commit of the 1.7-dev branch, which builds with
@@ -679,106 +576,6 @@ used both with interactive whiteboards or in a dual-screen setup with
 a pen-tablet display and a beamer.")
       (license license:gpl3))))
 
-(define-public omnitux
-  (package
-    (name "omnitux")
-    (version "1.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://sourceforge/omnitux/omnitux/"
-                           "v" version "/omnitux-" version ".tar.bz2"))
-       (sha256
-        (base32 "1wmmmbzmxd0blhn00d4g91xwavnab143a31ca3i8hrqgzh6qz9w6"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Remove pre-compiled .pyc files from source.
-           (for-each delete-file (find-files "bin" "\\.pyc$"))
-           #t))))
-    (build-system python-build-system)
-    (inputs
-     (list python2-pygame python2-pygtk))
-    (arguments
-     `(#:tests? #f                      ;no test
-       #:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'build)                ;no setup.py
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (share (string-append out "/share"))
-                    (data (string-append share "/omnitux")))
-               ;; Install documentation.
-               (let ((doc (string-append share "/doc/" ,name "-" ,version)))
-                 (for-each (lambda (f) (install-file f doc))
-                           '("LICENSE.txt" "README.txt")))
-               ;; Install data.
-               (install-file "omnitux.sh" data)
-               (for-each (lambda (d)
-                           (copy-recursively d (string-append data "/" d)))
-                         '("bin" "data"))
-               ;; Install the launcher.
-               (let* ((bin (string-append out "/bin"))
-                      (script (string-append bin "/omnitux"))
-                      (bash (search-input-file %build-inputs "/bin/bash"))
-                      (python (search-input-file %build-inputs
-                                                 "/bin/python2")))
-                 (mkdir-p bin)
-                 (with-output-to-file script
-                   (lambda ()
-                     (format #t "#!~a~%" bash)
-                     (format #t
-                             "cd ~a; ~a menu.py~%"
-                             (string-append data "/bin")
-                             python)))
-                 (chmod script #o755))
-               ;; Install icon and desktop file.
-               (let ((pixmaps (string-append share "/pixmaps")))
-                 (install-file "data/default/icons/Omnitux_logo.svg" pixmaps))
-               (let ((apps (string-append out "/share/applications")))
-                 (mkdir-p apps)
-                 (with-output-to-file (string-append apps "/omnitux.desktop")
-                   (lambda _
-                     (format #t
-                             "[Desktop Entry]~@
-                              Name=Omnitux~@
-                              GenericName=Omnitux
-                              Comment=An educational game based on multimedia elements.~@
-                              Comment[fr]=Un jeu ludo-éducatif basé sur des éléments multimédias.~@
-                              Exec=~a/bin/omnitux~@
-                              Type=Application~@
-                              Categories=Game;Education;~@
-                              Terminal=false~@
-                              Icon=Omnitux_logo.svg~@"
-                             out))))
-               #t))))))
-    (home-page "http://omnitux.sourceforge.net/")
-    (synopsis "Educational activities based on multimedia elements")
-    (description "The project aims to provide various educational
-activities around multimedia elements (images, sounds, texts).  Types
-of activities include:
-@itemize
-@item associations,
-@item items to place on a map or a schema,
-@item counting activities,
-@item puzzles,
-@item card faces to remember,
-@item find differences between two pictures,
-@item ...
-@end itemize
-
-Activities are available in English, French, German, Polish,
-Portuguese, Spanish and Italian.")
-    ;; Project's license is GPL3+, but multimedia elements are
-    ;; released under various licenses.
-    (license (list license:gpl3+
-                   license:gpl2+
-                   license:cc-by-sa2.0
-                   license:cc-by-sa3.0
-                   license:public-domain))))
-
 (define-public fet
   (package
     (name "fet")
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 173071102e..22d723c879 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -1,6 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
@@ -891,57 +891,63 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
         (base32 "0cxyvp2aav27znc7mf6c83q5pddpdniaqkrxn1r8dbgr540qmnpn"))))
     (build-system emacs-build-system)
     (arguments
-     `(#:emacs ,emacs-no-x             ;module support is required
-       #:tests? #t
-       #:test-command '("make" "test")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'build-info-manual
-           (lambda _
-             (invoke "make" "info")
-             ;; Copy info files to the lisp directory, which acts as
-             ;; the root of the project for the emacs-build-system.
-             (for-each (lambda (f)
-                         (install-file f "lisp"))
-                       (find-files "Documentation" "\\.info$"))
-             (chdir "lisp")))
-         (add-after 'build-info-manual 'set-magit-version
-           (lambda _
-             (make-file-writable "magit.el")
-             (emacs-substitute-variables "magit.el"
-               ("magit-version" ,version))))
-         (add-after 'set-magit-version 'patch-exec-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((perl (assoc-ref inputs "perl")))
-               (make-file-writable "magit-sequence.el")
-               (emacs-substitute-variables "magit-sequence.el"
-                 ("magit-perl-executable" (string-append perl "/bin/perl"))))))
-         (add-before 'check 'configure-git
-           (lambda _
-             ;; Otherwise some tests fail with error "unable to auto-detect
-             ;; email address".
-             (setenv "HOME" (getcwd))
-             (invoke "git" "config" "--global" "user.name" "toto")
-             (invoke "git" "config" "--global" "user.email"
-                     "toto@toto.com")))
-         (add-after 'configure-git 'disable-tramp-test
-           (lambda _
-             ;; There is an issue causing TRAMP to fail in the build
-             ;; environment.  Setting the tramp-remote-shell parameter of
-             ;; the sudo-method to the file name of the shell didn't help.
-             (chdir "..")
-             (substitute* "t/magit-tests.el"
-               (("^\\(ert-deftest magit-toplevel:tramp.*" all)
-                (string-append all "  (skip-unless nil)")))))
-         (add-before 'install 'enter-lisp-directory
-           (lambda _
-             (chdir "lisp"))))))
+     (list
+      #:tests? #t
+      #:test-command #~(list "make" "test")
+      #:exclude #~(cons* "magit-libgit.el"
+                         "magit-libgit-pkg.el"
+                         %default-exclude)
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'build-info-manual
+            (lambda _
+              (invoke "make" "info")
+              ;; Copy info files to the lisp directory, which acts as
+              ;; the root of the project for the emacs-build-system.
+              (for-each (lambda (f)
+                          (install-file f "lisp"))
+                        (find-files "Documentation" "\\.info$"))))
+          (add-after 'build-info-manual 'set-magit-version
+            (lambda _
+              (make-file-writable "lisp/magit.el")
+              (emacs-substitute-variables "lisp/magit.el"
+                ("magit-version" #$version))))
+          (add-after 'set-magit-version 'patch-exec-paths
+            (lambda* (#:key inputs #:allow-other-keys)
+              (make-file-writable "lisp/magit-sequence.el")
+              (emacs-substitute-variables "lisp/magit-sequence.el"
+                ("magit-perl-executable"
+                 (search-input-file inputs "/bin/perl")))))
+          (add-before 'check 'configure-git
+            (lambda _
+              ;; Otherwise some tests fail with error "unable to auto-detect
+              ;; email address".
+              (setenv "HOME" (getcwd))
+              (invoke "git" "config" "--global" "user.name" "toto")
+              (invoke "git" "config" "--global" "user.email"
+                      "toto@toto.com")))
+          (add-after 'configure-git 'disable-tramp-test
+            (lambda _
+              ;; There is an issue causing TRAMP to fail in the build
+              ;; environment.  Setting the tramp-remote-shell parameter of
+              ;; the sudo-method to the file name of the shell didn't help.
+              (substitute* "t/magit-tests.el"
+                (("^\\(ert-deftest magit-toplevel:tramp.*" all)
+                 (string-append all "  (skip-unless nil)")))))
+          (replace 'expand-load-path
+            (lambda args
+              (with-directory-excursion "lisp"
+                (apply (assoc-ref %standard-phases 'expand-load-path) args))))
+          (replace 'install
+            (lambda args
+              (with-directory-excursion "lisp"
+                (apply (assoc-ref %standard-phases 'install) args)))))))
     (native-inputs
      (list texinfo))
     (inputs
      (list git perl))
     (propagated-inputs
-     (list emacs-dash emacs-libgit emacs-transient emacs-with-editor))
+     (list emacs-dash emacs-transient emacs-with-editor))
     (home-page "https://magit.vc/")
     (synopsis "Emacs interface for the Git version control system")
     (description
@@ -2149,18 +2155,17 @@ or unexpected behavior inside an elisp configuration file (typically
   ;; Emacs-w3m follows a "rolling release" model.
   (package
     (name "emacs-w3m")
-    (version "2018-11-11")
-    (source
-     (origin
-       (method cvs-fetch)
-       (uri (cvs-reference
-             (root-directory
-              ":pserver:anonymous@cvs.namazu.org:/storage/cvsroot")
-             (module "emacs-w3m")
-             (revision version)))
-       (file-name (string-append name "-" version "-checkout"))
-       (sha256
-        (base32 "0nvahdbjs12zg7zsk4gql02mvnv56cf1rwj2f5p42lwp3xvswiwp"))))
+    (version "20220508.2259")
+    (source (origin
+              ;; "Officially" this is still on cvs.namazu.org, but that repo
+              ;; seems to be unreachable.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-w3m/emacs-w3m.git")
+                    (commit "bbcebbe20ebfa807a3e4beaadf40ce6f4be213e7")))
+              (sha256
+               (base32
+                "0y892n8jaxzyxi1fgyklc7zfh57ibp4yyywmif69dm28hykj6lmz"))))
     (build-system gnu-build-system)
     (native-inputs (list autoconf texinfo emacs-minimal))
     (inputs (list w3m imagemagick))
@@ -6552,7 +6557,9 @@ framework for Emacs Lisp to be used with @code{ert}.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))))
+        (base32 "0xy9zb6wwkgwhcxdnslqk52bq3z24chgk6prqi4ks0qcf2bwyh5h"))
+       (patches
+        (search-patches "emacs-deferred-fix-number-of-arguments.patch"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -18731,31 +18738,27 @@ and @code{erc-send-modify-hook} to download and show images.")
     (license license:gpl3+)))
 
 (define-public emacs-list-utils
-  (package
-    (name "emacs-list-utils")
-    (version "0.4.6")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/rolandwalker/list-utils")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "07hbz2md52ccy95gv4d5n6szrfmpfqf3w4kwqdg2cf54c7kgf7hw"))))
-    (build-system emacs-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-require-cl
-           (lambda _
-             (substitute* "list-utils.el"
-               (("\\(require 'cl\\)") "(require 'cl-lib)"))
-             #t)))))
-    (home-page "https://github.com/rolandwalker/list-utils")
-    (synopsis "List-manipulation utility functions")
-    (description "This package provides a list manipulation library for Emacs.")
-    (license license:gpl3+)))
+  ;; Use a git snapshot until upstream fixes the build with emacs 28.1.
+  ;; See <http://issues.guix.gnu.org/55558>.
+  (let ((commit "0dec8c02962d2591766739e37c5714ba21133093") (revision "1"))
+    (package
+      (name "emacs-list-utils")
+      (version (git-version "0.4.6" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/rolandwalker/list-utils")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "11nm8649a131bn2kwj4fxkiijdx2d4f1byx7a985zlb3bzdwnaw8"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/rolandwalker/list-utils")
+      (synopsis "List-manipulation utility functions")
+      (description
+       "This package provides a list manipulation library for Emacs.")
+      (license license:gpl3+))))
 
 (define-public emacs-parsec
   (package
@@ -20127,7 +20130,7 @@ downloading manager for Emacs.")
 (define-public emacs-helpful
   (package
     (name "emacs-helpful")
-    (version "0.18")
+    (version "0.19")
     (source
      (origin
        (method git-fetch)
@@ -20136,7 +20139,9 @@ downloading manager for Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0gdjxykqkal2x765mi51m99i5ql23i1fy909wy4mzj5ajhjfgqcc"))))
+        (base32 "0qwsifzsjw95l83m7z07fr9h1sqbhggwmcps1qgbddpan2a8ab8a"))
+       ;; Cherry-picked from upstream, remove when bumping to 0.20.
+       (patches (search-patches "emacs-helpful-fix-docstring-test.patch"))))
     (build-system emacs-build-system)
     (propagated-inputs
      (list emacs-elisp-refs emacs-dash emacs-s emacs-f emacs-shut-up))
@@ -21553,10 +21558,11 @@ provide an incremental search that moves all fake cursors in sync.")
       (license license:expat))))
 
 (define-public emacs-evil-org
-  (let ((commit "9d4be14118bf27094a30dbff349b815f098aacbf"))
+  (let ((commit "0d10ff7bb9a3a93d25cd91018b17f0a052b335f3")
+        (revision "2"))
     (package
       (name "emacs-evil-org")
-      (version (git-version "1.0.2" "1" commit))
+      (version (git-version "1.0.3" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -21566,7 +21572,7 @@ provide an incremental search that moves all fake cursors in sync.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1fxxfkinb0gq4p5b686r7z4jrkv98zfgh5z889zkjacncv8ibswn"))))
+           "15g47xgpswzc8lz7qdbbzfcq1n9m4474qa2jkg43l8d5ali8qa7z"))))
       (build-system emacs-build-system)
       (propagated-inputs (list emacs-evil))
       (home-page
@@ -24171,8 +24177,8 @@ stored playlists.")
 
 (define-public emacs-vterm
   (let ((version "0.0.1")
-        (revision "0")
-        (commit "a670b786539d3c8865d8f68fe0c67a2d4afbf1aa"))
+        (revision "1")
+        (commit "b44723552f86407d528c4a6c8057382c061b008e"))
     (package
       (name "emacs-vterm")
       (version (git-version version revision commit))
@@ -24184,7 +24190,7 @@ stored playlists.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0s244crjkbzl2jhp9m4sm1xdhbpxwph0m3jg18livirgajvdz6hn"))))
+                  "0rq2skwylvc7s4vfpbbsdykws4akyp9sc6xgrh2ql5yydhhnv2h3"))))
       (build-system emacs-build-system)
       (arguments
        `(#:modules ((guix build emacs-build-system)
@@ -24350,49 +24356,52 @@ indentation and a command to plot the file.")
 according to their use.")
       (license license:gpl3+))))
 
-(define-public emacs-dtache
+(define-public emacs-detached
   (package
-    (name "emacs-dtache")
-    (version "0.5")
+    (name "emacs-detached")
+    (version "0.7")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://gitlab.com/niklaseklund/dtache")
+                    (url "https://git.sr.ht/~niklaseklund/detached.el")
                     (commit version)))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "05gm5l533y8xr00w3c3i4fbhzhib6i7q2bbnpkm08w1n8a08iaj5"))))
+                "160h60vrpxslw6y290ndc065cc75dab58aq7kjqash94vkifnii2"))))
     (arguments
      (list
       #:tests? #t
       #:test-command #~(list "ert-runner")
       #:phases
       #~(modify-phases %standard-phases
-          (add-before 'install 'install-dtache-env
+          (add-before 'install 'install-detached-env
             (lambda _
-              (install-file "dtache-env" (string-append #$output "/bin"))))
+              (install-file "detached-env" (string-append #$output "/bin"))))
           (add-after 'unpack 'configure
             (lambda* (#:key inputs #:allow-other-keys)
-              (make-file-writable "dtache.el")
-              (emacs-substitute-variables "dtache.el"
-                ("dtache-env"
-                 (string-append #$output "/bin/dtache-env"))
-                ("dtache-dtach-program"
+              (make-file-writable "detached.el")
+              (emacs-substitute-variables "detached.el"
+                ("detached-env"
+                 (string-append #$output "/bin/detached-env"))
+                ("detached-dtach-program"
                  (search-input-file inputs "/bin/dtach"))
-                ("dtache-shell-program"
+                ("detached-shell-program"
                  (search-input-file inputs "/bin/bash"))))))))
     (build-system emacs-build-system)
     (native-inputs (list emacs-ert-runner))
     (inputs (list dtach))
-    (home-page "https://gitlab.com/niklaseklund/dtache")
-    (synopsis "Run and interact with detached shell commands")
+    (home-page "https://git.sr.ht/~niklaseklund/detached.el")
+    (synopsis "A package to launch, and manage, detached processes")
     (description
-     "The dtache package allows users to run shell commands
-detached from Emacs.  These commands are launched in sessions, using the
-program dtach.")
+     "The detached package allows users to run processes
+detached from Emacs.  It provides integration with multiple built-in modes, as
+well as providing an interface to attach and interact with the processes.")
     (license license:gpl3+)))
 
+(define-public emacs-dtache
+  (deprecated-package "emacs-dtache" emacs-detached))
+
 (define-public emacs-dtrt-indent
   (package
     (name "emacs-dtrt-indent")
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 010f5b84d2..6a66fe4753 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1144,36 +1144,6 @@ MPSSE (Multi-Protocol Synchronous Serial Engine) adapter by FTDI that can do
 SPI, I2C, JTAG.")
     (license license:gpl2+)))
 
-(define-public python2-libmpsse
-  (package
-    (inherit python-libmpsse)
-    (name "python2-libmpsse")
-    (arguments
-     (substitute-keyword-arguments (package-arguments python-libmpsse)
-      ((#:phases phases)
-       `(modify-phases ,phases
-         (replace 'set-environment-up
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((python (assoc-ref inputs "python")))
-               (chdir "src")
-               (setenv "PYDEV" (string-append python
-                               "/include/python"
-                               ,(version-major+minor (package-version python-2))))
-               #t)))
-         (replace 'install
-           (lambda* (#:key inputs outputs make-flags #:allow-other-keys #:rest args)
-             (let* ((out (assoc-ref outputs "out"))
-                    (out-python (string-append out
-                                               "/lib/python"
-                                               ,(version-major+minor (package-version python-2))
-                                               "/site-packages"))
-                    (install (assoc-ref %standard-phases 'install)))
-               (install #:make-flags (cons (string-append "PYLIB=" out-python)
-                                           make-flags)))))))))
-    (inputs
-     (alist-replace "python" (list python-2)
-                    (package-inputs python-libmpsse)))))
-
 (define-public picprog
   (package
     (name "picprog")
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index dc902ef40f..6b11fc54f0 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1647,9 +1647,6 @@ bindings for Python, Java, OCaml and more.")
                 (string-append "'" (assoc-ref %build-inputs "capstone") "/lib',\n")))
              #t)))))))
 
-(define-public python2-capstone
-  (package-with-python2 python-capstone))
-
 
 (define-public python-esptool-3.0
   (package
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 6a02ab1ca4..12d5a56d6a 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -439,9 +439,6 @@ embedded systems.")
 Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
     (license license:lgpl3)))
 
-(define-public python2-efl
-  (package-with-python2 python-efl))
-
 (define-public edi
   (package
     (name "edi")
@@ -483,34 +480,6 @@ and in creating applications based on the Enlightenment Foundation Library suite
                    license:gpl2          ; edi
                    license:gpl3))))      ; data/extra/examples/images/mono-runtime.png
 
-(define-public lekha
-  (package
-    (name "lekha")
-    (version "0.2.1")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "Lekha" version))
-              (sha256
-               (base32
-                "0zr6i74ik58pbzrd7r9l7sawqbdv0r2c1a9927qkqzwga27x8j15"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; no test target
-       #:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-data-location
-           (lambda _ (substitute* "setup.py"
-                       (("'/usr/")"'"))
-             #t)))))
-    (propagated-inputs
-     (list python2-efl python2-pypdf2 python2-pyxdg))
-    (synopsis "Simple PDF viewer")
-    (description
-     "Simple PDF viewer based on the Enlightenment Foundation Libraries.")
-    (home-page "https://github.com/kaihu/lekha")
-    (license license:gpl3+)))
-
 (define-public ephoto
   (package
     (name "ephoto")
diff --git a/gnu/packages/esolangs.scm b/gnu/packages/esolangs.scm
index c37df58fe8..81906dac15 100644
--- a/gnu/packages/esolangs.scm
+++ b/gnu/packages/esolangs.scm
@@ -61,26 +61,32 @@ identified by unique ID codes).")
     (license license:gpl3)))
 
 (define-public lolcode-lci
-  (package
-    (name "lolcode-lci")
-    (version "0.11.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/justinmeza/lci")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0syw60b93iajgh91ffchirwwhm2kix2753ibx845kyrhzggmdh2l"))))
-    (build-system cmake-build-system)
-    (inputs
-     (list readline))
-    (native-inputs
-     (list python-2))         ; for the tests
-    (synopsis "LOLCODE interpreter written in C")
-    (description
-     "@code{lci} is a LOLCODE interpreter written in C and is designed to be
+  ;; Use the latest commit as the last release is from 2014 with Python 2.
+  (let ((commit "6762b724361a4fb471345961b4750657783aeb3b")
+        (revision "0"))
+    (package
+      (name "lolcode-lci")
+      (version (git-version "0.11.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/justinmeza/lci")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0phqnqp7qvkn0kxkk5qsc76b9gxs932w4dy3jm96pmknh1q7h6kk"))))
+      (build-system cmake-build-system)
+      ;; The test suite is currently failing with Python 3 (see:
+      ;; https://github.com/justinmeza/lci/issues/75).
+      (arguments (list #:tests? #f))
+      (inputs
+       (list readline))
+      (native-inputs
+       (list python-wrapper))           ; for the tests
+      (synopsis "LOLCODE interpreter written in C")
+      (description
+       "@code{lci} is a LOLCODE interpreter written in C and is designed to be
 correct, portable, fast, and precisely documented.
 @enumerate
 @item correct: Every effort has been made to test lci's conformance to the
@@ -90,8 +96,8 @@ to compile on a broad range of systems.
 @item fast: Much effort has gone into producing simple and efficient code
 whenever possible to the extent that the above points are not compromized.
 @end enumerate")
-    (home-page "http://lolcode.org/")
-    (license license:gpl3+)))
+      (home-page "http://lolcode.org/")
+      (license license:gpl3+))))
 
 (define-public shakespeare-spl
   (package
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 09b979899d..f2904d2106 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -950,9 +950,6 @@ settings.")
 of Bitcoin BIP-0039.")
     (license license:expat)))
 
-(define-public python2-mnemonic
-  (package-with-python2 python-mnemonic))
-
 (define-public python-ledgerblue
   (package
     (name "python-ledgerblue")
@@ -978,9 +975,6 @@ of Bitcoin BIP-0039.")
 Ledger Blue/Nano S.")
     (license license:asl2.0)))
 
-(define-public python2-ledgerblue
-  (package-with-python2 python-ledgerblue))
-
 (define-public python-btchip-python
   (package
     (name "python-btchip-python")
@@ -1088,9 +1082,6 @@ TREZOR Hardware Wallet.")
 the KeepKey Hardware Wallet.")
     (license license:lgpl3)))
 
-(define-public python2-keepkey
-  (package-with-python2 python-keepkey))
-
 (define-public ledger-agent
   (package
     (name "ledger-agent")
@@ -1230,9 +1221,6 @@ The module also includes implementations of the Verhoeff,
 Luhn and family of ISO/IEC 7064 check digit algorithms.")
     (license license:lgpl2.1+)))
 
-(define-public python2-stdnum
-  (package-with-python2 python-stdnum))
-
 (define-public python-duniterpy
   (package
     (name "python-duniterpy")
@@ -1689,14 +1677,13 @@ that allows you to run services and through them access the Bitcoin Cash network
 (define-public beancount
   (package
     (name "beancount")
-    (version "2.3.4")
+    (version "2.3.5")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "beancount" version))
        (sha256
-        (base32
-         "1h465zc7gb0bc5pagm9fsp083sqxrn2mjfbk9l7h162xm7k8rw1b"))
+        (base32 "0sn3x6c5vwvdfak1qm0y4vv284izrc4dly31mqyd9jz9l8jmdqql"))
        (patches (search-patches "beancount-disable-googleapis-fonts.patch"))))
     (build-system python-build-system)
     (arguments
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 444d1635cb..712517c685 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -1442,30 +1442,6 @@ other support classes.  Where useful and possible, ufoLib2 tries to be
 API-compatible with defcon.")
     (license license:asl2.0)))
 
-(define-public python2-ufolib
-  (package
-    (name "python2-ufolib")
-    (version "2.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "ufoLib" version ".zip"))
-       (sha256
-        (base32 "07qy6mx7z0wi9a30lc2hj5i9q1gnz1n8l40dmjz2c19mj9s6mz9l"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (propagated-inputs
-     (list python2-fonttools))
-    (native-inputs
-     (list unzip python2-pytest python2-pytest-runner))
-    (home-page "https://github.com/unified-font-object/ufoLib")
-    (synopsis "Low-level UFO reader and writer")
-    (description
-     "UfoLib reads and writes Unified Font Object (UFO)
-files.  UFO is a file format that stores fonts source files.")
-    (license license:bsd-3)))
-
 ;;; A variant used to break a cycle between python-fontpens and
 ;;; python-fontparts.
 (define-public python-defcon-bootstrap
@@ -1504,48 +1480,34 @@ UFO3 as described by the UFO font format.")
       (modify-inputs (package-propagated-inputs python-defcon-bootstrap)
         (replace "python-fontpens-bootstrap" python-fontpens))))))
 
-(define-public python2-defcon
-  (package
-    (inherit python-defcon)
-    (name "python2-defcon")
-    (version "0.3.5")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "defcon" version ".zip"))
-              (sha256
-               (base32
-                "03jlm2gy9lvbwj68kfdm43yaddwd634jwkdg4wf0jxx2s8mwbg22"))))
-    (arguments
-     `(#:python ,python-2))
-    (native-inputs
-     (list unzip python2-pytest python2-pytest-runner))
-    (propagated-inputs
-     (list python2-fonttools python2-ufolib))))
-
 (define-public nototools
   (package
     (name "nototools")
-    (version "20170925")
+    (version "0.2.16")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/googlei18n/nototools")
-              (commit "v2017-09-25-tooling-for-phase3-update")))
+             (url "https://github.com/googlefonts/nototools")
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03nzvcvwmrhfrcjhg218q2f3hfrm3vlivp4rk19sc397kh3hisiz"))))
+         "14rrdamkmhrykff8ln07fq9cm8zwj3k113lzwjcy0lgz23g51jyl"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2))
-    (propagated-inputs
-     (list python2-booleanoperations
-           python2-defcon
-           python2-fonttools
-           python2-pillow
-           python2-pyclipper
-           python2-ufolib))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'pretend-version
+            (lambda _
+              (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (with-directory-excursion "tests"
+                (invoke "./run_tests")))))))
+    (native-inputs (list python-setuptools-scm))
+    (propagated-inputs (list python-afdko))
     (home-page "https://github.com/googlei18n/nototools")
     (synopsis "Noto fonts support tools and scripts")
     (description
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index d1e10973f8..01cb480edf 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -12,7 +12,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
-;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
 ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd@pantherx.org>
@@ -27,7 +27,7 @@
 ;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -46,12 +46,13 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages freedesktop)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix utils)
-  #:use-module (guix packages)
+  #:use-module (guix bzr-download)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -959,9 +960,6 @@ manager for the current system.")
 Python.")
     (license license:lgpl2.0)))
 
-(define-public python2-pyxdg
-  (package-with-python2 python-pyxdg))
-
 (define-public wayland
   (package
     (name "wayland")
@@ -1672,7 +1670,7 @@ wish to perform colour calibration.")
 (define-public libfprint
   (package
     (name "libfprint")
-    (version "1.94.2")
+    (version "1.94.4")
     (source
      (origin
        (method git-fetch)
@@ -1681,7 +1679,7 @@ wish to perform colour calibration.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0y3wz5hlxpnvqj67bihvzfi4dwx2m2nx9byppf4jjd80x0j2630m"))))
+        (base32 "1wfd2svsq26wizhsaifnr74havswbc1rlfm79b36yrhw9n7c3jqb"))))
     (build-system meson-build-system)
     (arguments
      (list #:configure-flags
@@ -1714,7 +1712,7 @@ software.")
 (define-public fprintd
   (package
     (name "fprintd")
-    (version "1.94.1")
+    (version "1.94.2")
     (source
      (origin
        (method git-fetch)
@@ -1723,7 +1721,7 @@ software.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "015j8ikyv48qz8vn6kfvkwwg5ydzppl1lzf7vkali9ymywywfxsw"))))
+        (base32 "015k3kc4fmas0vc2b21qzq7kvdc9x6lcqvjhbvy6m84pkhhmry3q"))))
     (build-system meson-build-system)
     (arguments
      (list #:configure-flags
@@ -1762,17 +1760,18 @@ software.")
                      ((".*pam_wrapper.*") "")))))
            #:tests? #f))                    ; XXX depend on unpackaged packages
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")         ; for glib-genmarshal
-       ("perl" ,perl)                   ; for pod2man
-       ("pkg-config" ,pkg-config)))
-       ;; For tests.
-       ;;("pam_wrapper" ,pam_wrapper)
-       ;;("python-pycairo" ,python-pycairo)
-       ;;("python-dbus" ,python-dbus)
-       ;;("python-dbusmock" ,python-dbusmock)
-       ;;("python-pygobject" ,python-pygobject)
-       ;;("python-pypamtest" ,python-pypamtest)
+     (list gettext-minimal
+           `(,glib "bin")               ; for glib-genmarshal
+           perl                         ; for pod2man
+           pkg-config
+           ;; For tests.
+           python))                     ; needed unconditionally
+           ;; pam_wrapper
+           ;; python-pycairo
+           ;; python-dbus
+           ;; python-dbusmock
+           ;; python-pygobject
+           ;; python-pypamtest
     (inputs
      (list dbus-glib
            elogind
@@ -2172,80 +2171,61 @@ useful with system integration.")
     (license license:gpl3)))
 
 (define-public libappindicator
-  (package
-    (name "libappindicator")
-    (version "12.10.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://launchpad.net/libappindicator/"
-             (version-major+minor version) "/" version
-             "/+download/libappindicator-" version ".tar.gz"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Fix 'multiple definitions' error from GCC 10
-           (substitute* "bindings/python/appindicatormodule.c"
-             (("^#include <pygobject.h>" all)
-              (string-append "#define NO_IMPORT_PYGOBJECT\n" all)))))
-       (sha256
-        (base32
-         "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("dbus-test-runner" ,dbus-test-runner)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("pkg-config" ,pkg-config)
-       ("xvfb" ,xorg-server-for-tests)))
-    (inputs
-     `(("dbus-glib" ,dbus-glib)
-       ("libindicator" ,libindicator)
-       ("python@2" ,python-2)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python2-pygobject-2" ,python2-pygobject-2)
-       ;; ("mono" ,mono) ; requires non-packaged gapi
-       ("vala" ,vala)))
-    (propagated-inputs
-     (list gtk+ libdbusmenu))
-    (arguments
-     ;; FIXME: do not hardcode gtk version
-     `(#:configure-flags '("--with-gtk=3")
-       #:make-flags '("CFLAGS=-Wno-error")
-       #:tests? #f ; One test does not pass (it succeeds when it should fail).
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "docs/reference/Makefile.in"
-               (("/bin/sh") (which "sh")))
-             (substitute* "tests/Makefile.in"
-               (("/bin/sh") (which "sh"))
-               (("#!/bin/bash") (string-append "#!" (which "bash")))
-               (("/usr") (string-append (assoc-ref inputs "dbus-test-runner"))))
-             (substitute* "bindings/python/Makefile.in"
-               (("-lappindicator") "-lappindicator3"))
-             #t))
-         (add-after 'unpack 'fix-codegen-path
-           (lambda _
-             (substitute* "configure"
-               (("PYGTK_CODEGEN=.*") "PYGTK_CODEGEN=pygtk-codegen-2.0\n"))
-             #t))
-         (add-after 'build 'build-bindings
-           (lambda _
-             (invoke "make" "-C" "bindings/python")
-             #t))
-         (add-after 'install 'install-bindings
-           (lambda _
-             (invoke "make" "-C" "bindings/python" "install")
-             #t)))))
-    (home-page "https://launchpad.net/libappindicator")
-    (synopsis "Allow applications to export a menu into the Unity menu bar")
-    (description "A library to allow applications to export a menu, originally
+  ;; Use the latest commit as the latest official release from 2012 uses
+  ;; Python 2.
+  (let ((revision "0")
+        ;; Corresponds to the 12.10.1+20.10.20200706.1-0ubuntu1 tag.
+        (bazaar-revision "298"))
+    (package
+      (name "libappindicator")
+      (version (string-append "12.10.1-" revision "-" bazaar-revision))
+      (source (origin
+                (method bzr-fetch)
+                (uri (bzr-reference
+                      (url "lp:libappindicator")
+                      (revision bazaar-revision)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0jkc1xdsa7r71vrr2l7wgkarvzvwrpwn0m8m4ipaqlzfa5d45n3a"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       (list autoconf
+             automake
+             at-spi2-core
+             dbus-test-runner
+             `(,glib "bin")
+             gnome-common
+             gobject-introspection
+             gtk-doc
+             libtool
+             pkg-config
+             vala
+             which
+             xorg-server-for-tests))
+      (inputs
+       (list dbus-glib))
+      (propagated-inputs
+       (list gtk+ libdbusmenu))
+      (arguments
+       `(#:configure-flags '("--with-gtk=3")
+         #:make-flags '("CFLAGS=-Wno-error")
+         #:tests? #f ; One test does not pass (it succeeds when it should fail).
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'fix-paths
+             (lambda* (#:key native-inputs inputs #:allow-other-keys)
+               (substitute* "tests/Makefile.in"
+                 (("/bin/sh") (which "sh"))
+                 (("/bin/bash") (which "bash"))
+                 (("/usr/(share/dbus-test-runner/session.conf)" _ tail)
+                  (search-input-file (or native-inputs inputs) tail))))))))
+      (home-page "https://launchpad.net/libappindicator")
+      (synopsis "Allow applications to export a menu into the Unity menu bar")
+      (description "A library to allow applications to export a menu, originally
 into the Unity menu bar.  Based on KSNI, it also works in KDE and will
 fallback to generic Systray support if none of those are available.")
-    (license license:lgpl2.1+)))
+      (license license:lgpl2.1+))))
 
 (define-public libportal
   (package
diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm
index 762cfcee78..87b7ac139f 100644
--- a/gnu/packages/freeipmi.scm
+++ b/gnu/packages/freeipmi.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016, 2017, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019–2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -28,14 +28,14 @@
 (define-public freeipmi
   (package
     (name "freeipmi")
-    (version "1.6.8")
+    (version "1.6.9")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/freeipmi/freeipmi-"
                                  version ".tar.gz"))
              (sha256
               (base32
-               "0w8af1i57szmxl9vfifwwyal7xh8aixz2l9487wvy6yckqk6m92a"))))
+               "01l2kkf2f0c7p8pq8qsil53fv0yaaciwq7n3kjlvbwfhycsiqppj"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static"
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index daeeec42cb..4c1b97f041 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -407,14 +407,6 @@ levels.")
                    ;; under the CC0 license.
                    license:cc0))))
 
-(define-public python2-tmx
-  (let ((python2-tmx (package-with-python2 python-tmx)))
-    (package
-      (inherit python2-tmx)
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs python2-tmx)
-         (prepend python2-pathlib))))))
-
 (define-public python-xsge
   (package
     (name "python-xsge")
@@ -1214,9 +1206,6 @@ to create fully featured games and multimedia programs in the python language.")
                    license:public-domain
                    license:lgpl2.1+))))
 
-(define-public python2-pygame
-  (package-with-python2 python-pygame))
-
 (define-public python-pygame-sdl2
   (let ((real-version "2.1.0")
         (renpy-version "7.4.11"))
@@ -1268,12 +1257,9 @@ While it aims to be used as a drop-in replacement, it appears to be
 developed mainly for Ren'py.")
       (license (list license:lgpl2.1 license:zlib)))))
 
-(define-public python2-pygame-sdl2
-  (package-with-python2 python-pygame-sdl2))
-
-(define-public python2-renpy
+(define-public renpy
   (package
-    (name "python2-renpy")
+    (name "renpy")
     (version "7.4.11")
     (source
      (origin
@@ -1292,8 +1278,7 @@ developed mainly for Ren'py.")
            #t))))
     (build-system python-build-system)
     (arguments
-     `(#:tests? #f ; Ren'py doesn't seem to package tests
-       #:python ,python-2
+     `(#:tests? #f                      ; Ren'py doesn't seem to package tests
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'fix-commands
@@ -1301,8 +1286,7 @@ developed mainly for Ren'py.")
              (substitute* "renpy/editor.py"
                (("xdg-open")
                 (string-append (assoc-ref inputs "xdg-utils")
-                               "/bin/xdg-open")))
-             #t))
+                               "/bin/xdg-open")))))
          (add-after 'unpack 'fix-include-paths
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "module/setup.py"
@@ -1313,8 +1297,7 @@ developed mainly for Ren'py.")
              (setenv "RENPY_CYTHON"
                      (search-input-file (or native-inputs inputs)
                                         "/bin/cython"))
-             (setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":"))
-             #t))
+             (setenv "RENPY_DEPS_INSTALL" (string-join (map cdr inputs) ":"))))
          (replace 'build
            (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
              ;; The "module" subdirectory contains a python (really cython)
@@ -1324,8 +1307,7 @@ developed mainly for Ren'py.")
                (apply (assoc-ref %standard-phases 'build) args))
              ;; The above only builds the cython modules, but nothing else,
              ;; so we do that here.
-             (invoke "python" "-m" "compileall" "renpy")
-             #t))
+             (invoke "python" "-m" "compileall" "renpy")))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
              ;; Again, we have to wrap the module installation.
@@ -1340,8 +1322,9 @@ developed mainly for Ren'py.")
                  (apply (assoc-ref %standard-phases 'install) args))
                (copy-recursively "renpy"
                                  (string-append out site "/renpy"))
-               (delete-file-recursively (string-append out site "/renpy/common")))
-             #t)))))
+               (delete-file-recursively (string-append out site
+                                                       "/renpy/common"))))))))
+    (native-inputs (list python-cython))
     (inputs
      (list ffmpeg
            freetype
@@ -1350,11 +1333,7 @@ developed mainly for Ren'py.")
            libpng
            (sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf))
            xdg-utils))
-    (propagated-inputs
-     `(("python2-future" ,python2-future)
-       ("python2-pygame" ,python2-pygame-sdl2)))
-    (native-inputs
-     (list python2-cython))
+    (propagated-inputs (list python-future python-pygame-sdl2))
     (home-page "https://www.renpy.org/")
     (synopsis "Ren'py python module")
     (description "This package contains the shared libraries and Python modules
@@ -1363,176 +1342,6 @@ the launcher and common Ren'py code provided by the @code{renpy} package and
 are only used to bootstrap it.")
     (license license:expat)))
 
-(define-public renpy
-  (package
-    (inherit python2-renpy)
-    (name "renpy")
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; see python2-renpy
-       #:python ,python-2
-       #:modules ((srfi srfi-1)
-                  (guix build python-build-system)
-                  (guix build utils))
-       #:imported-modules ((srfi srfi-1) ,@%python-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-commands
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "launcher/game/choose_directory.rpy"
-               (("/usr/bin/python")
-                (string-append (assoc-ref inputs "python2")
-                               "/bin/python2")))
-             (substitute* "launcher/game/front_page.rpy"
-               (("xdg-open")
-                (string-append (assoc-ref inputs "xdg-utils")
-                               "/bin/xdg-open")))
-             (substitute* "launcher/game/project.rpy"
-               (("cmd = \\[ executable, \"-EO\", sys.argv\\[0\\] \\]")
-                (string-append "cmd = [ \"" (assoc-ref outputs "out")
-                               "/bin/renpy\" ]"))
-               ;; Projects are still created in the usual style, so we need
-               ;; to adjust the path.
-               (("cmd.append\\(self.path\\)")
-                "cmd.append(self.path + \"/game\")"))
-             #t))
-         (add-after 'unpack 'drop-game-from-paths
-           (lambda _
-             (substitute* (list "launcher/game/gui7.rpy"
-                                "launcher/game/gui7/images.py")
-               ((", \"game\",") ","))
-             #t))
-         (add-before 'build 'start-xserver
-           (lambda* (#:key inputs native-inputs #:allow-other-keys)
-             (let ((xorg-server (assoc-ref (or native-inputs inputs)
-                                           "xorg-server")))
-               (setenv "HOME" (getcwd))
-               (system (format #f "~a/bin/Xvfb :1 &" xorg-server))
-               (setenv "DISPLAY" ":1")
-               #t)))
-         (replace 'build
-           (lambda _
-             (invoke "python" "renpy.py" "launcher" "quit")
-             (invoke "python" "renpy.py" "the_question" "quit")
-             (invoke "python" "renpy.py" "tutorial" "quit")
-             #t))
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Here we install our custom renpy program.
-             ;; After finishing this step, "out" will have the following:
-             ;; |-- bin/renpy
-             ;; `-- share/renpy ; i.e. path_to_renpy_base()
-             ;;     |-- common
-             ;;     `-- gui
-             ;;
-             ;; Note that common shares the source files that would be installed
-             ;; by python2-renpy (which are instead deleted from that package),
-             ;; but also contains their byte-compiled versions.
-             ;; On other systems, renpy_base would point to site-packages or
-             ;; even somewhere in /opt.
-             ;; The former approach is not as straightforward as it seems
-             ;; -- it causes renpy to load files twice for some weird reason --
-             ;; and the latter is impossible on Guix. Hence the detour through
-             ;; share/renpy and the custom renpy program.
-             ;;
-             ;; As a convention, other games should be installed as
-             ;; subdirectories of share/renpy in their respective outputs as
-             ;; well. This differs from the traditional layout, which is
-             ;; roughly the following:
-             ;; `-- Super Awesome Game
-             ;;     |-- game       ; <- the folder we actually want
-             ;;     |-- lib        ; compiled renpy module and dependencies
-             ;;     |-- renpy      ; yet another copy of Ren'py's code
-             ;;     |   |-- common ; the common folder from above
-             ;;     |   `-- ...    ; Python code (source + compiled)
-             ;;     |-- Super Awesome Game.py
-             ;;     `-- Super Awesome Game.sh
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin/renpy (string-append out "/bin/renpy")))
-               (copy-recursively "renpy/common"
-                                 (string-append out "/share/renpy/common"))
-               (copy-recursively "gui"
-                                 (string-append out "/share/renpy/gui"))
-
-               (mkdir-p (string-append out "/bin"))
-               (copy-file (assoc-ref inputs "renpy.in") bin/renpy)
-               (substitute* bin/renpy
-                 (("@PYTHON@") (search-input-file inputs "bin/python2"))
-                 (("@RENPY_BASE@") (string-append out "/share/renpy")))
-               (chmod bin/renpy #o755))))
-
-         (add-after 'install 'install-games
-           (lambda* (#:key outputs #:allow-other-keys)
-             (define renpy (assoc-ref outputs "out"))
-             ;; TODO: We should offer a renpy-build-system to make the
-             ;; installation of Ren'py games easier.
-             (define* (install-renpy-game #:key output game name (renpy renpy)
-                                          #:allow-other-keys)
-               (let* ((name (or name (basename game)))
-                      (launcher (string-append output "/bin/renpy-" name))
-                      (share (string-append output "/share/renpy/" name)))
-                 (copy-recursively (string-append game "/game") share)
-                 (mkdir-p (string-append output "/bin"))
-                 (with-output-to-file launcher
-                   (lambda ()
-                     (format #t
-                             "#!~a~%~a ~a \"$@\""
-                             (which "bash")
-                             (string-append renpy "/bin/renpy")
-                             share)))
-                 (chmod launcher #o755)))
-
-             (install-renpy-game #:output (assoc-ref outputs "out")
-                                 #:game "launcher")
-
-             (install-renpy-game #:output (assoc-ref outputs "the-question")
-                                 #:game "the_question"
-                                 #:name "the-question")
-
-             (install-renpy-game #:output (assoc-ref outputs "tutorial")
-                                 #:game "tutorial")
-             #t))
-         (replace 'wrap
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (site (string-append "/lib/python"
-                                        (python-version
-                                         (assoc-ref inputs "python"))
-                                        "/site-packages")))
-               (wrap-program (string-append out "/bin/renpy")
-                 `("GUIX_PYTHONPATH" =
-                   (,@(delete-duplicates
-                       (map
-                        (lambda (store-path)
-                          (string-append store-path site))
-                        (cons (assoc-ref outputs "out")
-                              (map cdr
-                                   (filter
-                                    (lambda (input)
-                                      (string-prefix? "python2" (car input)))
-                                    inputs))))))))
-               #t))))))
-    (inputs
-     `(("renpy.in" ,(search-auxiliary-file "renpy/renpy.in"))
-       ("python2-renpy" ,python2-renpy)
-       ("python2-tkinter" ,python-2 "tk")
-       ("python2" ,python-2) ; for ‘fix-commands’ and ‘wrap’
-       ("xdg-utils" ,xdg-utils)))
-    (propagated-inputs '())
-    (native-inputs
-     (list xorg-server-for-tests))
-    (outputs
-     (list "out" "tutorial" "the-question"))
-    (home-page "https://www.renpy.org/")
-    (synopsis "Visual Novel Engine")
-    (description "Ren'Py is a visual novel engine that helps you use words,
-images, and sounds to tell interactive stories that run on computers and
-mobile devices.  These can be both visual novels and life simulation games.
-The easy to learn script language allows anyone to efficiently write large
-visual novels, while its Python scripting is enough for complex simulation
-games.")
-    (license license:expat)))
-
 (define-public python-pyxel
   (package
     (name "python-pyxel")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3e4369f474..58ccf080a7 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3080,7 +3080,7 @@ that beneath its ruins lay buried an ancient evil.")
 (define-public angband
   (package
     (name "angband")
-    (version "4.2.3")
+    (version "4.2.4")
     (source
      (origin
        (method git-fetch)
@@ -3089,7 +3089,7 @@ that beneath its ruins lay buried an ancient evil.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1psrdbf90mb6dhq0b9z18pz1csnshz1kvwg82dvwa99apqdw0la8"))
+        (base32 "1x0qqsv7xa3figcl4v35sin64ffgz32652vk541d8qaq4qcc378n"))
        (modules '((guix build utils)))
        (snippet
         ;; So, some of the sounds/graphics/tilesets are under different
@@ -3105,14 +3105,12 @@ that beneath its ruins lay buried an ancient evil.")
            (substitute* "lib/Makefile"
              ;; And don't try to invoke makefiles in the directories we removed.
              (("gamedata customize help screens fonts tiles sounds icons user")
-              "gamedata customize help screens user"))
-           #t))))
+              "gamedata customize help screens user"))))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no check target
        #:configure-flags (list (string-append "--bindir=" %output "/bin"))))
-    (native-inputs
-     (list autoconf automake))
+    (native-inputs (list autoconf automake))
     (inputs (list ncurses))
     (home-page "https://rephial.org/")
     (synopsis "Dungeon exploration roguelike")
@@ -6690,7 +6688,7 @@ fight against their plot and save his fellow rabbits from slavery.")
            libxcursor
            libxml2
            miniupnpc
-           mozjs-78
+           mozjs
            openal
            sdl2
            wxwidgets
@@ -8682,33 +8680,6 @@ the net.  There can be 1 to 8 balls in game.  Once one ball touches
 the ground, the set ends and all balls are served again.")
     (license license:gpl3+)))
 
-(define-public slingshot
-  (package
-    (name "slingshot")
-    (version "0.9")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ryanakca/slingshot")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "19m8b6nsi786bc6gmkp185mwri3r5y249gjmqd5qsc23nnfhgrs1"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (inputs
-     (list python2-pygame))
-    (home-page "https://github.com/ryanakca/slingshot")
-    (synopsis "Simple 2D shooting strategy game set in space")
-    (description "Slingshot is a two-dimensional strategy game where two
-players attempt to shoot one another through a section of space populated by
-planets.  The main feature of the game is that the shots, once fired, are
-affected by the gravity of the planets.")
-    (license license:gpl2+)))
-
 (define-public 4dtris
   (package
     (name "4dtris")
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 6823b41ee0..cd144772b8 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -641,14 +641,14 @@ It also includes runtime support libraries for these languages.")
 (define-public gcc-9
   (package
    (inherit gcc-8)
-   (version "9.4.0")
+   (version "9.5.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.xz"))
             (sha256
              (base32
-              "13l3p6g2krilaawbapmn9zmmrh3zdwc36mfr3msxfy038hps6pf9"))
+              "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7"))
             (patches (search-patches "gcc-9-strmov-store-file-names.patch"
                                      "gcc-9-asan-fix-limits-include.patch"
                                      "gcc-5.0-libvtv-runpath.patch"))
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index 0ad75de700..1bf396670e 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@
 (define-module (gnu packages gimp)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
@@ -297,71 +299,55 @@ buffers.")
         (base32 "1p375gaw2daip6aiv1icrlpws5m1my5kalxkxrvl4zgdfsm5v0c8"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"))                            ; 9 MiB of gtk-doc HTML
+               "doc"))                  ; 9 MiB of gtk-doc HTML
     (arguments
-     '(#:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html")
+     (list
+      #:configure-flags
+      #~(list (string-append "--with-html-dir=" #$output "/share/gtk-doc/html")
 
-             ;; Prevent the build system from running 'gtk-update-icon-cache'
-             ;; which is not needed during the build because Guix runs it at
-             ;; profile creation time.
-             "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
+              ;; Prevent the build system from running 'gtk-update-icon-cache'
+              ;; which is not needed during the build because Guix runs it at
+              ;; profile creation time.
+              "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
 
-             ;; Disable automatic network request on startup to check for
-             ;; version updates.
-             "--disable-check-update"
+              ;; Disable automatic network request on startup to check for
+              ;; version updates.
+              "--disable-check-update"
 
-             ;; ./configure requests not to annoy upstream with packaging bugs.
-             "--with-bug-report-url=https://bugs.gnu.org/guix")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-sitecustomize.py
-           ;; Install 'sitecustomize.py' into gimp's python directory to
-           ;; add pygobject and pygtk to pygimp's search path.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((pythonpath (getenv "GUIX_PYTHONPATH"))
-                    (out        (assoc-ref outputs "out"))
-                    (sitecustomize.py
-                     (string-append
-                      out "/lib/gimp/2.0/python/sitecustomize.py")))
-               (call-with-output-file sitecustomize.py
-                 (lambda (port)
-                   (format port "import site~%")
-                   (format port "for dir in '~a'.split(':'):~%" pythonpath)
-                   (format port "    site.addsitedir(dir)~%")))))))))
+              ;; Only Python 2 is supported; disable it.
+              "--disable-python"
+
+              ;; ./configure requests not to annoy upstream with packaging bugs.
+              "--with-bug-report-url=https://bugs.gnu.org/guix")))
     (inputs
-     `(("atk" ,atk)
-       ("babl" ,babl)
-       ("gegl" ,gegl)
-       ("gexiv2" ,gexiv2)
-       ("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("gtk+" ,gtk+-2)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libmypaint" ,libmypaint)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("mypaint-brushes" ,mypaint-brushes-1.3)
-       ("exif" ,libexif)                  ; optional, EXIF + XMP support
-       ("ghostscript" ,ghostscript)       ; optional, EPS + PS support
-       ("lcms" ,lcms)                     ; optional, color management
-       ("libheif" ,libheif)               ; optional, HEIF + AVIF support
-       ("libmng" ,libmng)                 ; optional, MNG support
-       ("librsvg" ,librsvg)               ; optional, SVG support
-       ("libxcursor" ,libxcursor)         ; optional, Mouse Cursor support
-       ("openexr" ,openexr-2)             ; optional, EXR support
-       ("openjpeg" ,openjpeg)             ; optional, JPEG 2000 support
-       ("poppler" ,poppler)               ; optional, PDF support
-       ("poppler-data" ,poppler-data)     ; optional, PDF support
-       ("python" ,python-2)               ; optional, Python support
-       ("python2-pygtk" ,python2-pygtk))) ; optional, Python support
+     (list atk
+           babl
+           gegl
+           gexiv2
+           glib
+           glib-networking
+           gtk+-2
+           libjpeg-turbo
+           libmypaint
+           libtiff
+           libwebp
+           mypaint-brushes-1.3
+           libexif                      ;optional, EXIF + XMP support
+           ghostscript                  ;optional, EPS + PS support
+           lcms                         ;optional, color management
+           libheif                      ;optional, HEIF + AVIF support
+           libmng                       ;optional, MNG support
+           librsvg                      ;optional, SVG support
+           libxcursor                   ;optional, Mouse Cursor support
+           openexr-2                    ;optional, EXR support
+           openjpeg                     ;optional, JPEG 2000 support
+           poppler                      ;optional, PDF support
+           poppler-data))               ;optional, PDF support
     (native-inputs
-     `(("desktop-file-utils" ,desktop-file-utils)
-       ("glib:bin" ,glib "bin") ; for glib-compile-resources and gdbus-codegen
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
+     (list desktop-file-utils
+           `(,glib "bin")        ;for glib-compile-resources and gdbus-codegen
+           intltool
+           pkg-config))
     (home-page "https://www.gimp.org")
     (synopsis "GNU Image Manipulation Program")
     (description
@@ -595,79 +581,61 @@ transferring the style of an image.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/glimpse-editor/Glimpse")
-                     (commit (string-append "v" version))))
+                    (url "https://github.com/glimpse-editor/Glimpse")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
                 "0drngj2xqzxfaag6pc4xjffiw003n4y43x5rb5bf4ziv1ac51dm9"))))
     (build-system gnu-build-system)
     (outputs '("out"
-               "doc"))                            ; 9 MiB of gtk-doc HTML
+               "doc"))                  ; 9 MiB of gtk-doc HTML
     (arguments
-     '(#:configure-flags
-       (list (string-append "--with-html-dir="
-                            (assoc-ref %outputs "doc")
-                            "/share/gtk-doc/html")
-             "--enable-gtk-doc"
+     (list
+      #:configure-flags
+      #~(list
+         (string-append "--with-html-dir=" #$output "/share/gtk-doc/html")
+         "--enable-gtk-doc"
 
-             ;; Prevent the build system from running 'gtk-update-icon-cache'
-             ;; which is not needed during the build because Guix runs it at
-             ;; profile creation time.
-             "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
+         ;; Prevent the build system from running 'gtk-update-icon-cache'
+         ;; which is not needed during the build because Guix runs it at
+         ;; profile creation time.
+         "ac_cv_path_GTK_UPDATE_ICON_CACHE=true"
 
-             ;; Disable automatic network request on startup to check for
-             ;; version updates.
-             "--disable-check-update"
+         ;; Disable automatic network request on startup to check for
+         ;; version updates.
+         "--disable-check-update"
 
-             ;; ./configure requests not to annoy upstream with packaging bugs.
-             "--with-bug-report-url=https://bugs.gnu.org/guix")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-sitecustomize.py
-           ;; Install 'sitecustomize.py' into glimpse's python directory to
-           ;; add pygobject and pygtk to pygimp's search path.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((pythonpath (getenv "GUIX_PYTHONPATH"))
-                    (out        (assoc-ref outputs "out"))
-                    (sitecustomize.py
-                     (string-append
-                      out "/lib/glimpse/2.0/python/sitecustomize.py")))
-               (call-with-output-file sitecustomize.py
-                 (lambda (port)
-                   (format port "import site~%")
-                   (format port "for dir in '~a'.split(':'):~%" pythonpath)
-                   (format port "    site.addsitedir(dir)~%")))))))))
+         ;; ./configure requests not to annoy upstream with packaging bugs.
+         "--with-bug-report-url=https://bugs.gnu.org/guix")))
     (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gtk-doc" ,gtk-doc)
-       ("intltool" ,intltool)
-       ("libtool" ,libtool)
-       ("libxslt" ,libxslt) ; for xsltproc
-       ("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin"))) ; for gdbus-codegen
+     (list autoconf
+           automake
+           gtk-doc
+           intltool
+           libtool
+           libxslt                      ;for xsltproc
+           pkg-config
+           `(,glib "bin")))             ;for gdbus-codegen
     (inputs
-     `(("babl" ,babl)
-       ("glib" ,glib)
-       ("glib-networking" ,glib-networking)
-       ("libtiff" ,libtiff)
-       ("libwebp" ,libwebp)
-       ("libjpeg" ,libjpeg-turbo)
-       ("atk" ,atk)
-       ("gexiv2" ,gexiv2)
-       ("gtk+" ,gtk+-2)
-       ("libmypaint" ,libmypaint)
-       ("mypaint-brushes" ,mypaint-brushes-1.3)
-       ("exif" ,libexif)                ; optional, EXIF + XMP support
-       ("lcms" ,lcms)                   ; optional, color management
-       ("librsvg" ,librsvg)             ; optional, SVG support
-       ("libxcursor" ,libxcursor)       ; optional, Mouse Cursor support
-       ("poppler" ,poppler)             ; optional, PDF support
-       ("poppler-data" ,poppler-data)
-       ("python" ,python-2)             ; optional, Python support
-       ("python2-pygtk" ,python2-pygtk) ; optional, Python support
-       ("gegl" ,gegl-for-glimpse)))     ; XXX see comment in gegl-for-glimpse
+     (list babl
+           glib
+           glib-networking
+           libtiff
+           libwebp
+           libjpeg-turbo
+           atk
+           gexiv2
+           gtk+-2
+           libmypaint
+           mypaint-brushes-1.3
+           libexif                      ;optional, EXIF + XMP support
+           lcms                         ;optional, color management
+           librsvg                      ;optional, SVG support
+           libxcursor                   ;optional, Mouse Cursor support
+           poppler                      ;optional, PDF support
+           poppler-data
+           gegl-for-glimpse))           ;XXX see comment in gegl-for-glimpse
     (home-page "https://glimpse-editor.github.io/")
     (synopsis "Glimpse Image Editor")
     (description "The Glimpse Image Editor is an application for image
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 656eb02fe0..c740c087dd 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -296,12 +296,9 @@ also known as DXTn or DXTC) for Mesa.")
                    libxvmc
                    wayland
                    wayland-protocols)
-             (if (member (%current-system)
-                         '("x86_64-linux" "i686-linux" "powerpc64le-linux"
-                           "aarch64-linux" "powerpc-linux" "riscv64-linux"))
-                 ;; Note: update the 'clang' input of mesa-opencl when bumping this.
-                 (list llvm-11)
-                 '())))
+             ;; TODO: Resort alphabetically.
+             ;; Note: update the 'clang' input of mesa-opencl when bumping this.
+             (list llvm-11)))
     (native-inputs
      (append (list bison
                    flex
@@ -311,18 +308,18 @@ also known as DXTn or DXTC) for Mesa.")
                    python-libxml2                  ;for OpenGL ES 1.1 and 2.0 support
                    python-mako
                    (@ (gnu packages base) which))
-             (if (member (%current-system)
-                         '("x86_64-linux" "i686-linux" "powerpc64le-linux"
-                           "aarch64-linux" "powerpc-linux" "riscv64-linux"))
-                 (list glslang)
-                 '())))
+             ;; TODO: Resort alphabetically.
+             (list glslang)))
     (outputs '("out" "bin"))
     (arguments
      `(#:configure-flags
        '(,@(match (%current-system)
-             ((or "armhf-linux" "aarch64-linux")
+             ("aarch64-linux"
               ;; TODO: Fix svga driver for non-Intel architectures.
               '("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
+             ("armhf-linux"
+              ;; Freedreno FTBFS when built on a 64-bit machine.
+              '("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
              ((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux")
               '("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
              (_
@@ -354,13 +351,8 @@ also known as DXTn or DXTC) for Mesa.")
              (_
               '("-Dvulkan-drivers=auto")))
 
-         ;; Enable the Vulkan overlay layer on architectures using llvm.
-         ,@(match (%current-system)
-             ((or "x86_64-linux" "i686-linux" "powerpc64le-linux" "aarch64-linux"
-                  "powerpc-linux" "riscv64-linux")
-              '("-Dvulkan-layers=device-select,overlay"))
-             (_
-              '()))
+         ;; Enable the Vulkan overlay layer on all architectures.
+         "-Dvulkan-layers=device-select,overlay"
 
          ;; Also enable the tests.
          "-Dbuild-tests=true"
@@ -369,13 +361,11 @@ also known as DXTn or DXTC) for Mesa.")
          ;; from the default dri drivers
          ,@(match (%current-system)
              ((or "x86_64-linux" "i686-linux")
-              '("-Ddri-drivers=i915,i965,nouveau,r200,r100"
-                "-Dllvm=enabled"))      ; default is x86/x86_64 only
-             ((or "powerpc64le-linux" "aarch64-linux" "powerpc-linux" "riscv64-linux")
-              '("-Ddri-drivers=nouveau,r200,r100"
-                "-Dllvm=enabled"))
+              '("-Ddri-drivers=i915,i965,nouveau,r200,r100"))
              (_
-              '("-Ddri-drivers=nouveau,r200,r100"))))
+              '("-Ddri-drivers=nouveau,r200,r100")))
+
+                "-Dllvm=enabled")       ; default is x86/x86_64 only
 
        ;; XXX: 'debugoptimized' causes LTO link failures on some drivers.  The
        ;; documentation recommends using 'release' for performance anyway.
@@ -433,6 +423,10 @@ also known as DXTn or DXTC) for Mesa.")
                   ;; The simplest way to skip it is to run a different test instead.
                   `((substitute* "src/freedreno/ir3/meson.build"
                       (("disasm\\.c'") "delay.c',\n    link_args: ld_args_build_id"))))
+                 ("armhf-linux"
+                  ;; Disable some of the llvmpipe tests.
+                  `((substitute* "src/gallium/drivers/llvmpipe/meson.build"
+                      (("'lp_test_arit', ") ""))))
                  (_
                   '((display "No tests to disable on this architecture.\n"))))))
          (add-before 'configure 'fix-dlopen-libnames
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 7e6acc0984..52698f6984 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -816,44 +816,6 @@ useful for C++.")
       (modify-inputs (package-propagated-inputs glibmm)
         (replace "libsigc++" libsigc++-2)))))
 
-(define-public python2-pygobject-2
-  (package
-    (name "python2-pygobject")
-    ;; This was the last version to declare the 2.0 platform number, i.e. its
-    ;; pkg-config files were named pygobject-2.0.pc
-    (version "2.28.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/pygobject/"
-                           (version-major+minor version)
-                           "/pygobject-" version ".tar.xz"))
-       (sha256
-        (base32
-         "0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
-       (patches (search-patches "python2-pygobject-2-deprecation.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("which" ,which)
-       ("glib-bin" ,glib "bin")         ;for tests: glib-compile-schemas
-       ("pkg-config" ,pkg-config)
-       ("dbus" ,dbus)))                 ;for tests
-    (inputs
-     `(("python" ,python-2)
-       ("glib"   ,glib)
-       ("python2-pycairo" ,python2-pycairo)
-       ("gobject-introspection" ,gobject-introspection)))
-    (propagated-inputs
-     (list libffi))             ;mentioned in pygobject-2.0.pc
-    (arguments
-     `(#:tests? #f                      ;segfaults during tests
-       #:configure-flags '("LIBS=-lcairo-gobject")))
-    (home-page "https://pypi.org/project/PyGObject/")
-    (synopsis "Python bindings for GObject")
-    (description
-     "Python bindings for GLib, GObject, and GIO.")
-    (license license:lgpl2.1+)))
-
 (define-public python-pygobject
   (package
     (name "python-pygobject")
@@ -902,37 +864,7 @@ useful for C++.")
     (synopsis "Python bindings for GObject")
     (description
      "Python bindings for GLib, GObject, and GIO.")
-    (license license:lgpl2.1+)
-    (properties `((python2-variant . ,(delay python2-pygobject))))))
-
-(define-public python2-pygobject
-  (let ((base (strip-python2-variant python-pygobject)))
-    (package/inherit base
-      (name "python2-pygobject")
-
-      ;; Note: We use python-build-system here, because Meson only supports
-      ;; Python 3, and needs PYTHONPATH etc set up correctly, which makes it
-      ;; difficult to use for Python 2 projects.
-      (build-system python-build-system)
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'delete-broken-tests
-             (lambda _
-               ;; FIXME: this test freezes and times out.
-               (delete-file "tests/test_mainloop.py")
-               ;; FIXME: this test fails with this kind of error:
-               ;; AssertionError: <Handlers.SIG_IGN: 1> != <built-in function default_int_handler
-               (delete-file "tests/test_ossig.py")
-               #t)))))
-      (inputs
-       `(("python-pycairo" ,python2-pycairo)
-         ("gobject-introspection" ,gobject-introspection)))
-      (native-inputs
-       `(("glib-bin" ,glib "bin")
-         ("pkg-config" ,pkg-config)
-         ("python-pytest" ,python2-pytest))))))
+    (license license:lgpl2.1+)))
 
 (define-public perl-glib
   (package
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 171ff1ab37..587224ae08 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -332,7 +332,6 @@
     (inputs
      (list dvd+rw-tools
            glib
-           gnome-doc-utils
            gstreamer
            gst-plugins-base
            gtk+
@@ -1850,7 +1849,7 @@ either on a local, or remote machine via a number of methods.")
 (define-public gnome-commander
   (package
     (name "gnome-commander")
-    (version "1.14.0")
+    (version "1.14.2")
     (source
      (origin
        (method url-fetch)
@@ -1858,7 +1857,7 @@ either on a local, or remote machine via a number of methods.")
                            (version-major+minor version)  "/"
                            "gnome-commander-" version ".tar.xz"))
        (sha256
-        (base32 "1zdz82j7vpxiqa188zmsxliqk60g331ycaxfbhx5bzyqfjgrh7gd"))))
+        (base32 "1s8fdwp0z1smzkwrsvssp9g3yak6z4cdk0qx0c4qmwca9z9fyy0k"))))
     (build-system glib-or-gtk-build-system)
     (native-inputs
      (list desktop-file-utils
@@ -2227,37 +2226,6 @@ The gnome-about program helps find which version of GNOME is installed.")
     ; Some bits under the LGPL.
     (license license:gpl2+)))
 
-(define-public gnome-doc-utils
-  (package
-    (name "gnome-doc-utils")
-    (version "0.20.10")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list intltool
-           docbook-xml-4.4
-           python2-libxml2
-           libxml2
-           libxslt
-           pkg-config
-           python-2))
-    (home-page "https://wiki.gnome.org/GnomeDocUtils")
-    (synopsis
-     "Documentation utilities for the Gnome project")
-    (description
-     "Gnome-doc-utils is a collection of documentation utilities for the
-Gnome project.  It includes xml2po tool which makes it easier to translate
-and keep up to date translations of documentation.")
-    (license license:gpl2+))) ; xslt under lgpl
-
 (define-public gnome-disk-utility
   (package
     (name "gnome-disk-utility")
@@ -2509,61 +2477,44 @@ GNOME Desktop.")
     (name "gnome-keyring")
     (version "40.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0cdrlcw814zayhvlaxqs1sm9bqlfijlp22dzzd0g5zg2isq4vlm3"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
-                   ;not exist
-       #:configure-flags
-       (list
-        (string-append "--with-pkcs11-config="
-                       (assoc-ref %outputs "out") "/share/p11-kit/modules/")
-        (string-append "--with-pkcs11-modules="
-                       (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-/bin/sh-reference
-           (lambda _
-             (substitute* "po/Makefile.in.in"
-               (("/bin/sh") (which "sh")))
-             #t))
-         (add-after 'unpack 'fix-docbook
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "docs/Makefile.am"
-               (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
-                (string-append (assoc-ref inputs "docbook-xsl")
-                               "/xml/xsl/docbook-xsl-"
-                               ,(package-version docbook-xsl)
-                               "/manpages/docbook.xsl")))
-             (setenv "XML_CATALOG_FILES"
-                     (string-append (assoc-ref inputs "docbook-xml")
-                                    "/xml/dtd/docbook/catalog.xml"))
-             ;; Rerun the whole thing to avoid version mismatch ("This is
-             ;; Automake 1.15.1, but the definition used by this
-             ;; AM_INIT_AUTOMAKE comes from Automake 1.15.").  Note: we don't
-             ;; use 'autoreconf' because it insists on running 'libtoolize'.
-             (invoke "autoconf")
-             (invoke "aclocal")
-             (invoke "automake" "-ac"))))))
+     (list
+      #:tests? #f  ;48 of 603 tests fail because /var/lib/dbus/machine-id does
+                                        ;not exist
+      #:configure-flags
+      #~(list
+         (string-append "--with-pkcs11-config="
+                        #$output "/share/p11-kit/modules/")
+         (string-append "--with-pkcs11-modules="
+                        #$output "/share/p11-kit/modules/"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-/bin/sh-reference
+            (lambda _
+              (substitute* "po/Makefile.in.in"
+                (("/bin/sh") (which "sh"))))))))
     (inputs
      (list libgcrypt linux-pam openssh dbus gcr))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")
-       ("glib" ,glib) ; for m4 macros
-       ("python" ,python-2) ;for tests
-       ("intltool" ,intltool)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("libxslt" ,libxslt) ;for documentation
-       ("docbook-xml" ,docbook-xml-4.3)
-       ("docbook-xsl" ,docbook-xsl)))
+     (list pkg-config
+           `(,glib "bin")
+           glib                         ;for m4 macros
+           python-wrapper               ;for tests
+           intltool
+           autoconf
+           automake
+           libxml2                      ;for XML_CATALOG_FILES
+           libxslt                      ;for documentation
+           docbook-xml
+           docbook-xsl))
     (propagated-inputs
      (list gcr))
     (home-page "https://www.gnome.org")
@@ -4757,35 +4708,6 @@ commercial X servers.  It is useful for creating XKB-related software (layout
 indicators etc).")
     (license license:lgpl2.0+)))
 
-(define-public python2-rsvg
-  ;; XXX: This is actually a subset of gnome-python-desktop.
-  (package
-    (name "python2-rsvg")
-    (version "2.32.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
-             version ".tar.bz2"))
-       (sha256
-        (base32
-         "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     (list python-2 python2-pygtk librsvg))
-    (home-page "https://www.gnome.org")
-    (synopsis "Python bindings to librsvg")
-    (description
-     "This package provides Python bindings to librsvg, the SVG rendering
-library.")
-
-    ;; This is the license of the rsvg bindings.  The license of each module
-    ;; of gnome-python-desktop is given in 'COPYING'.
-    (license license:lgpl2.1+)))
-
 (define-public glib-networking
   (package
     (name "glib-networking")
@@ -5010,13 +4932,6 @@ and the GLib main loop, to integrate well with GNOME applications.")
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)
        ("xsltproc" ,libxslt)))
-       ;; These are needed for the tests.
-       ;; FIXME: Add gjs once available.
-       ;("dbus" ,dbus)
-       ;("python2" ,python-2)
-       ;("python2-dbus" ,python2-dbus)
-       ;("python2-pygobject" ,python2-pygobject)
-       ;("python2-pygobject-2" ,python2-pygobject-2)))
     (propagated-inputs
      (list glib)) ; required by libsecret-1.pc
     (inputs
@@ -7279,7 +7194,7 @@ configuration program to choose applications starting on login.")
        ("xvfb" ,xorg-server-for-tests)))
     (propagated-inputs
      ;; These are all in the Requires.private field of gjs-1.0.pc.
-     (list cairo gobject-introspection mozjs-78))
+     (list cairo gobject-introspection mozjs))
     (inputs
      (list gtk+ readline))
     (synopsis "Javascript bindings for GNOME")
@@ -10202,7 +10117,7 @@ is suitable as a default application in a Desktop environment.")
 (define-public xpad
   (package
     (name "xpad")
-    (version "5.1.0")
+    (version "5.8.0")
     (source
      (origin
        (method url-fetch)
@@ -10211,13 +10126,13 @@ is suitable as a default application in a Desktop environment.")
                            name "-" version ".tar.bz2"))
        (sha256
         (base32
-         "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
+         "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake
            `(,gtk+ "bin") intltool pkg-config))
     (inputs
-     (list gtksourceview-3 libsm))
+     (list gtksourceview libsm))
     (home-page "https://wiki.gnome.org/Apps/Xpad")
     (synopsis "Virtual sticky note")
     (description
@@ -10437,14 +10352,6 @@ accessibility infrastructure.")
     (license license:lgpl2.0)
     (properties '((upstream-name . "pyatspi")))))
 
-(define-public python2-pyatspi
-  (package/inherit python-pyatspi
-    (name "python2-pyatspi")
-    (inputs
-     `(("python" ,python-2)))
-    (propagated-inputs
-     `(("python-pygobject" ,python2-pygobject)))))
-
 (define-public orca
   (package
     (name "orca")
@@ -12018,7 +11925,7 @@ GTK+.  It integrates well with the GNOME desktop environment.")
            python-pygobject
            python-pyenchant
            python-pypandoc
-           webkitgtk))
+           webkitgtk-with-libsoup2))
     (native-inputs
      (list gettext-minimal
            `(,glib "bin")
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index cde7427d07..c9b233c1e4 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -21,6 +21,7 @@
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
 ;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -532,9 +533,6 @@ cryptographic library.  It is developed in the GPGME source code, and then
 distributed separately.")
     (license license:lgpl2.1+)))
 
-(define-public python2-gpg
-  (package-with-python2 python-gpg))
-
 (define-public python-pygpgme
   (package
     (name "python-pygpgme")
@@ -570,9 +568,6 @@ distributed separately.")
 decrypt messages using the OpenPGP format by making use of GPGME.")
     (license license:lgpl2.1+)))
 
-(define-public python2-pygpgme
-  (package-with-python2 python-pygpgme))
-
 (define-public python-gnupg
   (package
     (name "python-gnupg")
@@ -644,44 +639,38 @@ signing, decryption, verification, and key-listing parsing.")
 
 (define-public pius
   (package
-   (name "pius")
-   (version "2.2.7")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append
-                  "https://github.com/jaymzh/pius/releases/download/v"
-                  version "/pius-" version ".tar.bz2"))
-            (sha256
-             (base32
-              "1nsl7czicv95j0gfz4s82ys3g3h2mwr6cq3ilid8bpz3iy7z4ipy"))))
-   (build-system python-build-system)
-   (inputs `(("perl" ,perl)             ; for 'pius-party-worksheet'
-             ("gpg" ,gnupg)
-             ("python-six" ,python2-six)))
-   (arguments
-    `(#:tests? #f
-      #:python ,python-2                ; uses the Python 2 'print' syntax
-      #:phases
-      (modify-phases %standard-phases
-        (add-before
-         'build 'set-gpg-file-name
-         (lambda* (#:key inputs outputs #:allow-other-keys)
-           (let* ((gpg (search-input-file inputs "/bin/gpg")))
+    (name "pius")
+    (version "3.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/jaymzh/pius/releases/download/v"
+                    version "/pius-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "11fhmfvr0avxl222rv43wjd2xjbpxrsmcl8xwmn0nvf1rw95v9fn"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'set-gpg-file-name
+           (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "libpius/constants.py"
-               (("/usr/bin/gpg2") gpg))
-             #t))))))
-   (synopsis "Programs to simplify GnuPG key signing")
-   (description
-    "Pius (PGP Individual UID Signer) helps attendees of PGP keysigning
+               (("/usr/bin/gpg2")
+                (search-input-file inputs "bin/gpg"))))))))
+    (inputs (list perl                  ;for 'pius-party-worksheet'
+                  gnupg))
+    (synopsis "Programs to simplify GnuPG key signing")
+    (description
+     "Pius (PGP Individual UID Signer) helps attendees of PGP key signing
 parties.  It is the main utility and makes it possible to quickly and easily
 sign each UID on a set of PGP keys.  It is designed to take the pain out of
-the sign-all-the-keys part of PGP Keysigning Party while adding security
-to the process.
-
-pius-keyring-mgr and pius-party-worksheet help organisers of
-PGP keysigning parties.")
-   (license license:gpl2)
-   (home-page "https://www.phildev.net/pius/index.shtml")))
+the sign-all-the-keys part of PGP key signing parties while adding security to
+the process.  The @command{pius-keyring-mgr} and
+@command{pius-party-worksheet} commands help organizers of PGP key signing
+parties.")
+    (license license:gpl2)
+    (home-page "https://www.phildev.net/pius/index.shtml")))
 
 (define-public signing-party
   (package
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 96c51cf8db..41dd32955d 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Baptiste Strazzul <bstrazzull@hotmail.fr>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -96,356 +96,6 @@
 (define-public mozjs
   (package
     (name "mozjs")
-    (version "17.0.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://ftp.mozilla.org/pub/mozilla.org/js/"
-                   name version ".tar.gz"))
-             (sha256
-              (base32
-               "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij"))
-             (patches (search-patches "mozjs17-aarch64-support.patch"))
-             (modules '((guix build utils)))
-             (snippet
-              ;; Fix incompatibility with Perl 5.22+.
-              '(begin
-                 (substitute* '("js/src/config/milestone.pl")
-                   (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))
-                 #t))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)))
-    (propagated-inputs
-     (list nspr)) ; in the Requires.private field of mozjs-17.0.pc
-    (inputs
-     (list zlib))
-    (arguments
-     `(;; XXX: parallel build fails, lacking:
-       ;;   mkdir -p "system_wrapper_js/"
-       #:parallel-build? #f
-       #:make-flags '("CXXFLAGS=-fpermissive")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'delete-timedout-test
-           ;; This test times out on slower hardware.
-           (lambda _
-             (delete-file "js/src/jit-test/tests/basic/bug698584.js")
-             #t))
-         (add-before 'configure 'chdir
-           (lambda _
-             (chdir "js/src")
-             #t))
-         (replace 'configure
-           ;; configure fails if it is followed by SHELL and CONFIG_SHELL
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (setenv "SHELL" (which "sh"))
-               (setenv "CONFIG_SHELL" (which "sh"))
-               (invoke "./configure" (string-append "--prefix=" out)
-                       ,@(if (string=? "aarch64-linux"
-                                       (%current-system))
-                             '("--host=aarch64-unknown-linux-gnu")
-                             '()))))))))
-    (home-page
-     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey")
-    (synopsis "Mozilla javascript engine")
-    (description "SpiderMonkey is Mozilla's JavaScript engine written
-in C/C++.")
-    (license license:mpl2.0))) ; and others for some files
-
-(define-public mozjs-24
-  (package (inherit mozjs)
-    (name "mozjs")
-    (version "24.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://ftp.mozilla.org/pub/mozilla.org/js/"
-                    name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6"))
-              (modules '((guix build utils)))
-              (patches (search-patches "mozjs24-aarch64-support.patch"))
-              (snippet
-               ;; Fix incompatibility with Perl 5.22+.
-               '(begin
-                  (substitute* '("js/src/config/milestone.pl")
-                    (("defined\\(@TEMPLATE_FILE)") "@TEMPLATE_FILE"))
-                  #t))))
-    (arguments
-      (substitute-keyword-arguments (package-arguments mozjs)
-        ((#:phases phases)
-         `(modify-phases ,phases
-            (replace 'configure
-              (lambda* (#:key outputs #:allow-other-keys)
-                (let ((out (assoc-ref outputs "out")))
-                  ;; configure fails if it is followed by SHELL and CONFIG_SHELL
-                  (setenv "SHELL" (which "sh"))
-                  (setenv "CONFIG_SHELL" (which "sh"))
-                  (invoke "./configure"
-                          (string-append "--prefix=" out)
-                          "--with-system-nspr"
-                          "--enable-system-ffi"
-                          "--enable-threadsafe"
-                          ,@(if (string=? "aarch64-linux"
-                                          (%current-system))
-                                '("--host=aarch64-unknown-linux-gnu")
-                                '())))))))))
-    (inputs
-     (list libffi zlib))))
-
-(define-public mozjs-38
-  (package
-    (inherit mozjs)
-    (name "mozjs")
-    (version "38.2.1.rc0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://anduin.linuxfromscratch.org/BLFS/mozjs/"
-                    name "-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681"))
-              (patches
-               (search-patches
-                ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1269317 for
-                ;; GCC 6 compatibility.
-
-                "mozjs38-version-detection.patch" ; for 0ad
-                "mozjs38-tracelogger.patch"
-
-                ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1339931.
-                "mozjs38-pkg-config-version.patch"
-                "mozjs38-shell-version.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; Fix incompatibility with sed 4.4.
-                  (substitute* "js/src/configure"
-                    (("\\^\\[:space:\\]") "^[[:space:]]"))
-
-                  ;; The headers are symlinks to files that are in /tmp, so they
-                  ;; end up broken.  Copy them instead.
-                  (substitute*
-                      "python/mozbuild/mozbuild/backend/recursivemake.py"
-                    (("\\['dist_include'\\].add_symlink")
-                     "['dist_include'].add_copy"))
-
-                  ;; Remove bundled libraries.
-                  (for-each delete-file-recursively
-                            '("intl"
-                              "js/src/ctypes/libffi"
-                              "js/src/ctypes/libffi-patches"
-                              "modules/zlib"))
-                  #t))))
-    (arguments
-     `(;; XXX: parallel build fails, lacking:
-       ;;   mkdir -p "system_wrapper_js/"
-       #:parallel-build? #f
-       ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1008470.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (chdir "js/src")
-               (setenv "SHELL" (which "sh"))
-               (setenv "CONFIG_SHELL" (which "sh"))
-               (invoke "./configure"
-                       (string-append "--prefix=" out)
-                       "--enable-ctypes"
-                       "--enable-gcgenerational"
-                       "--enable-optimize"
-                       "--enable-pie"
-                       "--enable-readline"
-                       "--enable-shared-js"
-                       "--enable-system-ffi"
-                       "--enable-threadsafe"
-                       "--enable-xterm-updates"
-                       "--with-system-icu"
-                       "--with-system-nspr"
-                       "--with-system-zlib"
-
-                       ;; Intl API requires bundled ICU.
-                       "--without-intl-api")))))))
-    (native-inputs
-     `(("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python-2" ,python-2)))
-    (inputs
-     (list libffi readline icu4c zlib))))
-
-(define-public mozjs-52
-  ;; No releases yet at <https://archive.mozilla.org/pub/spidermonkey/releases/>.
-  ;; While we could take a snapshot of the complete mozilla-esr52 repository at
-  ;; <https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr52&filter-searchStr=sm-tc>,
-  ;; we take the Debian version instead, because it is easier to work with.
-  (let ((commit "6507e63cc416fd7a3269e390efe712f8b56f374a")
-        (revision "1"))
-    (package (inherit mozjs-38)
-      (version (git-version "52.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://salsa.debian.org/gnome-team/mozjs52.git")
-                      (commit commit)))
-                (file-name (git-file-name "mozjs" version))
-                (sha256
-                 (base32
-                  "1ny0s53r8wn4byys87h784xrq1xg767akmfm6gqrbvrz57mlm3q2"))))
-      (arguments
-       `(#:tests? #f ; depends on repository metadata
-         #:configure-flags
-         '("--enable-ctypes"
-           "--enable-optimize"
-           "--enable-pie"
-           "--enable-readline"
-           "--enable-shared-js"
-           "--enable-system-ffi"
-           "--with-system-icu"
-           "--with-system-nspr"
-           "--with-system-zlib"
-
-           ;; Intl API requires bundled ICU.
-           "--without-intl-api"
-
-           ;; Without this gnome-shell will crash at runtime.
-           "--disable-jemalloc")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-and-chdir
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; This patch prevents a segfault when executing JS_Init().
-               ;; The build does not fail without this patch, but the
-               ;; configure phase of the gjs package would fail.
-               ;; See https://bugzilla.mozilla.org/show_bug.cgi?id=1176787
-               (make-file-writable "js/src/old-configure.in")
-               (make-file-writable "js/src/old-configure")
-               (make-file-writable "mozglue/build/moz.build")
-               (invoke "patch" "-p1" "--force"
-                       "--input" "debian/patches/disable-mozglue.patch")
-               (invoke "touch" "js/src/configure")
-               (chdir "js/src")
-               #t))
-           (replace 'configure
-             (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
-               ;; The configure script does not accept environment variables
-               ;; as arguments.
-               (let ((out (assoc-ref outputs "out")))
-                 (setenv "SHELL" (which "sh"))
-                 (setenv "CONFIG_SHELL" (which "sh"))
-                 (setenv "AUTOCONF" (which "autoconf"))
-                 (apply invoke "./configure"
-                        (cons (string-append "--prefix=" out)
-                              configure-flags))))))))
-      (native-inputs
-       (modify-inputs (package-native-inputs mozjs-38)
-         (prepend autoconf-2.13 automake))))))
-
-(define-public mozjs-60
-  ;; No releases yet at <https://archive.mozilla.org/pub/spidermonkey/releases/>.
-  ;; While we could take a snapshot of the complete mozilla-esr60 repository at
-  ;; <https://treeherder.mozilla.org/#/jobs?repo=mozilla-esr60&filter-searchStr=sm-tc>,
-  ;; we take the Debian version instead, because it is easier to work with.
-  (package
-    (inherit mozjs-38)
-    (version "60.2.3-4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://salsa.debian.org/gnome-team/mozjs60.git")
-                    (commit (string-append "debian/" version))))
-              (file-name (git-file-name "mozjs" version))
-              (sha256
-               (base32
-                "1xl6avsj9gkgma71p56jzs7nasc767k3n1frnmri5pad4rj94bij"))
-              (patches (search-patches "mozjs60-riscv64-support.patch"))))
-    (arguments
-     `(#:tests? #f ; FIXME: all tests pass, but then the check phase fails anyway.
-       #:test-target "check-jstests"
-       #:configure-flags
-       ,#~(quasiquote
-           ("--enable-ctypes"
-            "--enable-optimize"
-            "--enable-pie"
-            "--enable-readline"
-            "--enable-shared-js"
-            "--enable-system-ffi"
-            "--with-system-nspr"
-            #$@(if (%current-target-system)
-                   #~(,(string-append "--with-nspr-prefix="
-                                      #$(this-package-input "nspr")))
-                   #~())
-            "--with-system-zlib"
-            "--with-system-icu"
-            "--with-intl-api"
-            ;; This is important because without it gjs will segfault during the
-            ;; configure phase.  With jemalloc only the standalone mozjs console
-            ;; will work.
-            "--disable-jemalloc"
-            ;; Mozilla deviates from Autotools conventions due to historical
-            ;; reasons.
-            #$@(if (%current-target-system)
-                   #~(#$(string-append
-                         "--host="
-                         (nix-system->gnu-triplet (%current-system)))
-                      #$(string-append "--target=" (%current-target-system)))
-                   #~())))
-       #:phases
-       (modify-phases %standard-phases
-         ;; Make sure pkg-config will be found.
-         ,@(if (%current-target-system)
-               `((add-before 'configure 'set-PKG-CONFIG
-                   (lambda _
-                     (setenv "PKG_CONFIG" ,(pkg-config-for-target)))))
-               '())
-         (replace 'configure
-           (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
-             ;; The configure script does not accept environment variables as
-             ;; arguments.  It also must be run from a different directory,
-             ;; but not the root directory either.
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir "run-configure-from-here")
-               (chdir "run-configure-from-here")
-               (setenv "SHELL" (which "sh"))
-               (setenv "CONFIG_SHELL" (which "sh"))
-               (setenv "AUTOCONF" (which "autoconf"))
-               (apply invoke "../js/src/configure"
-                      (cons (string-append "--prefix=" out)
-                            configure-flags))
-               #t)))
-         (add-after 'unpack 'update-config-scripts
-           (lambda* (#:key native-inputs inputs #:allow-other-keys)
-             (for-each (lambda (file)
-                             (install-file
-                               (search-input-file
-                                 (or native-inputs inputs)
-                                 (string-append "/bin/" file)) "build/autoconf"))
-                           '("config.guess" "config.sub"))))
-         (add-after 'unpack 'disable-broken-tests
-           (lambda _
-             ;; This test assumes that /bin exists and contains certain
-             ;; executables.
-             (delete-file "js/src/tests/shell/os.js")
-             #t)))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("config" ,config)
-       ("which" ,which)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)))))
-
-(define-public mozjs-78
-  (package
-    (inherit mozjs-60)
     (version "78.15.0")
     (source (origin
               (method url-fetch)
@@ -456,13 +106,16 @@ in C/C++.")
               (sha256
                (base32
                 "0l91cxdc5v9fps79ckb1kid4gw6v5qng1jd9zvaacwaiv628shx4"))))
+    (build-system gnu-build-system)
     (arguments
-     `(#:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
-       #:modules ((guix build cargo-utils)
+     (list
+      #:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
+      #:modules `((guix build cargo-utils)
                   ,@%gnu-build-system-modules)
-       #:test-target "check-jstests"
-       #:configure-flags
-       '(;; Disable debugging symbols to save space.
+      #:test-target "check-jstests"
+      #:configure-flags
+      #~(list
+         ;; Disable debugging symbols to save space.
          "--disable-debug"
          "--disable-debug-symbols"
          ;; This is important because without it gjs will segfault during the
@@ -483,109 +136,111 @@ in C/C++.")
          "--with-system-nspr"
          "--with-system-zlib"
          "--with-intl-api")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'patch-source-shebangs 'patch-cargo-checksums
-           (lambda _
-             (let ((null-hash
-                    "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
-               (for-each (lambda (file)
-                           (format #t "patching checksums in ~a~%" file)
-                           (substitute* file
-                             (("^checksum = \".*\"")
-                              (string-append "checksum = \"" null-hash "\""))))
-                         (find-files "." "Cargo\\.lock$"))
-               (for-each generate-all-checksums
-                         '("js" "third_party/rust"))
-               #t)))
-         (replace 'configure
-           (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
-             ;; The configure script does not accept environment variables as
-             ;; arguments.  It also must be run from a different directory,
-             ;; but not the root directory either.
-             (let ((out (assoc-ref outputs "out")))
-               (mkdir "run-configure-from-here")
-               (chdir "run-configure-from-here")
-               (setenv "SHELL" (which "sh"))
-               (setenv "CONFIG_SHELL" (which "sh"))
-               (setenv "AUTOCONF" (which "autoconf"))
-               (apply invoke "../js/src/configure"
-                      (cons (string-append "--prefix=" out)
-                            configure-flags))
-               #t)))
-         (add-after 'unpack 'adjust-for-icu-68
-           (lambda _
-             (with-directory-excursion "js/src/tests"
-               ;; The test suite expects a lightly patched ICU 67.  Since
-               ;; Guix is about to switch to ICU 68, massage the tests to
-               ;; work with that instead of patching ICU.  Try removing this
-               ;; phase for newer versions of mozjs.
-
-               ;; These tests look up locale names and expects to get
-               ;; "GB" instead of "UK".
-               (substitute* "non262/Intl/DisplayNames/language.js"
-                 (("Traditionell, GB")
-                  "Traditionell, UK"))
-               (substitute* "non262/Intl/DisplayNames/region.js"
-                 (("\"GB\": \"GB\"")
-                  "\"GB\": \"UK\""))
-
-               ;; XXX: Some localized time formats have changed, and
-               ;; substitution fails for accented characters, even though
-               ;; it works in the REPL(?).  Just delete these for now.
-               (delete-file "non262/Intl/Date/toLocaleString_timeZone.js")
-               (delete-file "non262/Intl/Date/toLocaleDateString_timeZone.js")
-
-               ;; Similarly, these get an unexpected "A" suffix when looking
-               ;; up a time in the "ar-MA-u-ca-islamicc" locale, which is
-               ;; tricky to substitute.
-               (delete-file "non262/Intl/DateTimeFormat/format_timeZone.js")
-               (delete-file "non262/Intl/DateTimeFormat/format.js")
-
-               ;; This file compares a generated list of ICU locale names
-               ;; with actual lookups.  Some have changed slightly, i.e.
-               ;; daf-Latn-ZZ -> daf-Latn-CI, so drop it for simplicity.
-               (delete-file "non262/Intl/Locale/likely-subtags-generated.js"))
-
-             #t))
-         (add-before 'check 'pre-check
-           (lambda _
-             (with-directory-excursion "../js/src/tests"
-               (substitute* "shell/os.js"
-                 ;; FIXME: Why does the killed process have an exit status?
-                 ((".*killed process should not have exitStatus.*")
-                  ""))
-
-               ;; XXX: Delete all tests that test time zone functionality,
-               ;; because the test suite uses /etc/localtime to figure out
-               ;; the offset from the hardware clock, which does not work
-               ;; in the build container.  See <tests/non262/Date/shell.js>.
-               (delete-file-recursively "non262/Date")
-               (delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js")
-
-               (setenv "JSTESTS_EXTRA_ARGS"
-                       (string-join
-                        (list
-                         ;; Do not run tests marked as "random".
-                         "--exclude-random"
-                         ;; Exclude web platform tests.
-                         "--wpt=disabled"
-                         ;; Respect the daemons configured number of jobs.
-                         (string-append "--worker-count="
-                                        (number->string (parallel-job-count)))))))
-             #t)))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'patch-source-shebangs 'patch-cargo-checksums
+            (lambda _
+              (let ((null-hash
+                     "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
+                (for-each (lambda (file)
+                            (format #t "patching checksums in ~a~%" file)
+                            (substitute* file
+                              (("^checksum = \".*\"")
+                               (string-append "checksum = \"" null-hash "\""))))
+                          (find-files "." "Cargo\\.lock$"))
+                (for-each generate-all-checksums
+                          '("js" "third_party/rust")))))
+          (replace 'configure
+            (lambda* (#:key inputs configure-flags #:allow-other-keys)
+              ;; The configure script does not accept environment variables as
+              ;; arguments.  It also must be run from a different directory,
+              ;; but not the root directory either.
+              (mkdir "run-configure-from-here")
+              (chdir "run-configure-from-here")
+              (setenv "SHELL" (which "sh"))
+              (setenv "CONFIG_SHELL" (which "sh"))
+              (setenv "AUTOCONF" (which "autoconf"))
+              (apply invoke "../js/src/configure"
+                     (cons (string-append "--prefix=" #$output)
+                           configure-flags))))
+          (add-after 'unpack 'adjust-for-icu-68
+            (lambda _
+              (with-directory-excursion "js/src/tests"
+                ;; The test suite expects a lightly patched ICU 67.  Since
+                ;; Guix is about to switch to ICU 68, massage the tests to
+                ;; work with that instead of patching ICU.  Try removing this
+                ;; phase for newer versions of mozjs.
+
+                ;; These tests look up locale names and expects to get
+                ;; "GB" instead of "UK".
+                (substitute* "non262/Intl/DisplayNames/language.js"
+                  (("Traditionell, GB")
+                   "Traditionell, UK"))
+                (substitute* "non262/Intl/DisplayNames/region.js"
+                  (("\"GB\": \"GB\"")
+                   "\"GB\": \"UK\""))
+
+                ;; XXX: Some localized time formats have changed, and
+                ;; substitution fails for accented characters, even though
+                ;; it works in the REPL(?).  Just delete these for now.
+                (delete-file "non262/Intl/Date/toLocaleString_timeZone.js")
+                (delete-file "non262/Intl/Date/toLocaleDateString_timeZone.js")
+
+                ;; Similarly, these get an unexpected "A" suffix when looking
+                ;; up a time in the "ar-MA-u-ca-islamicc" locale, which is
+                ;; tricky to substitute.
+                (delete-file "non262/Intl/DateTimeFormat/format_timeZone.js")
+                (delete-file "non262/Intl/DateTimeFormat/format.js")
+
+                ;; This file compares a generated list of ICU locale names
+                ;; with actual lookups.  Some have changed slightly, i.e.
+                ;; daf-Latn-ZZ -> daf-Latn-CI, so drop it for simplicity.
+                (delete-file "non262/Intl/Locale/likely-subtags-generated.js"))))
+          (add-before 'check 'pre-check
+            (lambda _
+              (with-directory-excursion "../js/src/tests"
+                (substitute* "shell/os.js"
+                  ;; FIXME: Why does the killed process have an exit status?
+                  ((".*killed process should not have exitStatus.*")
+                   ""))
+
+                ;; XXX: Delete all tests that test time zone functionality,
+                ;; because the test suite uses /etc/localtime to figure out
+                ;; the offset from the hardware clock, which does not work
+                ;; in the build container.  See <tests/non262/Date/shell.js>.
+                (delete-file-recursively "non262/Date")
+                (delete-file "non262/Intl/DateTimeFormat/tz-environment-variable.js")
+
+                (setenv "JSTESTS_EXTRA_ARGS"
+                        (string-join
+                         (list
+                          ;; Do not run tests marked as "random".
+                          "--exclude-random"
+                          ;; Exclude web platform tests.
+                          "--wpt=disabled"
+                          ;; Respect the daemons configured number of jobs.
+                          (string-append "--worker-count="
+                                         (number->string (parallel-job-count))))))))))))
     (native-inputs
-     `(("autoconf" ,autoconf-2.13)
-       ("automake" ,automake)
-       ;; TODO(staging): Use the default LLVM in the next rebuild cycle.
-       ("llvm" ,llvm-9)                 ;for llvm-objdump
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-3)
-       ("rust" ,rust)
-       ("cargo" ,rust "cargo")))
+     (list autoconf-2.13
+           automake
+           ;; TODO(staging): Use the default LLVM in the next rebuild cycle.
+           llvm-9                       ;for llvm-objdump
+           perl
+           pkg-config
+           python-3
+           rust
+           `(,rust "cargo")))
     (inputs
-     (list icu4c readline zlib))))
+     (list icu4c readline zlib))
+    (propagated-inputs
+     (list nspr))                ; in the Requires.private field of mozjs-*.pc
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey")
+    (synopsis "Mozilla javascript engine")
+    (description "SpiderMonkey is Mozilla's JavaScript engine written
+in C/C++.")
+    (license license:mpl2.0))) ; and others for some files
 
 (define mozilla-compare-locales
   (origin
@@ -716,8 +371,8 @@ in C/C++.")
 ;; XXXX: Workaround 'snippet' limitations.
 (define computed-origin-method (@@ (guix packages) computed-origin-method))
 
-(define %icecat-version "91.9.0-guix0-preview1")
-(define %icecat-build-id "20220503000000") ;must be of the form YYYYMMDDhhmmss
+(define %icecat-version "91.10.0-guix0-preview1")
+(define %icecat-build-id "20220531000000") ;must be of the form YYYYMMDDhhmmss
 
 ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
 ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -739,11 +394,11 @@ in C/C++.")
                   "firefox-" upstream-firefox-version ".source.tar.xz"))
             (sha256
              (base32
-              "175sakp772hx5c45zc1isbibhpvw7xb4l2lwaf9pvxig9j9ymgml"))))
+              "1fz11rmbb0qjcp84wz7hmq7wy1zh9bk6vk47xwhrinmmifrqqnl2"))))
 
-         (upstream-icecat-base-version "91.9.0") ; maybe older than base-version
+         (upstream-icecat-base-version "91.10.0") ; maybe older than base-version
          ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "d7d3e9a33d2b3b78a6e08060684580c72c0d6e93")
+         (gnuzilla-commit "4c39c619daf344f36962d958d809f6d42d3fce4e")
          (gnuzilla-source
           (origin
             (method git-fetch)
@@ -755,7 +410,7 @@ in C/C++.")
                                       (string-take gnuzilla-commit 8)))
             (sha256
              (base32
-              "0mp6mknnhha88932v6pmfadjbnnvkcrsi1ljmcrcz7pb9y81gxn0"))))
+              "1fizsq0dphm40nj6vnvjp87v34iyg78gllv3jp5ssn43ln4jiyb7"))))
 
          ;; 'search-patch' returns either a valid file name or #f, so wrap it
          ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
@@ -904,162 +559,156 @@ in C/C++.")
     (source icecat-source)
     (build-system gnu-build-system)
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("bzip2" ,bzip2)
-       ("cups" ,cups)
-       ("dbus-glib" ,dbus-glib)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtk+-2" ,gtk+-2)
-       ;; UNBUNDLE-ME! ("graphite2" ,graphite2)
-       ("cairo" ,cairo)
-       ("pango" ,pango)
-       ("freetype" ,freetype)
-       ("font-dejavu" ,font-dejavu)
-       ;; UNBUNDLE-ME! ("harfbuzz" ,harfbuzz)
-       ("libcanberra" ,libcanberra)
-       ("libgnome" ,libgnome)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng-apng" ,libpng-apng)
-       ;; UNBUNDLE-ME! ("libogg" ,libogg)
-       ;; UNBUNDLE-ME! ("libtheora" ,libtheora) ; wants theora-1.2, not yet released
-       ;; UNBUNDLE-ME! ("libvorbis" ,libvorbis)
-       ("libxft" ,libxft)
-       ("libevent" ,libevent)
-       ("libxinerama" ,libxinerama)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("libxcomposite" ,libxcomposite)
-       ("libxt" ,libxt)
-       ("libffi" ,libffi)
-       ("ffmpeg" ,ffmpeg)
-       ("libvpx" ,libvpx)
-       ("icu4c" ,icu4c)
-       ("pixman" ,pixman)
-       ("pulseaudio" ,pulseaudio)
-       ("mesa" ,mesa)
-       ("pciutils" ,pciutils)
-       ("mit-krb5" ,mit-krb5)
-       ("hunspell" ,hunspell)
-       ("libnotify" ,libnotify)
-       ;; See <https://bugs.gnu.org/32833>
-       ;;   and related comments in the 'remove-bundled-libraries' phase.
-       ;; UNBUNDLE-ME! ("nspr" ,nspr)
-       ;; UNBUNDLE-ME! ("nss" ,nss)
-       ("shared-mime-info" ,shared-mime-info)
-       ("sqlite" ,sqlite)
-       ("eudev" ,eudev)
-       ("unzip" ,unzip)
-       ("zip" ,zip)
-       ("zlib" ,zlib)))
+     (list alsa-lib
+           bzip2
+           cups
+           dbus-glib
+           gdk-pixbuf
+           glib
+           gtk+
+           gtk+-2
+           ;; UNBUNDLE-ME! graphite2
+           cairo
+           pango
+           freetype
+           font-dejavu
+           ;; UNBUNDLE-ME! harfbuzz
+           libcanberra
+           libgnome
+           libjpeg-turbo
+           libpng-apng
+           ;; UNBUNDLE-ME! libogg
+           ;; UNBUNDLE-ME! libtheora ; wants theora-1.2, not yet released
+           ;; UNBUNDLE-ME! libvorbis
+           libxft
+           libevent
+           libxinerama
+           libxscrnsaver
+           libxcomposite
+           libxt
+           libffi
+           ffmpeg
+           libvpx
+           icu4c
+           pixman
+           pulseaudio
+           mesa
+           pciutils
+           mit-krb5
+           hunspell
+           libnotify
+           ;; See <https://bugs.gnu.org/32833>
+           ;;   and related comments in the 'remove-bundled-libraries' phase.
+           ;; UNBUNDLE-ME! nspr
+           ;; UNBUNDLE-ME! nss
+           shared-mime-info
+           sqlite
+           eudev
+           unzip
+           zip
+           zlib))
     (native-inputs
      ;; The following patches are specific to the Guix packaging of IceCat,
      ;; and therefore we prefer to leave them out of 'source', which should be
      ;; a tarball suitable for compilation on any system that IceCat supports.
      ;; (Bug fixes and security fixes, however, should go in 'source').
-     `(;; XXX TODO: Adapt these patches to IceCat 91.
-       ;; ("icecat-avoid-bundled-libraries.patch"
-       ;;  ,(search-patch "icecat-avoid-bundled-libraries.patch"))
-       ;; ("icecat-use-system-graphite2+harfbuzz.patch"
-       ;;  ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
-       ;; ("icecat-use-system-media-libs.patch"
-       ;;  ,(search-patch "icecat-use-system-media-libs.patch"))
-
-       ("patch" ,(canonical-package patch))
-
-       ("rust" ,rust)
-       ("cargo" ,rust "cargo")
-       ("rust-cbindgen" ,rust-cbindgen-0.19)
-       ("llvm" ,llvm-11)
-       ("clang" ,clang-11)
-       ("perl" ,perl)
-       ("node" ,node)
-       ("python" ,python)
-       ("python-2" ,python-2)
-       ("python2-pysqlite" ,python2-pysqlite)
-       ("yasm" ,yasm)
-       ("nasm" ,nasm)  ; XXX FIXME: only needed on x86_64 and i686
-       ("pkg-config" ,pkg-config)
-       ("m4" ,m4)
-       ("which" ,which)))
+     (list
+      ;; XXX TODO: Adapt these patches to IceCat 91.
+      ;; ("icecat-avoid-bundled-libraries.patch"
+      ;;  ,(search-patch "icecat-avoid-bundled-libraries.patch"))
+      ;; ("icecat-use-system-graphite2+harfbuzz.patch"
+      ;;  ,(search-patch "icecat-use-system-graphite2+harfbuzz.patch"))
+      ;; ("icecat-use-system-media-libs.patch"
+      ;;  ,(search-patch "icecat-use-system-media-libs.patch"))
+      rust
+      `(,rust "cargo")
+      rust-cbindgen-0.19
+      llvm-11
+      clang-11
+      perl
+      node
+      python-wrapper
+      yasm
+      nasm                         ; XXX FIXME: only needed on x86_64 and i686
+      pkg-config
+      m4
+      which))
     (arguments
-     `(#:tests? #f  ;not worth the cost
-
-       ;; Some dynamic lib was determined at runtime, so rpath check may fail.
-       #:validate-runpath? #f
-
-       #:configure-flags `("--enable-application=browser"
-                           "--with-distribution-id=org.gnu"
-                           "--enable-geckodriver"
-                           ;; Do not require addons in the global app or
-                           ;; system directories to be signed by Mozilla.
-                           "--with-unsigned-addon-scopes=app,system"
-                           "--allow-addon-sideload"
-
-                           "--enable-pulseaudio"
-
-                           "--disable-tests"
-                           "--disable-updater"
-                           "--disable-crashreporter"
-                           "--disable-eme"
-
-                           ;; Building with debugging symbols takes ~5GiB, so
-                           ;; disable it.
-                           "--disable-debug"
-                           "--disable-debug-symbols"
-
-                           "--enable-rust-simd"
-                           "--enable-release"
-                           "--enable-optimize"
-                           "--enable-strip"
-                           "--disable-elf-hack"
-
-                           ;; Clang is needed to build Stylo, Mozilla's new
-                           ;; CSS engine.  We must specify the clang paths
-                           ;; manually, because otherwise the Mozilla build
-                           ;; system looks in the directories returned by
-                           ;; llvm-config --bindir and llvm-config --libdir,
-                           ;; which return paths in the llvm package where
-                           ;; clang is not found.
-                           ,(string-append "--with-clang-path="
-                                           (assoc-ref %build-inputs "clang")
-                                           "/bin/clang")
-                           ,(string-append "--with-libclang-path="
-                                           (assoc-ref %build-inputs "clang")
-                                           "/lib")
-
-                           ;; Hack to work around missing
-                           ;; "unofficial" branding in icecat.
-                           "--enable-official-branding"
+     (list
+      #:tests? #f                       ;not worth the cost
+
+      ;; Some dynamic lib was determined at runtime, so rpath check may fail.
+      #:validate-runpath? #f
+
+      #:configure-flags
+      #~(list
+         "--enable-application=browser"
+         "--with-distribution-id=org.gnu"
+         "--enable-geckodriver"
+         ;; Do not require addons in the global app or system directories to
+         ;; be signed by Mozilla.
+         "--with-unsigned-addon-scopes=app,system"
+         "--allow-addon-sideload"
+
+         "--enable-pulseaudio"
+
+         "--disable-tests"
+         "--disable-updater"
+         "--disable-crashreporter"
+         "--disable-eme"
+
+         ;; Building with debugging symbols takes ~5GiB, so disable it.
+         "--disable-debug"
+         "--disable-debug-symbols"
 
-                           ;; Avoid bundled libraries.
-                           "--with-system-jpeg"        ; must be libjpeg-turbo
-                           "--with-system-png"         ; must be libpng-apng
-                           "--with-system-zlib"
-                           ;; UNBUNDLE-ME! "--with-system-bz2"
-                           ;; UNBUNDLE-ME! "--with-system-libevent"
-                           ;; UNBUNDLE-ME! "--with-system-ogg"
-                           ;; UNBUNDLE-ME! "--with-system-vorbis"
-                           ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released
-                           ;; UNBUNDLE-ME! "--with-system-libvpx"
-                           "--with-system-icu"
+         "--enable-rust-simd"
+         "--enable-release"
+         "--enable-optimize"
+         "--enable-strip"
+         "--disable-elf-hack"
+
+         ;; Clang is needed to build Stylo, Mozilla's new CSS engine.  We must
+         ;; specify the clang paths manually, because otherwise the Mozilla
+         ;; build system looks in the directories returned by llvm-config
+         ;; --bindir and llvm-config --libdir, which return paths in the llvm
+         ;; package where clang is not found.
+         (string-append "--with-clang-path="
+                        (search-input-file %build-inputs "bin/clang"))
+         (string-append "--with-libclang-path="
+                        (dirname (search-input-file %build-inputs
+                                                    "lib/libclang.so")))
+
+         ;; Hack to work around missing "unofficial" branding in icecat.
+         "--enable-official-branding"
+
+         ;; Avoid bundled libraries.
+         "--with-system-jpeg"           ;must be libjpeg-turbo
+         "--with-system-png"            ;must be libpng-apng
+         "--with-system-zlib"
+         ;; UNBUNDLE-ME! "--with-system-bz2"
+         ;; UNBUNDLE-ME! "--with-system-libevent"
+         ;; UNBUNDLE-ME! "--with-system-ogg"
+         ;; UNBUNDLE-ME! "--with-system-vorbis"
+         ;; UNBUNDLE-ME! "--with-system-theora" ; wants theora-1.2, not yet released
+         ;; UNBUNDLE-ME! "--with-system-libvpx"
+         "--with-system-icu"
 
-                           ;; See <https://bugs.gnu.org/32833>
-                           ;;   and related comments in the
-                           ;;   'remove-bundled-libraries' phase below.
-                           ;; UNBUNDLE-ME! "--with-system-nspr"
-                           ;; UNBUNDLE-ME! "--with-system-nss"
+         ;; See <https://bugs.gnu.org/32833>
+         ;;   and related comments in the
+         ;;   'remove-bundled-libraries' phase below.
+         ;; UNBUNDLE-ME! "--with-system-nspr"
+         ;; UNBUNDLE-ME! "--with-system-nss"
 
-                           ;; UNBUNDLE-ME! "--with-system-harfbuzz"
-                           ;; UNBUNDLE-ME! "--with-system-graphite2"
-                           "--enable-system-pixman"
-                           "--enable-system-ffi"
-                           ;; UNBUNDLE-ME! "--enable-system-sqlite"
-                           )
+         ;; UNBUNDLE-ME! "--with-system-harfbuzz"
+         ;; UNBUNDLE-ME! "--with-system-graphite2"
+         "--enable-system-pixman"
+         "--enable-system-ffi"
+         ;; UNBUNDLE-ME! "--enable-system-sqlite"
+         )
 
-       #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
+      #:imported-modules %cargo-utils-modules ;for `generate-all-checksums'
 
-       #:modules ((ice-9 ftw)
+      #:modules `((ice-9 ftw)
                   (ice-9 match)
                   (srfi srfi-1)
                   (srfi srfi-26)
@@ -1068,257 +717,247 @@ in C/C++.")
                   (guix elf)
                   (guix build gremlin)
                   ,@%gnu-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'apply-guix-specific-patches
-           (lambda* (#:key inputs native-inputs #:allow-other-keys)
-             (let ((patch (string-append (assoc-ref (or native-inputs inputs)
-                                                    "patch")
-                                         "/bin/patch")))
-               (for-each (match-lambda
-                           ((label . file)
-                            (when (and (string-prefix? "icecat-" label)
-                                       (string-suffix? ".patch" label))
-                              (format #t "applying '~a'...~%" file)
-                              (invoke patch "--force" "--no-backup-if-mismatch"
-                                      "-p1" "--input" file))))
-                         (or native-inputs inputs)))))
-         (add-after 'apply-guix-specific-patches 'remove-bundled-libraries
-           (lambda _
-             ;; Remove bundled libraries that we don't use, since they may
-             ;; contain unpatched security flaws, they waste disk space and
-             ;; memory, and may cause confusion.
-             (for-each (lambda (file)
-                         (format #t "deleting '~a'...~%" file)
-                         (delete-file-recursively file))
-                       '(;; FIXME: Removing the bundled icu breaks configure.
-                         ;;   * The bundled icu headers are used in some places.
-                         ;;   * The version number is taken from the bundled copy.
-                         ;;"intl/icu"
-                         ;;
-                         ;; FIXME: A script from the bundled nspr is used.
-                         ;;"nsprpub"
-                         ;;
-                         ;; FIXME: With the update to IceCat 60, using system NSS
-                         ;;        broke certificate validation.  See
-                         ;;        <https://bugs.gnu.org/32833>.  For now, we use
-                         ;;        the bundled NSPR and NSS.  TODO: Investigate,
-                         ;;        and try to unbundle these libraries again.
-                         ;; UNBUNDLE-ME! "security/nss"
-                         ;;
-                         ;; TODO: Use more system media libraries.  See:
-                         ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=517422>
-                         ;;   * libtheora: esr60 wants v1.2, not yet released.
-                         ;;   * soundtouch: avoiding the bundled library would
-                         ;;     result in some loss of functionality.  There's
-                         ;;     also an issue with exception handling
-                         ;;     configuration.  It seems that this is needed in
-                         ;;     some moz.build:
-                         ;;       DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1
-                         ;;   * libopus
-                         ;;   * speex
-                         ;;
-                         "modules/freetype2"
-                         ;; "media/libjpeg"  ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build
-                         ;; UNBUNDLE-ME! "modules/zlib"
-                         ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent"
-                         ;; UNBUNDLE-ME! "media/libvpx"
-                         ;; UNBUNDLE-ME! "media/libogg"
-                         ;; UNBUNDLE-ME! "media/libvorbis"
-                         ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released
-                         ;; UNBUNDLE-ME! "media/libtremor"
-                         ;; UNBUNDLE-ME! "gfx/harfbuzz"
-                         ;; UNBUNDLE-ME! "gfx/graphite2"
-                         "js/src/ctypes/libffi"
-                         ;; UNBUNDLE-ME! "db/sqlite3"
-                         ))))
-         (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
-                    (libavcodec (string-append ffmpeg "/lib/libavcodec.so")))
-               ;; Arrange to load libavcodec.so by its absolute file name.
-               (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp"
-                 (("libavcodec\\.so")
-                  libavcodec)))))
-         (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist
-           (lambda* (#:key inputs #:allow-other-keys)
-             (define (runpath-of lib)
-               (call-with-input-file lib
-                 (compose elf-dynamic-info-runpath
-                          elf-dynamic-info
-                          parse-elf
-                          get-bytevector-all)))
-             (define (runpaths-of-input label)
-               (let* ((dir (string-append (assoc-ref inputs label) "/lib"))
-                      (libs (find-files dir "\\.so$")))
-                 (append-map runpath-of libs)))
-             ;; Populate the sandbox read-path whitelist as needed by ffmpeg.
-             (let* ((whitelist
-                     (map (cut string-append <> "/")
-                          (delete-duplicates
-                           `(,(string-append (assoc-ref inputs "shared-mime-info")
-                                             "/share/mime")
-                             ,(string-append (assoc-ref inputs "font-dejavu")
-                                             "/share/fonts")
-                             "/run/current-system/profile/share/fonts"
-                             ,@(append-map runpaths-of-input
-                                           '("mesa" "ffmpeg"))))))
-                    (whitelist-string (string-join whitelist ","))
-                    (port (open-file "browser/app/profile/icecat.js" "a")))
-               (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%"
-                       whitelist-string)
-               (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%"
-                       whitelist-string)
-               (close-output-port port))))
-         (add-after 'patch-source-shebangs 'patch-cargo-checksums
-           (lambda _
-             (use-modules (guix build cargo-utils))
-             (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
-               (for-each (lambda (file)
-                           (format #t "patching checksums in ~a~%" file)
-                           (substitute* file
-                             (("^checksum = \".*\"")
-                              (string-append "checksum = \"" null-hash "\""))))
-                         (find-files "." "Cargo.lock$"))
-               (for-each generate-all-checksums
-                         '("services"
-                           "js"
-                           "third_party/rust"
-                           "dom/media"
-                           "dom/webauthn"
-                           "toolkit"
-                           "gfx"
-                           "storage"
-                           "modules"
-                           "xpcom/rust"
-                           "media"
-                           "mozglue/static/rust"
-                           "netwerk"
-                           "remote"
-                           "intl"
-                           "servo"
-                           "security/manager/ssl"
-                           "build")))))
-         (delete 'bootstrap)
-         (replace 'configure
-           ;; configure does not work followed by both "SHELL=..." and
-           ;; "CONFIG_SHELL=..."; set environment variables instead
-           (lambda* (#:key outputs configure-flags #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bash (which "bash"))
-                    (abs-srcdir (getcwd))
-                    (flags `(,(string-append "--prefix=" out)
-                             ,(string-append "--with-l10n-base="
-                                             abs-srcdir "/l10n")
-                             ,@configure-flags)))
-               (setenv "SHELL" bash)
-               (setenv "CONFIG_SHELL" bash)
-
-               (setenv "AR" "llvm-ar")
-               (setenv "NM" "llvm-nm")
-               (setenv "CC" "clang")
-               (setenv "CXX" "clang++")
-               (setenv "LDFLAGS" (string-append "-Wl,-rpath="
-                                                (assoc-ref outputs "out")
-                                                "/lib/icecat"))
-
-               (setenv "MACH_USE_SYSTEM_PYTHON" "1")
-               (setenv "MOZ_NOSPAM" "1")
-               (setenv "MOZ_BUILD_DATE" ,%icecat-build-id) ; avoid timestamp
-
-               (format #t "build directory: ~s~%" (getcwd))
-               (format #t "configure flags: ~s~%" flags)
-
-               (call-with-output-file "mozconfig"
-                 (lambda (out)
-                   (for-each (lambda (flag)
-                               (format out "ac_add_options ~a\n" flag))
-                             flags)))
-
-               (invoke "./mach" "configure"))))
-         (replace 'build
-           (lambda* (#:key (make-flags '()) (parallel-build? #t)
-                     #:allow-other-keys)
-             (apply invoke "./mach" "build"
-                    ;; mach will use parallel build if possible by default
-                    `(,@(if parallel-build?
-                            '()
-                            '("-j1"))
-                      ,@make-flags))))
-         (add-after 'build 'neutralise-store-references
-           (lambda _
-             ;; Mangle the store references to compilers & other build tools in
-             ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64.
-             (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>))
-                               ((dir) dir)))
-                    (file (string-append
-                           obj-dir
-                           "/dist/bin/chrome/toolkit/content/global/buildconfig.html")))
-               (substitute* file
-                 (("[0-9a-df-np-sv-z]{32}" hash)
-                  (string-append (string-take hash 8)
-                                 "<!-- Guix: not a runtime dependency -->"
-                                 (string-drop hash 8)))))))
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "./mach" "install")
-             ;; The geckodriver binary is not installed by the above, for some
-             ;; reason.  Use 'find-files' to avoid having to deal with the
-             ;; system/architecture-specific file name.
-             (install-file (first (find-files "." "geckodriver"))
-                           (string-append (assoc-ref outputs "out") "/bin"))))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib"))
-                    (gtk (assoc-ref inputs "gtk+"))
-                    (gtk-share (string-append gtk "/share"))
-                    (ld-libs (map (lambda (label)
-                                    (string-append (assoc-ref inputs label)
-                                                   "/lib"))
-                              '("libpng-apng"
-                                "libxscrnsaver"
-                                "mesa"
-                                "pciutils"
-                                "mit-krb5"
-                                "eudev"
-                                "pulseaudio"
-                                ;; For the integration of native notifications
-                                "libnotify"))))
-               (wrap-program (car (find-files lib "^icecat$"))
-                 `("XDG_DATA_DIRS" prefix (,gtk-share))
-                 ;; The following line is commented out because the icecat
-                 ;; package on guix has been observed to be unstable when
-                 ;; using wayland, and the bundled extensions stop working.
-                 ;;   `("MOZ_ENABLE_WAYLAND" = ("1"))
-                 `("LD_LIBRARY_PATH" prefix ,ld-libs)))))
-         (add-after 'wrap-program 'install-desktop-entry
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Install the '.desktop' file.
-             (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop")
-                    (out          (assoc-ref outputs "out"))
-                    (applications (string-append out "/share/applications")))
-               (substitute* desktop-file
-                 (("^Exec=icecat")     (string-append "Exec=" out "/bin/icecat"))
-                 (("IceCat")           "GNU IceCat")
-                 (("Icon=.*")          "Icon=icecat\n")
-                 (("NewWindow")        "new-window")
-                 (("NewPrivateWindow") "new-private-window"))
-               (install-file desktop-file applications))))
-         (add-after 'install-desktop-entry 'install-icons
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               (with-directory-excursion "browser/branding/official"
-                 (for-each
-                  (lambda (file)
-                    (let* ((size (string-filter char-numeric? file))
-                           (icons (string-append out "/share/icons/hicolor/"
-                                                 size "x" size "/apps")))
-                      (mkdir-p icons)
-                      (copy-file file (string-append icons "/icecat.png"))))
-                  '("default16.png" "default22.png" "default24.png"
-                    "default32.png" "default48.png" "content/icon64.png"
-                    "mozicon128.png" "default256.png")))))))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'apply-guix-specific-patches
+            (lambda* (#:key inputs native-inputs #:allow-other-keys)
+              (let ((patch (search-input-file inputs "bin/patch")))
+                (for-each (match-lambda
+                            ((label . file)
+                             (when (and (string-prefix? "icecat-" label)
+                                        (string-suffix? ".patch" label))
+                               (format #t "applying '~a'...~%" file)
+                               (invoke patch "--force" "--no-backup-if-mismatch"
+                                       "-p1" "--input" file))))
+                          (or native-inputs inputs)))))
+          (add-after 'apply-guix-specific-patches 'remove-bundled-libraries
+            (lambda _
+              ;; Remove bundled libraries that we don't use, since they may
+              ;; contain unpatched security flaws, they waste disk space and
+              ;; memory, and may cause confusion.
+              (for-each (lambda (file)
+                          (format #t "deleting '~a'...~%" file)
+                          (delete-file-recursively file))
+                        '( ;; FIXME: Removing the bundled icu breaks configure.
+                          ;;   * The bundled icu headers are used in some places.
+                          ;;   * The version number is taken from the bundled copy.
+                          ;;"intl/icu"
+                          ;;
+                          ;; FIXME: A script from the bundled nspr is used.
+                          ;;"nsprpub"
+                          ;;
+                          ;; FIXME: With the update to IceCat 60, using system NSS
+                          ;;        broke certificate validation.  See
+                          ;;        <https://bugs.gnu.org/32833>.  For now, we use
+                          ;;        the bundled NSPR and NSS.  TODO: Investigate,
+                          ;;        and try to unbundle these libraries again.
+                          ;; UNBUNDLE-ME! "security/nss"
+                          ;;
+                          ;; TODO: Use more system media libraries.  See:
+                          ;; <https://bugzilla.mozilla.org/show_bug.cgi?id=517422>
+                          ;;   * libtheora: esr60 wants v1.2, not yet released.
+                          ;;   * soundtouch: avoiding the bundled library would
+                          ;;     result in some loss of functionality.  There's
+                          ;;     also an issue with exception handling
+                          ;;     configuration.  It seems that this is needed in
+                          ;;     some moz.build:
+                          ;;       DEFINES['ST_NO_EXCEPTION_HANDLING'] = 1
+                          ;;   * libopus
+                          ;;   * speex
+                          ;;
+                          "modules/freetype2"
+                          ;; "media/libjpeg"  ; needed for now, because media/libjpeg/moz.build is referenced from config/external/moz.build
+                          ;; UNBUNDLE-ME! "modules/zlib"
+                          ;; UNBUNDLE-ME! "ipc/chromium/src/third_party/libevent"
+                          ;; UNBUNDLE-ME! "media/libvpx"
+                          ;; UNBUNDLE-ME! "media/libogg"
+                          ;; UNBUNDLE-ME! "media/libvorbis"
+                          ;; UNBUNDLE-ME! "media/libtheora" ; wants theora-1.2, not yet released
+                          ;; UNBUNDLE-ME! "media/libtremor"
+                          ;; UNBUNDLE-ME! "gfx/harfbuzz"
+                          ;; UNBUNDLE-ME! "gfx/graphite2"
+                          "js/src/ctypes/libffi"
+                          ;; UNBUNDLE-ME! "db/sqlite3"
+                          ))))
+          (add-after 'remove-bundled-libraries 'fix-ffmpeg-runtime-linker
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Arrange to load libavcodec.so by its absolute file name.
+              (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp"
+                (("libavcodec\\.so")
+                 (search-input-file inputs "lib/libavcodec.so")))))
+          (add-after 'fix-ffmpeg-runtime-linker 'build-sandbox-whitelist
+            (lambda* (#:key inputs #:allow-other-keys)
+              (define (runpath-of lib)
+                (call-with-input-file lib
+                  (compose elf-dynamic-info-runpath
+                           elf-dynamic-info
+                           parse-elf
+                           get-bytevector-all)))
+              (define (runpaths-of-input label)
+                (let* ((dir (string-append (assoc-ref inputs label) "/lib"))
+                       (libs (find-files dir "\\.so$")))
+                  (append-map runpath-of libs)))
+              ;; Populate the sandbox read-path whitelist as needed by ffmpeg.
+              (let* ((whitelist
+                      (map (cut string-append <> "/")
+                           (delete-duplicates
+                            `(,(string-append (assoc-ref inputs "shared-mime-info")
+                                              "/share/mime")
+                              ,(string-append (assoc-ref inputs "font-dejavu")
+                                              "/share/fonts")
+                              "/run/current-system/profile/share/fonts"
+                              ,@(append-map runpaths-of-input
+                                            '("mesa" "ffmpeg"))))))
+                     (whitelist-string (string-join whitelist ","))
+                     (port (open-file "browser/app/profile/icecat.js" "a")))
+                (format #t "setting 'security.sandbox.content.read_path_whitelist' to '~a'~%"
+                        whitelist-string)
+                (format port "~%pref(\"security.sandbox.content.read_path_whitelist\", ~S);~%"
+                        whitelist-string)
+                (close-output-port port))))
+          (add-after 'patch-source-shebangs 'patch-cargo-checksums
+            (lambda _
+              (use-modules (guix build cargo-utils))
+              (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
+                (for-each (lambda (file)
+                            (format #t "patching checksums in ~a~%" file)
+                            (substitute* file
+                              (("^checksum = \".*\"")
+                               (string-append "checksum = \"" null-hash "\""))))
+                          (find-files "." "Cargo.lock$"))
+                (for-each generate-all-checksums
+                          '("services"
+                            "js"
+                            "third_party/rust"
+                            "dom/media"
+                            "dom/webauthn"
+                            "toolkit"
+                            "gfx"
+                            "storage"
+                            "modules"
+                            "xpcom/rust"
+                            "media"
+                            "mozglue/static/rust"
+                            "netwerk"
+                            "remote"
+                            "intl"
+                            "servo"
+                            "security/manager/ssl"
+                            "build")))))
+          (delete 'bootstrap)
+          (replace 'configure
+            ;; configure does not work followed by both "SHELL=..." and
+            ;; "CONFIG_SHELL=..."; set environment variables instead
+            (lambda* (#:key outputs configure-flags #:allow-other-keys)
+              (let* ((bash (which "bash"))
+                     (abs-srcdir (getcwd))
+                     (flags `(,(string-append "--prefix=" #$output)
+                              ,(string-append "--with-l10n-base="
+                                              abs-srcdir "/l10n")
+                              ,@configure-flags)))
+                (setenv "SHELL" bash)
+                (setenv "CONFIG_SHELL" bash)
+
+                (setenv "AR" "llvm-ar")
+                (setenv "NM" "llvm-nm")
+                (setenv "CC" "clang")
+                (setenv "CXX" "clang++")
+                (setenv "LDFLAGS" (string-append "-Wl,-rpath="
+                                                 #$output "/lib/icecat"))
+
+                (setenv "MACH_USE_SYSTEM_PYTHON" "1")
+                (setenv "MOZ_NOSPAM" "1")
+                (setenv "MOZ_BUILD_DATE" #$%icecat-build-id) ; avoid timestamp
+
+                (format #t "build directory: ~s~%" (getcwd))
+                (format #t "configure flags: ~s~%" flags)
+
+                (call-with-output-file "mozconfig"
+                  (lambda (port)
+                    (for-each (lambda (flag)
+                                (format port "ac_add_options ~a\n" flag))
+                              flags)))
+
+                (invoke "./mach" "configure"))))
+          (replace 'build
+            (lambda* (#:key (make-flags '()) (parallel-build? #t)
+                      #:allow-other-keys)
+              (apply invoke "./mach" "build"
+                     ;; mach will use parallel build if possible by default
+                     `(,@(if parallel-build?
+                             '()
+                             '("-j1"))
+                       ,@make-flags))))
+          (add-after 'build 'neutralise-store-references
+            (lambda _
+              ;; Mangle the store references to compilers & other build tools in
+              ;; about:buildconfig, reducing IceCat's closure by 1 GiB on x86-64.
+              (let* ((obj-dir (match (scandir "." (cut string-prefix? "obj-" <>))
+                                ((dir) dir)))
+                     (file (string-append
+                            obj-dir
+                            "/dist/bin/chrome/toolkit/content/global/buildconfig.html")))
+                (substitute* file
+                  (("[0-9a-df-np-sv-z]{32}" hash)
+                   (string-append (string-take hash 8)
+                                  "<!-- Guix: not a runtime dependency -->"
+                                  (string-drop hash 8)))))))
+          (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (invoke "./mach" "install")
+              ;; The geckodriver binary is not installed by the above, for some
+              ;; reason.  Use 'find-files' to avoid having to deal with the
+              ;; system/architecture-specific file name.
+              (install-file (first (find-files "." "geckodriver"))
+                            (string-append #$output "/bin"))))
+          (add-after 'install 'wrap-program
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let* ((lib (string-append #$output "/lib"))
+                     (gtk #$(this-package-input "gtk+"))
+                     (gtk-share (string-append gtk "/share"))
+                     (ld-libs '#$(map (lambda (label)
+                                        (file-append (this-package-input label) "/lib"))
+                                      '("libpng-apng"
+                                        "libxscrnsaver"
+                                        "mesa"
+                                        "pciutils"
+                                        "mit-krb5"
+                                        "eudev"
+                                        "pulseaudio"
+                                        ;; For the integration of native notifications
+                                        "libnotify"))))
+                (wrap-program (car (find-files lib "^icecat$"))
+                  `("XDG_DATA_DIRS" prefix (,gtk-share))
+                  ;; The following line is commented out because the icecat
+                  ;; package on guix has been observed to be unstable when
+                  ;; using wayland, and the bundled extensions stop working.
+                  ;;   `("MOZ_ENABLE_WAYLAND" = ("1"))
+                  `("LD_LIBRARY_PATH" prefix ,ld-libs)))))
+          (add-after 'wrap-program 'install-desktop-entry
+            (lambda _
+              ;; Install the '.desktop' file.
+              (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop")
+                     (applications (string-append #$output "/share/applications")))
+                (substitute* desktop-file
+                  (("^Exec=icecat")     (string-append "Exec=" #$output "/bin/icecat"))
+                  (("IceCat")           "GNU IceCat")
+                  (("Icon=.*")          "Icon=icecat\n")
+                  (("NewWindow")        "new-window")
+                  (("NewPrivateWindow") "new-private-window"))
+                (install-file desktop-file applications))))
+          (add-after 'install-desktop-entry 'install-icons
+            (lambda _
+              (with-directory-excursion "browser/branding/official"
+                (for-each
+                 (lambda (file)
+                   (let* ((size (string-filter char-numeric? file))
+                          (icons (string-append #$output "/share/icons/hicolor/"
+                                                size "x" size "/apps")))
+                     (mkdir-p icons)
+                     (copy-file file (string-append icons "/icecat.png"))))
+                 '("default16.png" "default22.png" "default24.png"
+                   "default32.png" "default48.png" "content/icon64.png"
+                   "mozicon128.png" "default256.png"))))))))
     (home-page "https://www.gnu.org/software/gnuzilla/")
     (synopsis "Entirely free browser derived from Mozilla Firefox")
     (description
@@ -1350,7 +989,7 @@ standards of the IceCat project.")
     (arguments
      `(#:tests? #f                              ; no check target
        #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
-       #:modules ((guix build utils)    ;find-files
+       #:modules ((guix build utils)            ;find-files
                   (sxml simple)
                   (ice-9 regex)
                   ,@%gnu-build-system-modules)
@@ -1361,8 +1000,7 @@ standards of the IceCat project.")
              (mkdir "comm")
              (copy-recursively (assoc-ref inputs "thunderbird-sources")
                                "comm")
-             (delete-file "sourcestamp.txt")
-             #t))
+             (delete-file "sourcestamp.txt")))
          (add-after 'patch-source-shebangs 'patch-cargo-checksums
            (lambda _
              (use-modules (guix build cargo-utils))
@@ -1375,16 +1013,14 @@ standards of the IceCat project.")
                          (find-files "." "Cargo.lock$"))
                (for-each generate-all-checksums
                          '("third_party/rust"
-                           "toolkit/library/rust")))
-             #t))
+                           "toolkit/library/rust")))))
          ;; Fixes issue where each installation directory generates its own profile.
          ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
          (add-after 'patch-source-shebangs 'fix-profile-setting
            (lambda _
              (substitute* "comm/mail/moz.configure"
                (("MOZ_DEDICATED_PROFILES, True")
-                "MOZ_DEDICATED_PROFILES, False"))
-             #t))
+                "MOZ_DEDICATED_PROFILES, False"))))
          (add-after 'prepare-thunderbird-sources 'rename-to-icedove
            (lambda _
              (substitute* "comm/mail/confvars.sh"
@@ -1447,8 +1083,7 @@ standards of the IceCat project.")
                (("(pref\\(\"extensions.systemAddon.update.enabled\").*" _ m)
                 (string-append m ", false);"))
                (("(pref\\(\"lightweightThemes.update.enabled\").*" _ m)
-                (string-append m ", false);")))
-             #t))
+                (string-append m ", false);")))))
          (add-after 'build 'neutralize-store-references
            (lambda _
              ;; Mangle the store references to compilers & other build tools in
@@ -1464,8 +1099,7 @@ standards of the IceCat project.")
                 (string-append store
                                (string-take hash 8)
                                "<!-- Guix: not a runtime dependency -->"
-                               (string-drop hash 8))))
-             #t))
+                               (string-drop hash 8))))))
          (delete 'bootstrap)
          (replace 'configure
            (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
@@ -1567,8 +1201,7 @@ standards of the IceCat project.")
                             [Desktop Action ComposeMessage]~@
                             Name=Write new message~@
                             Exec=~@*~a/bin/icedove -compose~%"
-                           out))))
-             #t))
+                           out))))))
          (add-after 'install 'wrap-program
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -1581,47 +1214,46 @@ standards of the IceCat project.")
                     (eudev-lib (string-append eudev "/lib")))
                (wrap-program (car (find-files lib "^icedove$"))
                  `("XDG_DATA_DIRS" prefix (,gtk-share))
-                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib)))
-               #t))))))
+                 `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib)))))))))
     (inputs
-     `(("bzip2" ,bzip2)
-       ("cairo" ,cairo)
-       ("cups" ,cups)
-       ("dbus-glib" ,dbus-glib)
-       ("ffmpeg" ,ffmpeg)
-       ("freetype" ,freetype)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtk+-2" ,gtk+-2)
-       ("hunspell" ,hunspell)
-       ("icu4c" ,icu4c)
-       ("libcanberra" ,libcanberra)
-       ("libevent" ,libevent)
-       ("libffi" ,libffi)
-       ("libgnome" ,libgnome)
-       ("libjpeg-turbo" ,libjpeg-turbo)
-       ("libpng-apng" ,libpng-apng)
-       ("libvpx" ,libvpx)
-       ("libxcomposite" ,libxcomposite)
-       ("libxft" ,libxft)
-       ("libxinerama" ,libxinerama)
-       ("libxscrnsaver" ,libxscrnsaver)
-       ("libxt" ,libxt)
-       ("mesa" ,mesa)
-       ("mit-krb5" ,mit-krb5)
-       ("nspr" ,nspr-4.32)
-       ; FIXME: create nss >= 3.68 after core-updates merge
-       ;("nss" ,nss)
-       ("pango" ,pango)
-       ("pixman" ,pixman)
-       ("pulseaudio" ,pulseaudio)
-       ("sqlite" ,sqlite)
-       ("startup-notification" ,startup-notification)
-       ("eudev" ,eudev)
-       ("unzip" ,unzip)
-       ("zip" ,zip)
-       ("zlib" ,zlib)))
+     (list bzip2
+           cairo
+           cups
+           dbus-glib
+           ffmpeg
+           freetype
+           gdk-pixbuf
+           glib
+           gtk+
+           gtk+-2
+           hunspell
+           icu4c
+           libcanberra
+           libevent
+           libffi
+           libgnome
+           libjpeg-turbo
+           libpng-apng
+           libvpx
+           libxcomposite
+           libxft
+           libxinerama
+           libxscrnsaver
+           libxt
+           mesa
+           mit-krb5
+           nspr-4.32
+           ;; FIXME: create nss >= 3.68 after core-updates merge
+           ;;nss
+           pango
+           pixman
+           pulseaudio
+           sqlite
+           startup-notification
+           eudev
+           unzip
+           zip
+           zlib))
     (native-inputs
      `(("thunderbird-sources"
         ;; The changeset identifier is taken from the file "sourcestamp.txt"
@@ -1646,8 +1278,7 @@ standards of the IceCat project.")
        ("node" ,node)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)
-       ("python2" ,python-2.7)
+       ("python" ,python-wrapper)
        ("rust" ,rust)
        ("rust-cbindgen" ,rust-cbindgen-0.19)
        ("which" ,which)
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index 6d1575a0bd..0b8e76f676 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -495,14 +495,14 @@ Faiss library.")))
 (define-public python-leidenalg
   (package
     (name "python-leidenalg")
-    (version "0.7.0")
+    (version "0.8.10")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "leidenalg" version))
        (sha256
         (base32
-         "15fwld9hdw357rd026mzcwpah5liy4f33vc9x9kwy37g71b2rjf1"))))
+         "1hbvagp1yyazvl7cid7mii5263qi48lpkq543n5w71qysgz1f0v7"))))
     (build-system python-build-system)
     (arguments
      '(#:tests? #f                      ;tests are not included
@@ -510,12 +510,14 @@ Faiss library.")))
                   (add-after 'unpack 'fix-requirements
                     (lambda _
                       (substitute* "setup.py"
+                        (("self.external = False")
+                         "self.external = True")
+                        (("self.use_pkgconfig = False")
+                         "self.use_pkgconfig = True")
                         (("python-igraph >=")
                          "igraph >=")))))))
     (native-inputs
-     ;; XXX: setuptools >= 58 as shipped with Python 3.9+ removes support
-     ;; for lib2to3, so use this older variant.
-     (list pkg-config python-setuptools))
+     (list pkg-config python-setuptools-scm))
     (inputs
      (list igraph))
     (propagated-inputs
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index e966a82dbb..64286bf68d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1361,73 +1361,6 @@ realistic reflections, shading, perspective and other effects.")
     (home-page "http://www.povray.org/")
     (license license:agpl3+)))
 
-(define-public rapicorn
-  (package
-    (name "rapicorn")
-    (version "16.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://testbit.eu/pub/dists/rapicorn/"
-                                  "rapicorn-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d"))
-              (patches (search-patches "rapicorn-isnan.patch"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-tests
-           (lambda _
-             ;; Our grep does not support perl regular expressions.
-             (substitute* "taptool.sh"
-               (("grep -P") "grep -E"))
-             ;; Disable path tests because we cannot access /bin or /sbin.
-             (substitute* "rcore/tests/multitest.cc"
-               (("TCMP \\(Path::equals \\(\"/bin\"") "//"))
-             #t))
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; The test suite requires a running X server (with DISPLAY
-             ;; number 99 or higher).
-             (system "Xvfb :99 &")
-             (setenv "DISPLAY" ":99")
-             #t))
-         (add-after 'unpack 'replace-fhs-paths
-           (lambda _
-             (substitute* (cons "Makefile.decl"
-                                (find-files "." "^Makefile\\.in$"))
-               (("/bin/ls") (which "ls"))
-               (("/usr/bin/env") (which "env")))
-             #t)))))
-    ;; These libraries are listed in the "Required" section of the pkg-config
-    ;; file.
-    (propagated-inputs
-     (list librsvg cairo pango libxml2 python2-enum34))
-    (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("libpng" ,libpng-1.2)
-       ("readline" ,readline)
-       ("libcroco" ,libcroco)
-       ("python" ,python-2)
-       ("cython" ,python2-cython)))
-    (native-inputs
-     `(("pandoc" ,pandoc)
-       ("bison" ,bison)
-       ("flex" ,flex)
-       ("doxygen" ,doxygen)
-       ("graphviz" ,graphviz)
-       ("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)
-       ("xvfb" ,xorg-server-for-tests)))
-    (home-page "https://rapicorn.testbit.org/")
-    (synopsis "Toolkit for rapid development of user interfaces")
-    (description
-     "Rapicorn is a toolkit for rapid development of user interfaces in C++
-and Python.  The user interface is designed in a declarative markup language
-and is connected to the programming logic using data bindings and commands.")
-    (license license:mpl2.0)))
-
 (define-public ctl
   (package
     (name "ctl")
@@ -1593,9 +1526,6 @@ rendering @acronym{SVG, Scalable Vector Graphics}.")
 your terminal.")
     (license license:expat)))
 
-(define-public python2-pastel
-  (package-with-python2 python-pastel))
-
 (define-public fgallery
   (package
     (name "fgallery")
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index dfbb28a8a9..68d0741957 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -208,9 +208,6 @@ interfaces for other technical domains.")
 visualization tool suite.")
     (license license:expat)))
 
-(define-public python2-graphviz
-  (package-with-python2 python-graphviz))
-
 (define-public python-pygraphviz
   (package
     (name "python-pygraphviz")
@@ -403,9 +400,6 @@ can be used either as a standalone application, or as a Python library.")
 graphs in Graphviz's DOT language, written in pure Python.")
     (license license:expat)))
 
-(define-public python2-pydot
-  (package-with-python2 python-pydot))
-
 (define-public dot2tex
   (package
     (name "dot2tex")
@@ -418,11 +412,33 @@ graphs in Graphviz's DOT language, written in pure Python.")
                 "1kp77wiv7b5qib82i3y3sn9r49rym43aaqm5aw1bwnzfbbq2m6i9"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2))
-    (inputs
-     (list texlive-latex-preview graphviz))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv" "tests"
+                        ;; The test_semicolon test fails for unknown reason
+                        ;; (see:
+                        ;; https://github.com/kjellmf/dot2tex/issues/94).
+                        "-k" "not test_semicolon")))))))
+    (native-inputs (list python-pytest))
+    (inputs (list graphviz))
     (propagated-inputs
-     (list python2-pyparsing))
+     (list python-pyparsing
+           ;; These TeX dependencies are propagated to make it easier to build
+           ;; the resulting generated TeX files, which \usepackage them.
+           texlive-bin
+           texlive-amsmath
+           texlive-latex-geometry
+           texlive-latex-graphics
+           texlive-latex-base
+           texlive-latex-preview
+           texlive-latex-xkeyval
+           texlive-pgf
+           texlive-pstricks
+           texlive-xcolor))
     (home-page "https://github.com/kjellmf/dot2tex")
     (synopsis "Graphviz to LaTeX converter")
     (description
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 96297535ce..64bac20f3d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -24,12 +24,13 @@
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2022 Benjamin Slade <slade@lambda-y.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -52,6 +53,7 @@
   #:use-module (guix utils)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix bzr-download)
   #:use-module (guix git-download)
   #:use-module ((guix build utils) #:select (alist-replace))
   #:use-module (guix build-system cmake)
@@ -1918,96 +1920,9 @@ printing and other features typical of a source code editor.")
     (synopsis "Python bindings for cairo")
     (description
      "Pycairo is a set of Python bindings for the Cairo graphics library.")
-    (license license:lgpl3+)
-    (properties `((python2-variant . ,(delay python2-pycairo))))))
+    (license license:lgpl3+)))
 
 ;; Pycairo no longer supports Python 2 since version 1.19.0, so we stick
-;; with this older version here.
-(define-public python2-pycairo
-  (let ((pycairo (package-with-python2
-                  (strip-python2-variant python-pycairo))))
-    (package
-      (inherit pycairo)
-      (version "1.18.2")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append "https://github.com/pygobject/pycairo/releases"
-                                    "/download/v" version "/pycairo-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "0cb5n4r4nl0k1g90b1gz9iyk4lp7hi03db98i1p52a870bym7f6w"))))
-      ;; Dual-licensed under LGPL 2.1 or Mozilla Public License 1.1
-      (license (list license:lgpl2.1 license:mpl1.1)))))
-
-(define-public python2-pygtk
-  (package
-    (name "python2-pygtk")
-    (version "2.24.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources"
-                          "/pygtk/" (version-major+minor version)
-                          "/pygtk-" version ".tar.bz2"))
-      (sha256
-       (base32
-        "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d"))))
-    (build-system gnu-build-system)
-    (outputs '("out"
-               "doc"))                            ;13 MiB of gtk-doc HTML
-    (native-inputs
-     (list pkg-config))
-    (inputs
-     `(("python" ,python-2)
-
-       ;; XXX: The package fails to build with the latest Pango (propagated
-       ;; from GTK+2), so we provide it with this older version.
-       ("pango" ,pango-1.42)
-
-       ("libglade" ,libglade)
-       ("glib"   ,glib)))
-    (propagated-inputs
-     `(("python-pycairo"   ,python2-pycairo)     ;loaded at runtime
-       ("python-pygobject" ,python2-pygobject-2) ;referenced in pc file
-       ("gtk+"             ,gtk+-2)))
-    (arguments
-     `(#:tests? #f
-       #:phases (modify-phases %standard-phases
-                  (add-before 'configure 'set-gtk-doc-directory
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; Install documentation to "doc".
-                      (let ((doc (assoc-ref outputs "doc")))
-                        (substitute* "docs/Makefile.in"
-                          (("TARGET_DIR = \\$\\(datadir\\)")
-                           (string-append "TARGET_DIR = " doc))))))
-                  (add-after 'configure 'fix-codegen
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (substitute* "pygtk-codegen-2.0"
-                        (("^prefix=.*$")
-                         (string-append
-                          "prefix="
-                          (assoc-ref inputs "python-pygobject") "\n")))))
-                  (add-after 'install 'install-pth
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; pygtk's modules are stored in a subdirectory of
-                      ;; python's site-packages directory.  Add a .pth file so
-                      ;; that python will add that subdirectory to its module
-                      ;; search path.
-                      (let* ((out    (assoc-ref outputs "out"))
-                             (site   (string-append out "/lib/python"
-                                                    ,(version-major+minor
-                                                      (package-version python-2))
-                                                    "/site-packages")))
-                        (call-with-output-file (string-append site "/pygtk.pth")
-                          (lambda (port)
-                            (format port "gtk-2.0~%")))))))))
-    (home-page "http://www.pygtk.org/")
-    (synopsis "Python bindings for GTK+")
-    (description
-     "PyGTK allows you to write full featured GTK programs in Python.  It is
-targeted at GTK 2.x, and can be used in conjunction with gnome-python to
-write GNOME applications.")
-    (license license:lgpl2.1+)))
 
 (define-public perl-cairo
   (package
@@ -2546,7 +2461,7 @@ independent of your desktop environment, and supports global key bindings.")
 (define-public yad
   (package
     (name "yad")
-    (version "5.0")
+    (version "12.0")
     (source
      (origin
        (method git-fetch)
@@ -2555,7 +2470,7 @@ independent of your desktop environment, and supports global key bindings.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "07rd61hvilsxxrj7lf8c9k0a8glj07s48m7ya8d45030r90g3lvc"))))
+        (base32 "1nbbw4vwlxjlp83d35w54952b6rrn8qlr3d053lisqwl0hfcm7if"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:configure-flags
@@ -2630,64 +2545,85 @@ printed to standard output.")
    (license license:gpl3+)))
 
 (define-public libdbusmenu
-  (package
-    (name "libdbusmenu")
-    (version "16.04.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://launchpad.net/libdbusmenu/"
-                           (version-major+minor version) "/" version
-                           "/+download/libdbusmenu-" version ".tar.gz"))
-       (sha256
-        (base32 "12l7z8dhl917iy9h02sxmpclnhkdjryn08r8i4sr8l3lrlm4mk5r"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       '("--sysconfdir=/etc"
-         "--localstatedir=/var"
-         ;; The shebang of the generated test files should be patched before
-         ;; enabling tests.
-         "--disable-tests")
-       #:make-flags
-       `(,(string-append "typelibdir=" (assoc-ref %outputs "out")
-                         "/lib/girepository-1.0"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'do-not-treat-warnings-as-errors
-           (lambda _
-             ;; Prevent the build from failing due to deprecation warnings
-             ;; from newer GLib and GTK versions.
-             (substitute* (find-files "." "^Makefile.in$")
-               ((" -Werror")
-                ""))
-             #t))
-         (add-before 'configure 'set-environment
-           (lambda _
-             (setenv "HAVE_VALGRIND_TRUE" "")
-             (setenv "HAVE_VALGRIND_FALSE" "#")
-             #t)))))
-    (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtk+-2" ,gtk+-2)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gnome-doc-utils" ,gnome-doc-utils)
-       ("gobject-introspection" ,gobject-introspection)
-       ("intltool" ,intltool)
-       ("json-glib" ,json-glib)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2)
-       ("vala" ,vala)))
-    (home-page "https://launchpad.net/libdbusmenu")
-    (synopsis "Library for passing menus over DBus")
-    (description "@code{libdbusmenu} passes a menu structure across DBus so
+  (let ((bzr-revision "496"))
+    (package
+      (name "libdbusmenu")
+      (version (string-append "16.04.0" "-" bzr-revision))
+      (source
+       (origin
+         (method bzr-fetch)
+         (uri (bzr-reference
+               (url "lp:libdbusmenu")
+               (revision bzr-revision)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "1rnp86r8f2xjcbk6jjl6np1qdhc3d7fj1c3ggn0gbv2kksc8r1bx"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:configure-flags
+        #~(list "--sysconfdir=/etc"
+                "--localstatedir=/var"
+                ;; The shebang of the generated test files should be patched
+                ;; before enabling tests.
+                "--disable-tests")
+        #:make-flags
+        #~(list (string-append "typelibdir=" #$output "/lib/girepository-1.0"))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'remove-deprecated-gnome-common-macros
+              (lambda _
+                ;; Adapted from a Debian patch to remove deprecated macros.
+                (substitute* "autogen.sh"
+                  (("^USE_GNOME2_MACROS.*") "")
+                  (("^USE_COMMON_DOC_BUILD.*") ""))))
+            (add-after 'unpack 'patch-paths
+              (lambda _
+                (substitute* "libdbusmenu-glib/Makefile.am"
+                  (("/bin/false")
+                   "false")
+                  ;; (("\\$\\(srcdir)/clean-namespaces.xslt")
+                  ;;  "clean-namespaces.xslt")
+                  )))
+            (add-before 'configure 'do-not-treat-warnings-as-errors
+              (lambda _
+                ;; Prevent the build from failing due to deprecation warnings
+                ;; from newer GLib and GTK versions.
+                (substitute* (find-files "." "^Makefile.in$")
+                  ((" -Werror")
+                   ""))))
+            (add-before 'configure 'set-environment
+              (lambda _
+                (setenv "HAVE_VALGRIND_TRUE" "")
+                (setenv "HAVE_VALGRIND_FALSE" "#"))))))
+      (inputs
+       (list glib
+             gtk+
+             gtk+-2))
+      (native-inputs
+       (list autoconf
+             automake
+             `(,glib "bin")
+             gobject-introspection
+             gnome-common
+             gtk-doc                    ;FIXME: propagate by gnome-common?
+             intltool
+             json-glib
+             libtool
+             libxslt
+             pkg-config
+             python-wrapper
+             which
+             vala))
+      (home-page "https://launchpad.net/libdbusmenupython")
+      (synopsis "Library for passing menus over DBus")
+      (description "@code{libdbusmenu} passes a menu structure across DBus so
 that a program can create a menu simply without worrying about how it is
 displayed on the other side of the bus.")
 
-    ;; Dual-licensed under either LGPLv2.1 or LGPLv3.
-    (license (list license:lgpl2.1 license:lgpl3))))
+      ;; Dual-licensed under either LGPLv2.1 or LGPLv3.
+      (license (list license:lgpl2.1 license:lgpl3)))))
 
 (define-public gtk-layer-shell
   (package
diff --git a/gnu/packages/guile-wm.scm b/gnu/packages/guile-wm.scm
index 911cda8968..ff885506fa 100644
--- a/gnu/packages/guile-wm.scm
+++ b/gnu/packages/guile-wm.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
+;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,7 +31,8 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
-  #:use-module (guix build-system gnu))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix utils))
 
 (define-public guile-xcb
   (let ((commit "db7d5a393cc37a56f66541b3f33938b40c6f35b3")
@@ -48,19 +50,19 @@
                  (base32
                   "16w4vgzbmnwih4bgfn8rw85ryfvzhc6hyly6bic9sd7hhc82rcnd"))))
       (build-system gnu-build-system)
-      (arguments '(;; Parallel builds fail.
-                   #:parallel-build? #f
-                   #:configure-flags (list (string-append
-                                            "--with-guile-site-dir="
-                                            (assoc-ref %outputs "out")
-                                            "/share/guile/site/2.2")
-                                           (string-append
-                                            "--with-guile-site-ccache-dir="
-                                            (assoc-ref %outputs "out")
-                                            "/lib/guile/2.2/site-ccache"))))
+      (arguments
+       `( ;; Parallel builds fail.
+         #:parallel-build? #f
+         #:configure-flags
+         (let ((out (assoc-ref %outputs "out"))
+               (effective ,(version-major+minor
+                            (package-version (this-package-input "guile")))))
+           (list (string-append "--with-guile-site-dir=" out
+                                "/share/guile/site/" effective)
+                 (string-append "--with-guile-site-ccache-dir=" out
+                                "/lib/guile/" effective "/site-ccache")))))
       (native-inputs (list guile-2.2 pkg-config texinfo))
-      (inputs `(("guile" ,guile-2.2)
-                ("xcb" ,xcb-proto)))
+      (inputs (list guile-2.2 xcb-proto))
       (home-page "https://github.com/mwitmer/guile-xcb")
       (synopsis "XCB bindings for Guile")
       (description
@@ -93,14 +95,17 @@ dependencies.")
                     (ice-9 popen))
          ;; The '.scm' files go to $(datadir), so set that to the
          ;; standard value.
-         #:configure-flags (list (string-append "--datadir="
-                                                (assoc-ref %outputs "out")
-                                                "/share/guile/site/2.2"))
+         #:configure-flags
+         (let ((out (assoc-ref %outputs "out"))
+               (effective ,(version-major+minor
+                            (package-version (this-package-input "guile")))))
+           (list (string-append "--datadir=" out
+                                "/share/guile/site/" effective)))
          #:phases
          (modify-phases %standard-phases
            (add-before 'configure 'set-module-directory
              (lambda* (#:key outputs #:allow-other-keys)
-               ;; Install .scm files to $out/share/guile/site/2.2.
+               ;; Install .scm files to $out/share/guile/site/x.y.
                (let ((out (assoc-ref outputs "out"))
                      (effective (read-line
                                  (open-pipe* OPEN_READ
@@ -110,8 +115,7 @@ dependencies.")
                    (("^wmdir = .*$")
                     (string-append "wmdir = " out
                                    "/share/guile/site/"
-                                   effective "\n"))))
-               #t))
+                                   effective "\n"))))))
            (add-after 'install 'set-load-path
              (lambda* (#:key inputs outputs #:allow-other-keys)
                ;; Put Guile-XCB's and Guile-WM's modules in the
@@ -131,8 +135,7 @@ dependencies.")
                      (,mods ,(string-append xcb "/share/guile/site/" effective)))
                    `("GUILE_LOAD_COMPILED_PATH" ":" prefix
                      (,gos ,(string-append xcb "/lib/guile/"
-                                           effective "/site-ccache")))))
-               #t))
+                                           effective "/site-ccache")))))))
            (add-after 'install 'install-go-files
              (lambda* (#:key outputs inputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
@@ -153,8 +156,7 @@ dependencies.")
                                     (go   (string-append object-dir base ".go")))
                                (invoke "guild" "compile" "-L" module-dir
                                        file "-o" go)))
-                           (find-files module-dir "\\.scm$"))
-                 #t)))
+                           (find-files module-dir "\\.scm$")))))
            (add-after 'install 'install-xsession
              (lambda* (#:key outputs #:allow-other-keys)
                ;; add a .desktop file to xsessions
@@ -170,8 +172,7 @@ dependencies.")
                                     Comment=~a~@
                                     Exec=~a/bin/guile-wm~@
                                     Type=Application~%"
-                             ,name ,synopsis %output))))
-               #t)))))
+                             ,name ,synopsis %output)))))))))
       (native-inputs (list guile-2.2 guile-xcb pkg-config texinfo))
       (inputs (list guile-2.2 guile-xcb))
       (home-page "https://github.com/mwitmer/guile-wm/releases")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 2c18fc138c..3c02a85bc3 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3843,45 +3843,64 @@ and space linear in the size of the input text.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rl809qimhgz6b0rixakb42r2l4g53jr09a2g0s1hxgab0blz0kb"))))
+                "0rl809qimhgz6b0rixakb42r2l4g53jr09a2g0s1hxgab0blz0kb"))
+              (patches (search-patches "guile-ac-d-bus-fix-tests.patch"))))
     (build-system guile-build-system)
     (arguments
-     `(#:implicit-inputs? #f                      ;needs nothing but Guile
-       #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
-       #:phases (modify-phases %standard-phases
-                  (add-before 'build 'adjust-for-guile
-                    (lambda _
-                      ;; Adjust source file names for Guile.
-                      (define (guile-sls->sls file)
-                        (string-append (string-drop-right
-                                        file (string-length ".guile.sls"))
-                                       ".sls"))
-
-                      ;; Remove files targeting other implementations:
-                      ;; *.mosh.sls, etc.
-                      (for-each delete-file
-                                (find-files
-                                 "compat"
-                                 (lambda (file stat)
-                                   (not (string-contains file ".guile.")))))
-
-                      ;; Rename *.guile.sls to *.sls so the ".guile" bit does
-                      ;; not appear in .go file names.
-                      (for-each (lambda (file)
-                                  (rename-file file (guile-sls->sls file)))
-                                (find-files "compat" "\\.guile\\.sls"))
-
-                      ;; Move directories under d-bus/ to match module names.
-                      (mkdir "d-bus")
-                      (for-each (lambda (directory)
-                                  (rename-file directory
-                                               (string-append "d-bus/"
-                                                              directory)))
-                                '("compat" "protocol"))
-
-                      #t)))))
+     (list
+      #:implicit-inputs? #f             ;needs nothing but Guile
+      #:compile-flags #~(list "--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'build 'adjust-for-guile
+            (lambda _
+              ;; Adjust source file names for Guile.
+              (define (guile-sls->sls file)
+                (string-append (string-drop-right
+                                file (string-length ".guile.sls"))
+                               ".sls"))
+
+              ;; Remove files targeting other implementations: *.mosh.sls,
+              ;; etc.
+              (for-each delete-file
+                        (find-files
+                         "compat"
+                         (lambda (file stat)
+                           (not (string-contains file ".guile.")))))
+
+              ;; Rename *.guile.sls to *.sls so the ".guile" bit does not
+              ;; appear in .go file names.
+              (for-each (lambda (file)
+                          (rename-file file (guile-sls->sls file)))
+                        (find-files "compat" "\\.guile\\.sls"))
+
+              ;; Move directories under d-bus/ to match module names.
+              (mkdir "d-bus")
+              (for-each (lambda (directory)
+                          (rename-file directory
+                                       (string-append "d-bus/"
+                                                      directory)))
+                        '("compat" "protocol"))))
+          (add-after 'build 'build-doc
+            (lambda _
+              (with-directory-excursion "docs"
+                (invoke "makeinfo" "ac-d-bus"))))
+          (add-after 'build-doc 'check
+            (lambda* (#:key (tests? #t) #:allow-other-keys)
+              (when tests?
+                ;; There is no locale for the ö character, which crashes
+                ;; substitute*; reset the conversion strategy to workaround it.
+                (with-fluids ((%default-port-conversion-strategy 'substitute))
+                  (substitute* (find-files "tests")
+                    (("#!/usr/bin/env scheme-script")
+                     (string-append "#!" (which "guile")))))
+                (invoke "./run-tests.sh"))))
+          (add-after 'install 'install-doc
+            (lambda _
+              (install-file "docs/ac-d-bus.info"
+                            (string-append #$output "/share/info")))))))
     (native-inputs
-     (list guile-3.0))
+     (list bash-minimal guile-3.0 texinfo))
     (propagated-inputs
      (list guile-packrat))
     (synopsis "D-Bus protocol implementation in R6RS Scheme")
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 38bc3881b9..946cd9aba4 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -375,42 +375,6 @@ through the Display Data Channel Command Interface (@dfn{DDC/CI}) protocol.")
 human-readable format and checks if it conforms to the standards.")
       (license license:expat))))
 
-(define-public h-client
-  (let ((version "0.0a0")
-        (revision 138))
-    (package
-      (name "h-client")
-      (version (string-append version "-" (number->string revision)))
-      (source
-       (origin
-         (method svn-fetch)
-         (uri
-          (svn-reference
-           (url "https://svn.savannah.nongnu.org/svn/h-client/trunk/h-client")
-           (revision revision)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1pdd2qhyaa5vh7z4rkpwjlby1flkwhzmp8zlglalx5y5sv95l4kp"))))
-      (build-system python-build-system)
-      (arguments
-       `(#:python ,python-2
-         ;; Tests depends on /etc/os-release which does not exist in the
-         ;; build container.
-         #:tests? #f))
-      (inputs
-       (list python-2 python2-pycurl python2-pygtk pciutils usbutils))
-      (synopsis "Graphical client for the h-node hardware database
-project")
-      (description
-       "The h-node project (https://www.h-node.org) aims to build a database of
-hardware that works with fully free operating systems.
-h-client is a GTK+ graphical client that is able to retrieves information on
-the hardware inside the computer it's running on, and on peripherals connected
-to it, and help you submit that information to the h-node project along with
-whether the hardware works with a fully free operating system or not.")
-      (home-page "https://savannah.nongnu.org/projects/h-client/")
-      (license license:gpl3+))))
-
 (define-public headsetcontrol
   (package
     (name "headsetcontrol")
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 5579ef58ea..572e9a062f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -304,14 +304,14 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "10.20220504")
+    (version "10.20220525")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
-        (base32 "10pp58b7glwi1yckrij49d1iq99pc4dpkkbkb1qqiif9dr9672f3"))))
+        (base32 "1nrwa4qm3xkr11x0b0c1mx052zhd7lz9w97xf0ycdkhsyc6vbiy6"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 1995f71cc2..f4bf1724b4 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -19,6 +19,7 @@
 ;;; Copyright © 2021 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -145,7 +146,7 @@ Magnetic Resonance Imaging.")
 (define-public dcmtk
   (package
     (name "dcmtk")
-    (version "3.6.6")
+    (version "3.6.7")
     (source
      (origin
        (method url-fetch)
@@ -154,8 +155,11 @@ Magnetic Resonance Imaging.")
                        "dcmtk" (string-join (string-split version #\.) "")
                        "/dcmtk-" version ".tar.gz"))
        (sha256
-        (base32 "13j5yf3p6qj3mr17d77r3kcqchf055hgvk1w15vmdr8f54mwcnb8"))))
+        (base32 "02kix73qhndgb56cmi5327666i6imp7hi17wwqp26q4d7s72jn3w"))))
     (build-system cmake-build-system)
+    (arguments
+     ;; By default, only static archives are built.
+     (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")))
     (inputs
      (list icu4c
            libjpeg-turbo
@@ -181,7 +185,7 @@ licences similar to the Modified BSD licence."))))
 (define-public mia
   (package
     (name "mia")
-    (version "2.4.6")
+    (version "2.4.7")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/mia/mia/"
@@ -189,37 +193,41 @@ licences similar to the Modified BSD licence."))))
                                   "/mia-" version ".tar.xz"))
               (sha256
                (base32
-                "0j4nd5z7i3v199jh7hqqhwd4g7snchizkc7rhzanpvngqg91m1pb"))))
+                "0qpcd3n26q52dpyibm11f5l6cgscdr54p2jish39gc3p1f5h3ws1"))
+              (patches (search-patches "mia-fix-boost-headers.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
-       (list "-DMIA_CREATE_NIPYPE_INTERFACES=0"
+       (list "-DMIA_CREATE_NIPYPE_INTERFACES=OFF"
              "-DCMAKE_CXX_FLAGS=-fpermissive")))
     (inputs
-     `(("boost" ,boost)
-       ("dcmtk" ,dcmtk)
-       ("doxygen" ,doxygen)
-       ("eigen" ,eigen)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("gsl" ,gsl)
-       ("gts" ,gts)
-       ("hdf5" ,hdf5)
-       ("itpp" ,itpp)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libtiff" ,libtiff)
-       ("libxml" ,libxml2)
-       ("libxml++" ,libxml++)
-       ("maxflow" ,maxflow)
-       ("niftilib" ,niftilib)
-       ("nlopt" ,nlopt)
-       ("openexr" ,openexr-2)
-       ("python-lxml" ,python2-lxml)
-       ("vtk" ,vtk)))
+     (list boost
+           dcmtk
+           doxygen
+           eigen
+           fftw
+           fftwf
+           gsl
+           gts
+           hdf5
+           itpp
+           libjpeg-turbo
+           libpng
+           libtiff
+           libxml2
+           libxml++
+           maxflow
+           niftilib
+           nlopt
+           openexr-2
+           python-lxml
+           ;; The build fails when using the regular VTK (currently at version
+           ;; 9), with error "addons/vtk/vtkvf.cc:23:10: fatal error:
+           ;; vtkStructuredPointsReader.h: No such file or directory".
+           vtk-7))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("python" ,python-2)))
+     (list pkg-config
+           python-wrapper))
     (home-page "http://mia.sourceforge.net")
     (synopsis "Toolkit for gray scale medical image analysis")
     (description "MIA provides a combination of command line tools, plug-ins,
@@ -407,10 +415,10 @@ a suite of 3D interaction widgets, supports parallel processing, and
 integrates with various databases on GUI toolkits such as Qt and Tk.")
     (license license:bsd-3)))
 
-;; itksnap needs an older variant of VTK.
-(define-public vtk-6
-  (package (inherit vtk)
-    (version "6.3.0")
+(define-public vtk-7
+  (package
+    (inherit vtk)
+    (version "7.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://vtk.org/files/release/"
@@ -418,11 +426,16 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
                                   "/VTK-" version ".tar.gz"))
               (sha256
                (base32
-                "0pla1r5mvkgl4sl213gfdhzrypdgai0h3z5mfgm6p9jz9hsr794j"))))
-    (inputs
-     (modify-inputs (package-inputs vtk)
-       (replace "jsoncpp" jsoncpp-for-tensorflow)
-       (replace "python" python-2)))))         ;fails to build with Python 3.9
+                "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d"))
+              (patches (search-patches "vtk-7-python-compat.patch"
+                                       "vtk-7-hdf5-compat.patch"
+                                       "vtk-7-gcc-10-compat.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments vtk)
+       ((#:configure-flags flags)
+        ;; Otherwise, the build would fail with: "error: invalid conversion
+        ;; from ‘const char*’ to ‘char*’ [-fpermissive]".
+        `(cons "-DCMAKE_CXX_FLAGS=-fpermissive" ,flags))))))
 
 (define-public opencv
   (package
@@ -1010,7 +1023,8 @@ combine the information contained in both.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15i5ixpryfrbf3vrrb5rici8fb585f25k0v1ljds16bp1f1msr4q"))))
+        (base32 "15i5ixpryfrbf3vrrb5rici8fb585f25k0v1ljds16bp1f1msr4q"))
+       (patches (search-patches "itk-snap-alt-glibc-compat.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -1029,22 +1043,19 @@ combine the information contained in both.")
              (substitute* "CMakeLists.txt"
                (("install_qt5_executable\
 \\(\\$\\{SNAP_MAIN_INSTALL_DIR\\}/\\$\\{SNAP_EXE\\}\\)")
-                ""))
-             #t))
+                ""))))
          (add-after 'unpack 'disable-gui-tests
            (lambda _
              ;; The GUI tests just time out.
              (substitute* "CMakeLists.txt"
                (("  (Workspace|DiffSpace|ProbeIntensity|RegionCompetition\
 |RandomForest|RandomForestBailOut)")
-                ""))
-             #t))
+                ""))))
          (add-after 'unpack 'make-reproducible
            (lambda _
              (substitute* "CMakeLists.txt"
                (("TODAY\\(SNAP_VERSION_COMPILE_DATE\\)")
-                "SET(SNAP_VERSION_COMPILE_DATE \"(removed for reproducibility)\")"))
-             #t))
+                "SET(SNAP_VERSION_COMPILE_DATE \"(removed for reproducibility)\")"))))
          (add-after 'unpack 'prepare-submodules
            (lambda* (#:key inputs #:allow-other-keys)
              (rmdir "Submodules/c3d")
@@ -1055,19 +1066,16 @@ combine the information contained in both.")
                (("vcl_") "std::"))
              (rmdir "Submodules/greedy")
              (symlink (assoc-ref inputs "greedy-src")
-                      "Submodules/greedy")
-             #t))
+                      "Submodules/greedy")))
          (add-after 'unpack 'fix-includes
            (lambda _
              (substitute* "GUI/Model/RegistrationModel.cxx"
                (("<vnl_symmetric_eigensystem.h>")
-                "<vnl/algo/vnl_symmetric_eigensystem.h>"))
-             #t))
+                "<vnl/algo/vnl_symmetric_eigensystem.h>"))))
          (add-before 'check 'prepare-tests
            (lambda _
              ;; Needed by at least one test.
-             (setenv "HOME" "/tmp")
-             #t))
+             (setenv "HOME" "/tmp")))
          (add-after 'install 'wrap-executable
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -1076,23 +1084,22 @@ combine the information contained in both.")
                    ,(map (lambda (label)
                            (string-append (assoc-ref inputs label)
                                           "/lib/qt5/plugins"))
-                         '("qtbase" "qtdeclarative"))))
-               #t))))))
+                         '("qtbase" "qtdeclarative"))))))))))
     (inputs
-     `(("curl" ,curl)
-       ("fftw" ,fftw)
-       ("fftwf" ,fftwf)
-       ("glu" ,glu)
-       ("hdf5" ,hdf5)
-       ("mesa" ,mesa-opencl)
-       ;; This package does not build with either insight-toolkit 5.0.0 and
-       ;; not with 4.13.  It really needs to be 4.12.
-       ("itk" ,insight-toolkit-4.12)
-       ("vtk" ,vtk-6)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("vxl" ,vxl-1)
-       ("zlib" ,zlib)))
+     (list curl
+           fftw
+           fftwf
+           glu
+           hdf5
+           mesa-opencl
+           ;; This package does not build with either insight-toolkit 5.0.0
+           ;; and not with 4.13.  It really needs to be 4.12.
+           insight-toolkit-4.12
+           vtk-7
+           qtbase-5
+           qtdeclarative
+           vxl-1
+           zlib))
     (native-inputs
      `(("googletest" ,googletest)
        ("qttools" ,qttools)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index ec6793aa9a..27cb74d2a3 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -239,25 +239,6 @@ APNG patch provides APNG support to libpng.")
     (home-page "https://sourceforge.net/projects/libpng-apng/")
     (license license:zlib)))
 
-(define-public libpng-1.2
-  (package
-    (inherit libpng)
-    (version "1.2.59")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (list (string-append "mirror://sourceforge/libpng/libpng12/"
-                                 version "/libpng-" version ".tar.xz")
-                  (string-append
-                   "ftp://ftp.simplesystems.org/pub/libpng/png/src"
-                   "/libpng12/libpng-" version ".tar.xz")
-                  (string-append
-                   "ftp://ftp.simplesystems.org/pub/libpng/png/src/history"
-                   "/libpng12/libpng-" version ".tar.xz")))
-       (sha256
-        (base32
-         "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"))))))
-
 (define-public pngcrush
   (package
    (name "pngcrush")
diff --git a/gnu/packages/iso-codes.scm b/gnu/packages/iso-codes.scm
index b2cfd3434c..c34911fe9b 100644
--- a/gnu/packages/iso-codes.scm
+++ b/gnu/packages/iso-codes.scm
@@ -96,9 +96,6 @@ that is concerned with representation of names for languages and language
 groups.")
     (license license:agpl3+)))
 
-(define-public python2-iso639
-  (package-with-python2 python-iso639))
-
 (define-public python-iso3166
   (package
     (name "python-iso3166")
@@ -115,6 +112,3 @@ groups.")
     (synopsis "Self-contained ISO 3166-1 country definitions")
     (description "This package provides the ISO 3166-1 country definitions.")
     (license license:expat)))
-
-(define-public python2-iso3166
-  (package-with-python2 python-iso3166))
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 36baefaa7a..336e84e3e5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2252,7 +2252,7 @@ new Date();"))
   (package
     (inherit openjdk16)
     (name "openjdk")
-    (version "17.0.2")
+    (version "17.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2261,7 +2261,7 @@ new Date();"))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0zwv5pnh7rb7a6689jlhjfcc92bsiy0xbhdxyj93096ah4n3hqhj"))
+                "0slmd6ww947gxpp4yr2wmr5z975bg86qh7zqfp2radf2q77ql65b"))
               (patches
                 (search-patches "openjdk-15-xcursor-no-dynamic.patch"))))
     (native-inputs
diff --git a/gnu/packages/key-mon.scm b/gnu/packages/key-mon.scm
index e7b549d184..d70dd0cd48 100644
--- a/gnu/packages/key-mon.scm
+++ b/gnu/packages/key-mon.scm
@@ -26,28 +26,3 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (guix build-system python))
-
-(define-public key-mon
-  (package
-    (name "key-mon")
-    (version "1.17")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://key-mon.googlecode.com/files/key-mon-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "1liz0dxcqmchbnl1xhlxkqm3gh76wz9jxdxn9pa7dy77fnrjkl5q"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2                    ;uses the Python 2 'print' syntax
-       #:tests? #f))                         ;no tests
-    (inputs
-     (list python2-xlib python2-pygtk python2-rsvg))
-    (home-page "https://code.google.com/p/key-mon")
-    (synopsis "Show keyboard and mouse status")
-    (description
-     "The key-mon utility displays the current keyboard and mouse status.
-This is useful for teaching and screencasts.")
-    (license asl2.0)))
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 6a0f1af2fa..61c9e682ed 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -855,443 +855,6 @@ extensions in EXTS."
     (srfi srfi-1)
     (srfi srfi-26)))
 
-(define-public python2-tegaki-wagomu
-  (package
-    (name "python2-tegaki-wagomu")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri "tegaki-wagomu" version))
-       (sha256
-        (base32
-         "1pzdiq4zy1nyylaj9i6v2h4h0r05klahskzpafpp367p4rysi1x9"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "pyc"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; only Python 2 is supported
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-recognizer
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; fix missing module and function
-             (substitute* "tegakiwagomu.py"
-               (("import Results,")
-                "import ")
-               (("def _recognize")
-                "def recognize")
-               (("Results\\(candidates\\)")
-                "candidates"))
-             #t)))))
-    (inputs
-     (list glib))
-    (native-inputs
-     (list pkg-config swig))
-    (home-page "https://tegaki.github.io/")
-    (synopsis
-     "Chinese and Japanese Handwriting Recognition (Recognition engine)")
-    (description
-     "Tegaki is an ongoing project which aims to develop a free and open-source
-modern implementation of handwriting recognition software, specifically
-designed for Chinese (simplified and traditional) and Japanese, and that is
-suitable for both the desktop and mobile devices.")
-    (license license:gpl2+))) ; all files
-
-(define-public python2-tegaki-python
-  (package
-    (inherit python2-tegaki-wagomu)
-    (name "python2-tegaki-python")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri "tegaki-python" version))
-       (sha256
-        (base32
-         "0x93k7pw9nh0ywd97pr8pm7jv3f94nw044i5k0zvzhdpsjqvak7p"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "pyc"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
-       ((#:phases _)
-        `(modify-phases %standard-phases
-           (add-after 'unpack 'pre-configure
-             (lambda* (#:key inputs #:allow-other-keys)
-               ;; Always convert string to unicode to avoid the following error
-               ;; when running "tegaki-build" in python2-tegaki-tools:
-               ;;
-               ;; sqlite3.ProgrammingError: You must not use 8-bit bytestrings
-               ;; unless you use a text_factory that can interpret 8-bit
-               ;; bytestrings (like text_factory = str).
-               ;; It is highly recommended that you instead just switch your
-               ;; application to Unicode strings.
-               (substitute* "tegaki/charcol.py"
-                 (("sqlite3.OptimizedUnicode")
-                  "lambda s: unicode(s, 'utf-8')"))
-               (substitute* "tegaki/engine.py"
-                 (("/usr(/local)?")
-                  (assoc-ref inputs "python2-tegaki-wagomu")))
-               #t))))))
-    ;; override inherited inputs
-    (inputs '())
-    (native-inputs '())
-    (propagated-inputs
-     (list python2-tegaki-wagomu python2-zinnia))
-    (synopsis
-     "Chinese and Japanese Handwriting Recognition (Base python library)")
-    (license (list license:gpl2+        ; all files except...
-                   license:bsd-3        ; dictutils.py
-                   license:zpl2.1))))   ; minjson.py
-
-(define-public python2-tegaki-pygtk
-  (package
-    (inherit python2-tegaki-wagomu)
-    (name "python2-tegaki-pygtk")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri "tegaki-pygtk" version))
-       (sha256
-        (base32
-         "1cip0azxhjdj2dg2z85cp1z3lz4qwx3w1j7z4xmcm7npapmsaqs2"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "pyc"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
-       ((#:phases _)
-        `(modify-phases %standard-phases
-           (add-after 'unpack 'fix-paths
-             (lambda* (#:key inputs #:allow-other-keys)
-               (substitute* "tegakigtk/fakekey.py"
-                 (("libX11.so.6" so)
-                  (search-input-file inputs
-                                     (string-append "/lib/" so)))
-                 (("libXtst.so.6" so)
-                  (search-input-file inputs
-                                     (string-append "/lib/" so))))))))))
-    (inputs ; required for sending key strokes
-     (list libx11 libxtst))
-    (native-inputs '()) ; override inherited inputs
-    (propagated-inputs
-     (list python2-pygtk python2-tegaki-python))
-    (synopsis "Chinese and Japanese Handwriting Recognition (Base UI library)")
-    (license license:gpl2+)))
-
-(define-public python2-tegaki-tools
-  (package
-    (inherit python2-tegaki-wagomu)
-    (name "python2-tegaki-tools")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri "tegaki-tools" version))
-       (sha256
-        (base32
-         "0xxv97ggh2jgldw3r7y59lv3fhz733r6l7mdn6nh4m0gvb0ja971"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "pyc"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments python2-tegaki-wagomu)
-       ((#:phases _) '%standard-phases)))
-    (inputs
-     (list python2-tegaki-pygtk))
-    ;; override inherited inputs
-    (native-inputs '())
-    (propagated-inputs '())
-    (synopsis "Chinese and Japanese Handwriting Recognition (Advanced tools)")
-    ;; Files in gifenc/ are licensed under gpl3+ while other files are licensed
-    ;; under gpl2+. Therefore, the combined work is licensed under gpl3+.
-    (license license:gpl3+)))
-
-(define-public python2-tegaki-recognize
-  (let ((commit "eceec69fe651d0733c8c8752dae569d2283d0f3c")
-        (revision "1"))
-    (package
-      (inherit python2-tegaki-tools)
-      (name "python2-tegaki-recognize")
-      ;; version copied from <https://github.com/tegaki/tegaki/releases>
-      (version (git-version "0.3.1" revision commit))
-      (source
-       (origin
-         ;; We use GIT-FETCH because 'tegaki-recognize.desktop.in' and
-         ;; 'tegaki-recognize.in' are missing in the tarball.
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/tegaki/tegaki")
-               (commit commit)))
-         (sha256
-          (base32
-           "09mw2if9p885phbgah5f95q3fwy7s5b46qlmpxqyzfcnj6g7afr5"))
-         (file-name (git-file-name name version))
-         (modules `((guix build utils)
-                    (ice-9 ftw)
-                    (srfi srfi-26)
-                    ,@remove-pre-compiled-files-modules))
-         (snippet
-          `(begin
-             ;; remove unnecessary files with potentially different license
-             (for-each delete-file-recursively
-                       (scandir "."
-                                (negate (cut member <> '("tegaki-recognize"
-                                                         "." "..")))))
-             ,(remove-pre-compiled-files "pyc")
-             #t))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments python2-tegaki-tools)
-         ((#:phases _)
-          `(modify-phases %standard-phases
-             (add-after 'unpack 'chdir
-               (lambda _
-                 (chdir "tegaki-recognize")
-                 #t))
-             ;; 'setup.py' script does not support one of the Python build
-             ;; system's default flags, "--single-version-externally-managed"
-             (replace 'install
-               (lambda* (#:key outputs #:allow-other-keys)
-                 (invoke "python" "setup.py" "install"
-                         (string-append "--prefix=" (assoc-ref outputs "out"))
-                         "--root=/")
-                 #t))))))
-      (synopsis "Chinese and Japanese Handwriting Recognition (Main program)")
-      (license license:gpl2+))))
-
-(define-public tegaki-zinnia-japanese
-  (package
-    (inherit python2-tegaki-wagomu)
-    (name "tegaki-zinnia-japanese")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "1nmg9acxhcqly9gwkyb9m0hpy76fll91ywk4b1q4xms0ajxip1h7"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f ; no tests
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "Makefile"
-               (("/usr/local")
-                (assoc-ref outputs "out")))
-             #t)))))
-    ;; override inherited inputs
-    (inputs '())
-    (native-inputs
-     (list python2-tegaki-tools))
-    (propagated-inputs '())
-    (native-search-paths
-     (list (search-path-specification
-            (variable "TEGAKI_MODEL_PATH")
-            (files '("share/tegaki/models")))))
-    (synopsis "Chinese and Japanese Handwriting Recognition (Model)")
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-japanese-light
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-japanese-light")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0x0fs29ylqzxd6xvg51h7rigpbisd7q8v11df425ib2j792yfyf8"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-japanese-kyoiku
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-japanese-kyoiku")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0am94bcpmbzplxdnwn9gk15sgaizvcfhmv13mk14jjvx3419cvvx"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-japanese-joyo
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-japanese-joyo")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "1v0j40lzdyiz01ayws0b8r7fsdy2mr32658382kz4wyk883wzx2z"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-simplified-chinese
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-simplified-chinese")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "18wq0jccv7lpnrfnzspyc110d6pj2v1i21xcx4fmgzz1lnln3fs5"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-simplified-chinese-light
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-simplified-chinese-light")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0v24yf0w0p03lb7fyx128a75mwzad166bigvlbrzqnad789qg1sr"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-traditional-chinese
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-traditional-chinese")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "140nlp6hynrai2svs5670jjfw1za6ayflhyj2dl0bzsfgbk3447l"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-zinnia-traditional-chinese-light
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-zinnia-traditional-chinese-light")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "1m6yk6a57vs9wg5y50qciwi1ahhmklp2mgsjysbj4mnyzv6yhcr2"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-wagomu-japanese
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-wagomu-japanese")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0flj5id8xwsn7csrrzqz9prdikswnwm2wms0as2vzdpxzph1az4k"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-wagomu-japanese-kyoiku
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-wagomu-japanese-kyoiku")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0v8crfh8rdf6ndp16g52s5jlrrlwh73xp38zjn5i9dlacx8kfqg1"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-wagomu-japanese-joyo
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-wagomu-japanese-joyo")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0wk8shpr963zp328g991qs6abpnacq4242003m687z2d6yp7nph2"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-(define-public tegaki-wagomu-simplified-chinese
-  (package
-    (inherit tegaki-zinnia-japanese)
-    (name "tegaki-wagomu-simplified-chinese")
-    (version "0.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (tegaki-release-uri name version "zip"))
-       (sha256
-        (base32
-         "0wqprynigqxqxv128i1smh81gxvmjj056d9qpznxa3n9f5ymlbj6"))
-       (modules remove-pre-compiled-files-modules)
-       (snippet (remove-pre-compiled-files "model"))))
-    (license license:lgpl2.1)))
-
-;;; Upstream does not provide the source for tegaki-wagomu-traditional-chinese.
-;;; Therefore, we use the source for tegaki-zinnia-traditional-chinese and
-;;; patch the Makefile accordingly.
-(define-public tegaki-wagomu-traditional-chinese
-  (package
-    (inherit tegaki-zinnia-traditional-chinese)
-    (name "tegaki-wagomu-traditional-chinese")
-    (arguments
-     (substitute-keyword-arguments
-         (package-arguments tegaki-zinnia-traditional-chinese)
-       ((#:phases phases '%standard-phases)
-        `(modify-phases ,phases
-           (replace 'configure
-             (lambda args
-               (let ((configure (assq-ref ,phases 'configure)))
-                 (apply configure args))
-               (substitute* "Makefile"
-                 (("zinnia") "wagomu"))
-               #t))))))
-    (license license:lgpl2.1)))
-
 (define-public link-grammar
   (package
     (name "link-grammar")
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index 2efec07e1d..701feeb773 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -152,9 +152,6 @@ conversions for values passed between the two languages.")
       (sha256
        (base32 "0m3rz2pqfmyfagx0bhj2jlbr2h58j3wr3cyv1agxkhlnm1k0s3wj"))))))
 
-(define-public python2-cffi
-  (package-with-python2 python-cffi))
-
 (define-public python-cffi-documentation
   (package
     (name "python-cffi-documentation")
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 01771dffca..45cc2cda0d 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -300,9 +300,6 @@ wrapper for accessing libusb-1.0.")
      "PyUSB aims to be an easy to use Python module to access USB devices.")
     (license license:bsd-3)))
 
-(define-public python2-pyusb
-  (package-with-python2 python-pyusb))
-
 (define-public python-capablerobot-usbhub
   (package
     (name "python-capablerobot-usbhub")
@@ -624,6 +621,3 @@ HID-Class devices.")
                    (license:non-copyleft
                     "https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt"
                     "You are free to use cython-hidapi code for any purpose.")))))
-
-(define-public python2-hidapi
-  (package-with-python2 python-hidapi))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7dc981c262..9b4dbe4daa 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -349,7 +349,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
 
-(define-public linux-libre-5.17-version "5.17.9")
+(define-public linux-libre-5.17-version "5.17.12")
 (define-public linux-libre-5.17-gnu-revision "gnu")
 (define deblob-scripts-5.17
   (linux-libre-deblob-scripts
@@ -359,7 +359,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1zd4ds6ha4a2acqnalp234r2m9rz9p30qmy1aqri78i06aw7flwn")))
 (define-public linux-libre-5.17-pristine-source
   (let ((version linux-libre-5.17-version)
-        (hash (base32 "0y2rmn86z3cvgv71b6sjjyafnlbanlib1kjpjjqzjbgg86y2890p")))
+        (hash (base32 "0yr8xfds5l1s3lk8qk67mgy0l4yh2jfvjc7xwrfws3ci020ss9a2")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.17)))
@@ -367,7 +367,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.15-version "5.15.41")
+(define-public linux-libre-5.15-version "5.15.44")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
@@ -377,12 +377,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0gs92qbpvirwd02rpwwnja7771z2azbiy9ppy9ynpr14lxmzxnnh")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "07jrsr54rvhry3g401h58r1773zinq49dbrkb9v1p6q27gyb2z1w")))
+        (hash (base32 "1p1jz0lxmzyj0c51afqghylg9kblk8zmlw92zq6bsn37wlwbrylv")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.117")
+(define-public linux-libre-5.10-version "5.10.119")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -392,12 +392,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1xyhz0dyrkg2avz382ly3dzpa5v89x49gfzx80c1drpwsk7jg6gp")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "1iyw3nmsga2binmrhfnzsf1pvn2bs21a8jw6vm89k26z5h8zfgkh")))
+        (hash (base32 "04952zaz2kfwf7agy4laz50f9sl3mrnpqlbwbj84q1xpl9akwd9y")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.195")
+(define-public linux-libre-5.4-version "5.4.196")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -407,12 +407,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "05i286d98fm2pdf9724x1dsmfcm7gsd7yyyvxqlpisyj1kx14hda")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "078380qhds2jwfmrchna6p27wpfb74pvnj4xiyc5k38gysfmnbzj")))
+        (hash (base32 "1x5irgki792f21hm5146xary0260cl9r475kvw8vm9w32vyx18ig")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.244")
+(define-public linux-libre-4.19-version "4.19.245")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -422,12 +422,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "1g9562v6ny196rw2n3kj43nrz65qa7imwnmfasvj6x8fm8bdhz79")))
+        (hash (base32 "1s58qci6xhmss12glzkqk41kp60pqmzh4d84kyz4m4nf4xhdvzcr")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.280")
+(define-public linux-libre-4.14-version "4.14.281")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
@@ -437,12 +437,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1dnjgx1nmawm9gm0yf15nl80nmg7hy7q2vl3jxjbwj6hlrfv5dmx")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "01jr0f7mq919s7xxvv8sc1mg6isc1ggij33l2s0n6jvykm23ghrr")))
+        (hash (base32 "0pivb1m2cwqnlm8bhd4ccnlq9pwp2r5lmn77gp91k6vbjv3gkqis")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
 
-(define-public linux-libre-4.9-version "4.9.315")
+(define-public linux-libre-4.9-version "4.9.316")
 (define-public linux-libre-4.9-gnu-revision "gnu1")
 (define deblob-scripts-4.9
   (linux-libre-deblob-scripts
@@ -452,7 +452,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "14jyn2yrbm6ayp0bszs4f9jy3p1qkrj5p5gf5c42spr67aa2lv2v")))
 (define-public linux-libre-4.9-pristine-source
   (let ((version linux-libre-4.9-version)
-        (hash (base32 "1171p90s00jxg1clyz8kp81ilmdzygg131mxysr6lpkaisahkjg6")))
+        (hash (base32 "05yd7djm6dcxv3vaylhmj3p0yml421azv8qabmhv4ric1f99idjp")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.9)))
@@ -1227,7 +1227,7 @@ and should be used with caution, especially on untested models.")
 (define-public corefreq
   (package
     (name "corefreq")
-    (version "1.87.4")
+    (version "1.90.1")
     (source
      (origin
        (method git-fetch)
@@ -1236,7 +1236,7 @@ and should be used with caution, especially on untested models.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01g1smhfzb02gmfjm8c7rchc79dan9jc9pv9c0f8f7fly2hy5zvs"))))
+        (base32 "1fpmrqjwxvjbs23r73agjs322fbi4v1013cncbfyk6lcjghxab76"))))
     (build-system linux-module-build-system)
     (outputs (list "out" "linux-module"))
     (arguments
diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm
index 1b8e8e37bd..5c89e83d7c 100644
--- a/gnu/packages/lirc.scm
+++ b/gnu/packages/lirc.scm
@@ -133,17 +133,4 @@ on just one button press.")
       (home-page "https://github.com/tompreston/python-lirc")
       (synopsis "Python bindings for LIRC")
       (description "@code{lirc} is a Python module which provides LIRC bindings.")
-      (license license:gpl3)
-      (properties `((python2-variant . ,(delay python2-lirc)))))))
-
-  (define-public python2-lirc
-    (let ((base (package-with-python2 (strip-python2-variant python-lirc))))
-      (package/inherit base
-        (arguments
-         `(#:tests? #f ; the only tests that exist are human-interactive
-           #:phases
-           (modify-phases %standard-phases
-             (add-before 'build 'build-from-cython-files
-               (lambda _ (invoke "make" "py2"))))))
-        (native-inputs
-         `(("python2-cython" ,python2-cython))))))
+      (license license:gpl3))))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index c93c1db7fe..d3b16f2759 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018–2022 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -216,7 +216,15 @@ given PATCHES.  When TOOLS-EXTRA is given, it must point to the
              ;; Use a sane default include directory.
              (string-append "-DC_INCLUDE_DIRS="
                             (assoc-ref %build-inputs "libc")
-                            "/include"))
+                            "/include")
+       ,@(if (target-riscv64?)
+           (list "-DLIBOMP_LIBFLAGS=-latomic"
+                 "-DCMAKE_SHARED_LINKER_FLAGS=-latomic")
+           `()))
+
+       ,@(if (target-riscv64?)
+           `(#:make-flags '("LDFLAGS=-latomic"))
+           '())
 
        ;; Don't use '-g' during the build to save space.
        #:build-type "Release"
@@ -353,8 +361,11 @@ given PATCHES.  When TOOLS-EXTRA is given, it must point to the
                                 (mkdir-p lib-share)
                                 ;; Symlink the ignorelist to where Clang expects
                                 ;; to find it.
-                                (symlink cfi-ignorelist
-                                         (string-append lib-share "/" file-name))))))
+                                ;; Not all architectures support CFI.
+                                ;; see: compiler-rt/cmake/config-ix.cmake
+                                (when (file-exists? cfi-ignorelist)
+                                  (symlink cfi-ignorelist
+                                           (string-append lib-share "/" file-name)))))))
                         '())
                   (add-after 'install 'install-clean-up-/share/clang
                     (lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index d5cff678d8..53d428bd4f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -1144,55 +1144,8 @@ computing environments.")
     (description
      "Scikit-learn provides simple and efficient tools for data mining and
 data analysis.")
-    (properties `((python2-variant . ,(delay python2-scikit-learn))))
     (license license:bsd-3)))
 
-;; scikit-learn 0.22 and later only supports Python 3, so we stick with
-;; an older version here.
-(define-public python2-scikit-learn
-  (let ((base (package-with-python2 (strip-python2-variant python-scikit-learn))))
-    (package
-      (inherit base)
-      (version "0.20.4")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/scikit-learn/scikit-learn")
-                      (commit version)))
-                (file-name (git-file-name "python-scikit-learn" version))
-                (sha256
-                 (base32
-                  "08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj"))))
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'build 'build-ext
-             (lambda _ (invoke "python" "setup.py" "build_ext" "--inplace")))
-           (replace 'check
-             (lambda* (#:key tests? #:allow-other-keys)
-               (when tests?
-                 ;; Restrict OpenBLAS threads to prevent segfaults while testing!
-                 (setenv "OPENBLAS_NUM_THREADS" "1")
-
-                 ;; Some tests require write access to $HOME.
-                 (setenv "HOME" "/tmp")
-
-                 (invoke "pytest" "sklearn" "-m" "not network"
-                         "-k"
-                         (string-append
-                          ;; This test tries to access the internet.
-                          "not test_load_boston_alternative"
-                          ;; This test fails for unknown reasons
-                          " and not test_rank_deficient_design"))))))))
-      (inputs
-       (list openblas))
-      (native-inputs
-       (list python2-pytest python2-pandas ;for tests
-             python2-cython))
-      (propagated-inputs
-       (list python2-numpy python2-scipy python2-joblib)))))
-
 (define-public python-threadpoolctl
   (package
     (name "python-threadpoolctl")
@@ -1389,9 +1342,6 @@ forward-mode differentiation, and the two can be composed arbitrarily.  The
 main intended application of Autograd is gradient-based optimization.")
       (license license:expat))))
 
-(define-public python2-autograd
-  (package-with-python2 python-autograd))
-
 (define-public lightgbm
   (package
     (name "lightgbm")
@@ -1478,38 +1428,6 @@ such as online, hashing, allreduce, reductions, learning2search, active, and
 interactive learning.")
     (license license:bsd-3)))
 
-(define-public python2-fastlmm
-  (package
-    (name "python2-fastlmm")
-    (version "0.2.21")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "fastlmm" version ".zip"))
-       (sha256
-        (base32
-         "1q8c34rpmwkfy3r4d5172pzdkpfryj561897z9r3x22gq7813x1m"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; some test files are missing
-       #:python ,python-2)) ; only Python 2.7 is supported
-    (propagated-inputs
-     (list python2-numpy
-           python2-scipy
-           python2-matplotlib
-           python2-pandas
-           python2-scikit-learn
-           python2-pysnptools))
-    (native-inputs
-     (list unzip python2-cython python2-mock python2-nose))
-    (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/")
-    (synopsis "Perform genome-wide association studies on large data sets")
-    (description
-     "FaST-LMM, which stands for Factored Spectrally Transformed Linear Mixed
-Models, is a program for performing both single-SNP and SNP-set genome-wide
-association studies (GWAS) on extremely large data sets.")
-    (license license:asl2.0)))
-
 (define-public python-hyperopt
   (package
     (name "python-hyperopt")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 2b6c5ebb8f..f1af69faab 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -32,7 +32,7 @@
 ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
 ;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020, 2021 Alexey Abramov <levenson@mmer.org>
 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
@@ -40,7 +40,6 @@
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2020 divoplade <d@divoplade.fr>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Benoit Joly <benoit@benoitj.ca>
 ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com>
@@ -556,7 +555,7 @@ aliasing facilities to work just as they would on normal mail.")
 (define-public mutt
   (package
     (name "mutt")
-    (version "2.2.4")
+    (version "2.2.5")
     (source (origin
              (method url-fetch)
              (uri (list
@@ -566,7 +565,7 @@ aliasing facilities to work just as they would on normal mail.")
                                    version ".tar.gz")))
              (sha256
               (base32
-               "0q70qrsjvmkfns1qxc0il2rlmfjwzbmfg89zlch0iqghpyz7c9xq"))
+               "0ivyfld4a4sfzsdiaajqiarvfx4i85g1smbb2b5dqjkrb48pi2zz"))
              (patches (search-patches "mutt-store-references.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -1483,9 +1482,6 @@ useful for email address completion.")
 and search library.")
     (license license:gpl3+)))
 
-(define-public python2-notmuch
-  (package-with-python2 python-notmuch))
-
 (define-public python-notmuch2
   (package
     (inherit python-notmuch)
@@ -1551,31 +1547,33 @@ minimum information necessary to bring replicas up to date regardless of which
 pairs have previously synchronized.")
     (license license:gpl2+)))           ; with OpenSSL libcrypto exception
 
-(define-public getmail
+(define-public getmail6
   (package
-    (name "getmail")
-    (version "5.16")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://pyropus.ca/software/getmail/old-versions/"
-                           "getmail-" version ".tar.gz"))
-       (sha256
-        (base32 "1yk7lrndbfsrbdxikwzdqvadryqsldalxdn3a184dg4sxzmgis3a"))))
+    (name "getmail6")
+    (version "6.18.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/getmail6/getmail6")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "08a5yw6ll1kmd1ardj8rzhsw4wl48zzdc87g5lh4p5snv8w2m4ja"))))
     (build-system python-build-system)
-    (arguments
-     (list #:tests? #f                  ; no tests
-           #:python python-2))
-    (home-page "https://pyropus.ca/software/getmail/")
+    (arguments (list #:tests? #f))      ;tests require docker
+    (home-page "https://github.com/getmail6/getmail6")
     (synopsis "Mail retriever")
     (description
-     "A flexible, extensible mail retrieval system with support for
-POP3, IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs,
-arbitrary message filtering, single-user and domain-mailboxes, and many other
-useful features.")
+     "A flexible, extensible mail retrieval system with support for POP3,
+IMAP4, SSL variants of both, maildirs, mboxrd files, external MDAs, arbitrary
+message filtering, single-user and domain-mailboxes, and many other useful
+features.  This is a fork derived from getmali 5.14, aimed at Python 3
+compatibility.")
+    (license license:gpl2+)))           ;see docs/COPYING
 
-    ;; License is specified in file '__init__.py'.
-    (license license:gpl2)))
+(define-public getmail
+  (deprecated-package "getmail" getmail6))
 
 (define-public libetpan
   (package
@@ -3365,25 +3363,8 @@ filtering, digest delivery, and more.")
     (description
      "The mailmanclient library provides official Python bindings for
 the GNU Mailman 3 REST API.")
-    (properties `((python2-variant . ,(delay python2-mailmanclient))))
     (license license:lgpl3+)))
 
-;; This is the last version which supports Python-2.
-(define-public python2-mailmanclient
-  (let ((base (package-with-python2
-                (strip-python2-variant python-mailmanclient))))
-    (package
-      (inherit base)
-      (version "3.1.1")
-      (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "mailmanclient" version))
-          (sha256
-           (base32
-            "0fdfs5g3pf30v2i7w18pdkv9xnfxmfcv66mzv56dck0a1igq07m3"))))
-      (propagated-inputs
-       (list python2-six python2-httplib2)))))
 
 (define-public mlmmj
   (package
@@ -4365,7 +4346,7 @@ on RFC 3501 and original @code{imaplib} module.")
 (define-public rspamd
   (package
     (name "rspamd")
-    (version "2.7")
+    (version "3.2")
     (source
      (origin
        (method git-fetch)
@@ -4373,11 +4354,12 @@ on RFC 3501 and original @code{imaplib} module.")
              (url "https://github.com/rspamd/rspamd")
              (commit version)))
        (sha256
-        (base32 "0fw6nbfc3xqapzq5nydakwgpw6cz6vb3qby2aqlr06lzf87d3hic"))
+        (base32 "122d5m1nfxxz93bhsk8lm4dazvdknzphb0a1188m7bsa4iynbfv2"))
        (file-name (git-file-name name version))))
     (build-system cmake-build-system)
     (arguments
-     '(#:configure-flags '("-DENABLE_LUAJIT=ON")))
+     '(#:configure-flags '("-DENABLE_LUAJIT=ON"
+                           "-DLOCAL_CONFDIR=/etc/rspamd")))
     (inputs
      (list openssl
            glib
@@ -4386,7 +4368,7 @@ on RFC 3501 and original @code{imaplib} module.")
            sqlite
            file
            icu4c
-           pcre
+           pcre2
            zlib
            perl
            libsodium))
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 732a7c0020..e2eed7ecb3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -5,7 +5,7 @@
 ;;; Copyright © 2014-2022 Eric Bavier <bavier@posteo.net>
 ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
 ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
-;;; Copyright © 2015–2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015–2022 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@@ -152,6 +152,7 @@
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages shells)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages swig)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tex)
@@ -1915,34 +1916,34 @@ with the provided training tools.")
 (define-public nlopt
   (package
     (name "nlopt")
-    (version "2.4.2")
+    (version "2.7.1")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "http://ab-initio.mit.edu/nlopt/nlopt-"
-                                  version ".tar.gz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/stevengj/nlopt/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
-               (base32 "12cfkkhcdf4zmb6h7y6qvvdvqjs2xf9sjpa3rl3bq76px4yn76c0"))))
-    (build-system gnu-build-system)
+               (base32 "1xpdza28i8w441fwv6a5f3qk4zi7ys6ws9fx6kr5ny27dfdz6rr1"))))
+    (build-system cmake-build-system)
     (arguments
-     `(;; Shared libraries are not built by default.  They are required to
-       ;; build the Guile, Octave, and Python bindings.
-       #:configure-flags '("--enable-shared")
-
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-before 'configure 'set-libnlopt-file-name
            (lambda* (#:key outputs #:allow-other-keys)
              ;; Make sure the Scheme module refers to the library by its
-             ;; absolute file name (we cannot do that from a snippet
-             ;; because the expansion of @libdir@ contains
-             ;; ${exec_prefix}.)
+             ;; absolute file name.
              (let ((out (assoc-ref outputs "out")))
-               (substitute* "swig/nlopt.scm.in"
-                 (("libnlopt")
-                  (string-append out "/lib/libnlopt")))
-               #t))))))
-    (inputs (list guile-2.0))
-    (native-inputs (list pkg-config))
+               (substitute* "src/swig/nlopt-guile.i"
+                 (("\"nlopt_guile\"")
+                  (format #f "~s"
+                          `(format #f "~anlopt_guile"
+                                   (if (getenv "NLOPT_UNINSTALLED")
+                                       ""
+                                       ,(format #f "~a/lib/guile/3.0/extensions/" out))))))
+               (setenv "NLOPT_UNINSTALLED" "1")))))))
+    (inputs (list guile-3.0 octave python))
+    (native-inputs (list pkg-config swig))
     (home-page "http://ab-initio.mit.edu/wiki/")
     (synopsis "Library for nonlinear optimization")
     (description "NLopt is a library for nonlinear optimization, providing a
@@ -3335,9 +3336,6 @@ Cassowary solver with typical use cases gaining a 40x improvement.  Memory
 savings are consistently > 5x.")
     (license license:bsd-3)))
 
-(define-public python2-kiwisolver
-  (package-with-python2 python-kiwisolver))
-
 (define-public slepc
   (package
     (name "slepc")
@@ -5365,7 +5363,6 @@ in finite element programs.")
        ;; Disable it for now.
        ;;("octave" ,octave-cli)
        ("python" ,python-2) ; print syntax
-       ;; ("python2-numpy" ,python2-numpy) ; only required for the tests
        ("zlib" ,zlib)))
     (arguments
      `(;; The 'share/flann/octave' contains a .mex file, which is an ELF file
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index b224a145d5..554d70f266 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -45,6 +45,8 @@
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org>
 ;;; Copyright © 2022 Sughosha <sughosha@disroot.org>
+;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -153,6 +155,7 @@
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio) ;libsndfile
   #: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-web)
@@ -1272,52 +1275,6 @@ standalone program which is able to download cover art, lyrics, photos,
 biographies, reviews and more.")
     (license license:lgpl3+)))
 
-(define-public gtklick
-  (package
-    (name "gtklick")
-    (version "0.6.4")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "http://das.nasophon.de/download/gtklick-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "0dq1km6njnzsqdqyf6wzir9g733z0mc9vmxfg2383k3c2a2di6bp"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; no tests
-       #:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'add-sitedirs
-           ;; .pth files are not automatically interpreted unless the
-           ;; directories containing them are added as "sites".  The directories
-           ;; are then added to those in the PYTHONPATH.  This is required for
-           ;; the operation of pygtk.
-           (lambda _
-             (substitute* "gtklick/gtklick.py"
-               (("import pygtk")
-                "import pygtk, site, sys
-for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
-         (add-after 'unpack 'inject-store-path-to-klick
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gtklick/klick_backend.py"
-               (("KLICK_PATH = 'klick'")
-                (string-append "KLICK_PATH = '"
-                               (assoc-ref inputs "klick")
-                               "/bin/klick'")))
-             #t)))))
-    (inputs
-     (list klick python2-pyliblo python2-pygtk))
-    (native-inputs
-     `(("gettext" ,gettext-minimal)))
-    (home-page "http://das.nasophon.de/gtklick/")
-    (synopsis "Simple metronome with an easy-to-use graphical interface")
-    (description
-     "Gtklick is a simple metronome with an easy-to-use graphical user
-interface.  It is implemented as a frontend to @code{klick}.")
-    (license license:gpl2+)))
-
 (define-public lingot
   (package
     (name "lingot")
@@ -1750,20 +1707,20 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
 (define-public non-sequencer
   ;; The latest tagged release is three years old and uses a custom build
   ;; system, so we take the last commit.
-  (let ((commit "5ae43bb27c42387052a73e5ffc5d33efb9d946a9")
-        (revision "4"))
+  (let ((commit "257ec5951e7d4086344d98c99ebbe569f7c31211")
+        (revision "5"))
     (package
       (name "non-sequencer")
-      (version (string-append "1.9.5-" revision "." (string-take commit 7)))
+      (version (git-version "1.9.5" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "git://git.tuxfamily.org/gitroot/non/non.git")
+                      (url "https://github.com/falkTX/non/")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx"))
-                (file-name (string-append name "-" version "-checkout"))))
+                  "0h6ycm3nbb5lvjvhymz5xlj8wqm3z3ggzn4ghmw6xyzd0l7c3m8b"))
+                (file-name (git-file-name name version))))
       (build-system waf-build-system)
       (arguments
        `(#:tests? #f ;no "check" target
@@ -1774,11 +1731,16 @@ music theorist Paul Nauert's quantization grids or Q-Grids, for short.")
                                                        (%current-system))))
                      '("--disable-sse")
                      '()))
-         #:python ,python-2))
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'configure 'setup-waf
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((waf (assoc-ref inputs "python-waf")))
+                 (copy-file (string-append waf "/bin/waf") "waf")))))))
       (inputs
        (list jack-1 libsigc++-2 liblo ntk))
       (native-inputs
-       (list pkg-config))
+       (list python-waf pkg-config))
       (home-page "https://non.tuxfamily.org/wiki/Non%20Sequencer")
       (synopsis "Pattern-based MIDI sequencer")
       (description
@@ -1789,6 +1751,31 @@ Sequencer happens on-line, in real-time.  Music can be composed live, while the
 transport is rolling.")
       (license license:gpl2+))))
 
+(define-public new-session-manager
+  (package
+    (name "new-session-manager")
+    (version "1.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/jackaudio/new-session-manager")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0ihngqbnc50izfy6x7nhgaah00byk8nl6n5smxbyb8fkhm2s8p21"))))
+    (build-system meson-build-system)
+    (native-inputs (list pkg-config))
+    (inputs (list fltk jack-2 liblo libx11))
+    (home-page "https://new-session-manager.jackaudio.org/")
+    (synopsis "Music production session management tool")
+    (description "New Session Manager (NSM) is a tool to assist music
+production by grouping standalone programs into sessions.  It can be used
+create a session, or project, and add programs to it and then use commands to
+save, start/stop, hide/show all programs at once, or individually.  The
+session can be interrupted and easily resumed at a later time.")
+    (license license:gpl3+)))
+
 (define-public non-session-manager
   (package (inherit non-sequencer)
     (name "non-session-manager")
@@ -1800,14 +1787,15 @@ transport is rolling.")
     (inputs
      (list jack-1 liblo ntk))
     (native-inputs
-     (list pkg-config))
+     (list python-waf pkg-config))
     (home-page "https://non.tuxfamily.org/nsm/")
     (synopsis "Audio session management")
     (description
      "The Non Session Manager is an API and an implementation for audio
 session management.  NSM clients use a well-specified OSC protocol to
 communicate with the session management daemon.")
-    (license license:gpl2+)))
+    (license license:gpl2+)
+    (properties `((superseded . ,new-session-manager)))))
 
 (define-public non-mixer
   (package (inherit non-sequencer)
@@ -1818,9 +1806,9 @@ communicate with the session management daemon.")
         `(cons "--project=mixer"
                (delete "--project=sequencer" ,flags)))))
     (inputs
-     (list jack-1 liblo ladspa lrdf ntk))
+     (list jack-1 liblo ladspa lrdf ntk lv2 lilv))
     (native-inputs
-     (list pkg-config))
+     (list python-waf pkg-config))
     (home-page "https://non.tuxfamily.org/wiki/Non%20Mixer")
     (synopsis "Modular digital audio mixer")
     (description
@@ -1842,7 +1830,7 @@ studio.")
     (inputs
      (list jack-1 liblo libsndfile ntk))
     (native-inputs
-     (list pkg-config))
+     (list python-waf pkg-config))
     (home-page "https://non.tuxfamily.org/wiki/Non%20Timeline")
     (synopsis "Modular digital audio timeline arranger")
     (description
@@ -2020,72 +2008,85 @@ Key features include:
 (define-public solfege
   (package
     (name "solfege")
-    (version "3.22.2")
+    (version "3.23.5pre2")
     (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "mirror://gnu/solfege/solfege-"
-                    version ".tar.xz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.savannah.gnu.org/git/solfege.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "1w25rxdbj907nsx285k9nm480pvy12w3yknfh4n1dfv17cwy072i"))))
+                "1lmzp4kn0xh58yc8gzriz1i34g5qaa2xxrxzpmr7v9jyk19dqmcm"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; xmllint attempts to download DTD
-       #:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-configuration
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "default.config"
-               (("/usr/bin/aplay") "aplay")
-               (("/usr/bin/timidity") "timidity")
-               (("/usr/bin/mpg123") "mpg123")
-               (("/usr/bin/ogg123") "ogg123"))))
-         (add-before 'build 'patch-python-shebangs
-           (lambda _
-             ;; Two python scripts begin with a Unicode BOM, so patch-shebang
-             ;; has no effect.
-             (substitute* '("solfege/parsetree.py"
-                            "solfege/presetup.py")
-               (("#!/usr/bin/python") (string-append "#!" (which "python"))))))
-         (add-before 'build 'add-sitedirs
-           ;; .pth files are not automatically interpreted unless the
-           ;; directories containing them are added as "sites".  The directories
-           ;; are then added to those in the PYTHONPATH.  This is required for
-           ;; the operation of pygtk and pygobject.
-           (lambda _
-             (substitute* "run-solfege.py"
-               (("import os")
-                "import os, site
-for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))
-             #t))
-         (add-before 'build 'adjust-config-file-prefix
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "run-solfege.py"
-               (("prefix = os.path.*$")
-                (string-append "prefix = " (assoc-ref outputs "out"))))
-             #t))
-         (add-after 'install 'wrap-program
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Make sure 'solfege' runs with the correct PYTHONPATH.
-             (let* ((out (assoc-ref outputs "out"))
-                    (path (getenv "GUIX_PYTHONPATH")))
-               (wrap-program (string-append out "/bin/solfege")
-                 `("GUIX_PYTHONPATH" ":" prefix (,path))))
-             #t)))))
+     (list
+      #:tests? #f                       ;xmllint attempts to download DTD
+      #:test-target "test"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'set-version
+            (lambda _
+              (substitute* "autogen.sh"
+                (("python3 -c \"import tools.*create_versions_file.*")
+                 (string-append "echo \"version_info = '"
+                                #$version "' > solfege/_version.py\"\n")))
+              (substitute* "Makefile.in"
+                (("\\$\\(PYTHON) -c \"import tools.*create_versions_file.*")
+                 "true\n"))
+              (substitute* "solfege/buildinfo.py.in"
+                (("from solfege._version import version_info")
+                 "version_info = {'git_sha': 'N/A'}"))))
+          (add-after 'unpack 'fix-configuration
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "default.config"
+                (("/usr/bin/aplay") "aplay")
+                (("/usr/bin/timidity") "timidity")
+                (("/usr/bin/mpg123") "mpg123")
+                (("/usr/bin/ogg123") "ogg123"))))
+          (add-before 'build 'patch-python-shebangs
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; Two python scripts begin with a Unicode BOM, so patch-shebang
+              ;; has no effect.
+              (substitute* '("solfege/parsetree.py"
+                             "solfege/presetup.py")
+                (("#!/usr/bin/python")
+                 (string-append "#!" search-input-file inputs "bin/python")))))
+          (add-before 'build 'add-sitedirs
+            ;; .pth files are not automatically interpreted unless the
+            ;; directories containing them are added as "sites".  The
+            ;; directories are then added to those in the PYTHONPATH.  This is
+            ;; required for the operation of pygtk and pygobject.
+            (lambda _
+              (substitute* "run-solfege.py"
+                (("import os")
+                 "import os, site
+for path in [path for path in sys.path if 'site-packages' in path]: site.addsitedir(path)"))))
+          (add-before 'build 'adjust-config-file-prefix
+            (lambda _
+              (substitute* "run-solfege.py"
+                (("prefix = os.path.*$")
+                 (string-append "prefix = " #$output)))))
+          (add-after 'install 'wrap-program
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; Make sure 'solfege' runs with the correct PYTHONPATH.
+              (let ((path (getenv "GUIX_PYTHONPATH")))
+                (wrap-program (search-input-file outputs "bin/solfege")
+                  `("GUIX_PYTHONPATH" ":" prefix (,path)))))))))
     (inputs
-     `(("python" ,python-2)
-       ("pygtk" ,python2-pygtk)
-       ("gettext" ,gettext-minimal)
-       ("gtk" ,gtk+)
-       ("lilypond" ,lilypond)))
+     (list python-wrapper
+           python-pygobject
+           gettext-minimal
+           gtk+
+           lilypond))
     (native-inputs
-     (list pkg-config
+     (list autoconf
+           automake
+           pkg-config
            txt2man
-           libxml2 ; for tests
+           libxml2                      ; for tests
            ghostscript
-           texinfo-5))
+           texinfo))
     (home-page "https://www.gnu.org/software/solfege/")
     (synopsis "Ear training")
     (description
@@ -2294,7 +2295,7 @@ perform creative live mixes with digital music files.")
      (list jack-1
            lv2
            alsa-lib
-           non-session-manager
+           new-session-manager
            liblo
            qtbase-5))
     (native-inputs
@@ -2326,7 +2327,7 @@ oscillators and stereo effects.")
            lv2
            libsndfile
            alsa-lib
-           non-session-manager
+           new-session-manager
            liblo
            qtbase-5))
     (native-inputs
@@ -2358,7 +2359,7 @@ effects.")
            lv2
            libsndfile
            alsa-lib
-           non-session-manager
+           new-session-manager
            liblo
            qtbase-5))
     (native-inputs
@@ -2389,7 +2390,7 @@ effects.")
      (list jack-1
            lv2
            alsa-lib
-           non-session-manager
+           new-session-manager
            liblo
            fftwf
            qtbase-5))
@@ -2506,48 +2507,6 @@ modification devices that brought world-wide fame to the names and products of
 Laurens Hammond and Don Leslie.")
     (license license:gpl2+)))
 
-(define-public beast
-  (package
-    (name "beast")
-    (version "0.10.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://testbit.eu/pub/dists/beast/beast-"
-                                  version ".tar.xz"))
-              (sha256
-               (base32
-                "1jzzmfwssklzw8fvvil04n8csc0zm99fnd9p2xa7c0xchg37lvhn"))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:parallel-build? #f)) ; Race conditions cause build failures
-    (inputs
-     `(("rapicorn" ,rapicorn)
-       ("guile" ,guile-1.8)
-       ("python" ,python-2)
-       ("libgnomecanvas" ,libgnomecanvas)
-       ("libogg" ,libogg)
-       ("libmad" ,libmad)
-       ("flac" ,flac)
-       ("alsa-lib" ,alsa-lib)
-       ("libvorbis" ,libvorbis)
-       ("gettext" ,gettext-minimal)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin")
-       ("cython" ,python2-cython)
-       ("perl" ,perl)
-       ("perl-xml-parser" ,perl-xml-parser)))
-    (home-page "https://testbit.eu/wiki/Beast_Home")
-    (synopsis "Music composition and modular synthesis environment")
-    (description
-     "Beast is a music composition and modular synthesis application.  It
-supports a wide range of standards in the field, such as MIDI, various audio
-file formats and LADSPA modules.  It allows for multitrack editing, real-time
-synthesis, 32bit audio rendering, precise timing down to sample granularity,
-on-demand and partial loading of wave files, on the fly decoding, stereo
-mixing, FFT scopes, MIDI automation and full scriptability in Scheme.")
-    (license license:gpl3+)))
-
 (define-public bristol
   (package
     (name "bristol")
@@ -3442,11 +3401,11 @@ analogue-like user interface.")
 (define-public mod-host
   ;; The last release was in 2014 but since then hundreds of commits have
   ;; been made.
-  (let ((commit "1726ad06b11323da7e1aaed690ff8aef91f702b5")
-        (revision "3"))
+  (let ((commit "cdd30ddbd2cc916be8a0364275071c3d8335b3a7")
+        (revision "4"))
     (package
       (name "mod-host")
-      (version (string-append "0.10.6-" revision "." (string-take commit 9)))
+      (version (git-version "0.10.6" revision commit))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
@@ -3454,34 +3413,33 @@ analogue-like user interface.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1nrd37c35w6z6ldczgrwmmd9hx1n3zyvcjcgb3mi4cygqdanvspv"))
-                (file-name (string-append name "-" version "-checkout"))))
+                  "1xnflvcyj071gn9nhv5dynd0v85nq99sz1wn3adlj43l5m4fbx3a"))
+                (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f ; no tests included
-         #:make-flags
-         (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
-               "CC=gcc")
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (add-after 'unpack 'fix-jack-installation-directory
-             (lambda _
-               ;; Do not attempt to install files to output of "jack" package.
-               (substitute* "Makefile"
-                 (("\\$\\(shell pkg-config --variable=libdir jack\\)")
-                  "lib"))
-               #t)))))
+       (list
+        #:tests? #f                     ; no tests included
+        #:make-flags
+        #~(list (string-append "PREFIX=" #$output) "CC=gcc")
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (add-after 'unpack 'fix-jack-installation-directory
+              (lambda _
+                ;; Do not attempt to install files to output of "jack" package.
+                (substitute* "Makefile"
+                  (("\\$\\(shell pkg-config --variable=libdir jack\\)")
+                   "lib")))))))
       (inputs
        (list lilv
              fftw
              fftwf
              lv2
-             jack-1
+             jack-2
              readline))
       (native-inputs
-       `(("pkg-config" ,pkg-config)
-         ("python" ,python-2)))
+       (list pkg-config
+             python-wrapper))
       (home-page "https://github.com/moddevices/mod-host")
       (synopsis "LV2 host for Jack controllable via socket or command line")
       (description "mod-host is an LV2 plugin host for JACK, controllable via
@@ -3672,9 +3630,6 @@ MusicBrainz database.")
     ;; 'musicbrainzngs/compat.py' is ISC licensed.
     (license (list license:bsd-2 license:isc))))
 
-(define-public python2-musicbrainzngs
-  (package-with-python2 python-musicbrainzngs))
-
 (define-public python-isrcsubmit
   (package
     (name "python-isrcsubmit")
@@ -3696,39 +3651,6 @@ Standard Recording Code} (ISRCs) from audio CDs and submit them to
 @url{https://musicbrainz.org/, MusicBrainz}.")
     (license license:gpl3+)))
 
-(define-public python2-pyechonest
-  (package
-    (name "python2-pyechonest")
-    (version "9.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "pyechonest" version))
-              (sha256
-               (base32
-                "1584nira3rkiman9dm81kdshihmkj21s8navndz2l8spnjwb790x"))))
-    (build-system python-build-system)
-    (arguments
-     `(;; Python 3 is not supported:
-       ;; https://github.com/echonest/pyechonest/issues/42
-       #:python ,python-2))
-    (home-page "https://github.com/echonest/pyechonest")
-    (synopsis "Python interface to The Echo Nest APIs")
-    (description "Pyechonest is a Python library for the Echo Nest API.  With
-Pyechonest you have Python access to the entire set of API methods including:
-
-@enumerate
-@item artist - search for artists by name, description, or attribute, and get
-back detailed information about any artist including audio, similar artists,
-blogs, familiarity, hotttnesss, news, reviews, urls and video.
-@item song - search songs by artist, title, description, or attribute (tempo,
-duration, etc) and get detailed information back about each song, such as
-hotttnesss, audio_summary, or tracks.
-@item track - upload a track to the Echo Nest and receive summary information
-about the track including key, duration, mode, tempo, time signature along with
-detailed track info including timbre, pitch, rhythm and loudness information.
-@end enumerate\n")
-    (license license:bsd-3)))
-
 (define-public python-pylast
   (package
     (name "python-pylast")
@@ -4475,91 +4397,6 @@ filters, crossovers, simple gain plugins without zipper noise, switch box
 plugins, a switch trigger, a toggle switch, and a peakmeter.")
       (license license:gpl2+))))
 
-(define-public ingen
-  (let ((commit "cc4a4db33f4d126a07a4a498e053c5fb9a883be3")
-        (revision "2"))
-    (package
-      (name "ingen")
-      (version (string-append "0.0.0-" revision "."
-                              (string-take commit 9)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.drobilla.net/ingen.git")
-               (commit commit)))
-         (file-name (string-append name "-" version "-checkout"))
-         (sha256
-          (base32
-           "1wg47vjw9djn99gbnsl2bcwj4xhdid61m4wrbn2nlp797flj91ic"))))
-      (build-system waf-build-system)
-      (arguments
-       `(#:python ,python-2
-         #:tests? #f ; no "check" target
-         #:configure-flags (list "--no-webkit")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-wscript
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out")))
-                 (substitute* "wscript"
-                   ;; FIXME: Our version of lv2specgen.py does not behave as
-                   ;; expected.  Maybe this requires a development version of
-                   ;; LV2.
-                   (("lv2specgen.py") "touch ingen.lv2/ingen.html; echo")
-                   ;; Add libraries to RUNPATH.
-                   (("^(.+)target.*= 'src/ingen/ingen'," line prefix)
-                    (string-append prefix
-                                   "linkflags=[\"-Wl,-rpath="
-                                   out "/lib" "\"]," line)))
-                 (substitute* '("src/wscript"
-                                "src/server/wscript")
-                   ;; Add libraries to RUNPATH.
-                   (("bld.env.PTHREAD_LINKFLAGS" line)
-                    (string-append line
-                                   " + [\"-Wl,-rpath=" out "/lib" "\"]")))
-                 (substitute* "src/client/wscript"
-                   ;; Add libraries to RUNPATH.
-                   (("^(.+)target.*= 'ingen_client'," line prefix)
-                    (string-append prefix
-                                   "linkflags=[\"-Wl,-rpath="
-                                   out "/lib" "\"]," line)))
-                 (substitute* "src/gui/wscript"
-                   ;; Add libraries to RUNPATH.
-                   (("^(.+)target.* = 'ingen_gui.*" line prefix)
-                    (string-append prefix
-                                   "linkflags=[\"-Wl,-rpath="
-                                   out "/lib" "\"]," line))))
-               #t)))))
-      (inputs
-       (list boost
-             python-rdflib
-             python
-             jack-1
-             lv2
-             lilv
-             raul-devel
-             ganv
-             suil
-             serd
-             sord
-             sratom
-             gtkmm-2))
-      (native-inputs
-       (list pkg-config python-pygments))
-      (home-page "https://drobilla.net/software/ingen")
-      (synopsis "Modular audio processing system")
-      (description "Ingen is a modular audio processing system for JACK and
-LV2 based systems.  Ingen is built around LV2 technology and a strict
-separation of engine from user interface.  The engine is controlled
-exclusively through a protocol, and can execute as a headless process, with an
-in-process GUI, or as an LV2 plugin.  The GUI can run as a program which
-communicates over a Unix or TCP/IP socket, or as an embeddable LV2 GUI which
-communicates via LV2 ports.  Any saved Ingen graph can be loaded as an LV2
-plugin on any system where Ingen is installed.  This allows users to visually
-develop custom plugins for use in other applications without programming.")
-      (license license:agpl3+))))
-
 (define-public qmidiarp
   (package
     (name "qmidiarp")
@@ -5669,45 +5506,6 @@ with error and volume history, and advanced features.")
     ;; are under LGPL2.1.
     (license (list license:gpl2+ license:lgpl2.1))))
 
-(define-public mloop
-  (let ((commit "adebff98b0b4dc5872a03acb82e89c77cb29c127")
-        (revision "0"))
-    (package
-      (name "mloop")
-      (version (git-version "0.0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "http://git.fuzzle.org/mloop")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "175gxvg5slq0bllcx1c381rjlq3xpxww8c3kpiw5i2kfr4m52myz"))))
-      (build-system waf-build-system)
-      (arguments
-       `(#:python ,python-2
-         #:tests? #f))                     ; no "check" target
-      (inputs
-       (list jack-1 ncurses))
-      (native-inputs
-       (list pkg-config))
-      (home-page "https://fuzzle.org/~petern/mloop.html")
-      (synopsis "Live MIDI looper")
-      (description "mloop is a live MIDI looping system, using jack-midi.
-Loops are recorded, optionally with beat quantization, and can then be played
-back, either once or looping.  A 'note cache' system is implemented to
-remember which notes are pressed and their velocities.  This allows for a loop
-to start off with the currently pressed notes, making seamless loops much
-easier to perform.  Features include:
-
-@itemize
-@item Quantisation; end a loop on a beat exactly.
-@item Delayed recording; wait for a MIDI event before starting a loop record.
-@item Adjust tempo; Playback speed of loops can be adjusted on the fly.
-@end itemize\n")
-      (license license:gpl2))))
-
 (define-public pragha
   (package
     (name "pragha")
@@ -6878,3 +6676,87 @@ choice.")
 streaming audio server.")
     (home-page "https://musikcube.com/")
     (license license:bsd-3)))
+
+(define-public quodlibet
+  (package
+    (name "quodlibet")
+    (version "4.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/quodlibet/quodlibet")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1i5k93k3bfp7hpcwkbr865mbj9jam3jv2a5k1bazcyp4f5vdrb0v"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:modules '((guix build python-build-system)
+                  ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+                  (guix build utils))
+      #:imported-modules `((guix build python-build-system)
+                           ,@%glib-or-gtk-build-system-modules)
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'check 'pre-check
+            (lambda _
+              (setenv "HOME" (getcwd))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (if tests?
+                  (invoke "xvfb-run" "pytest"
+                          ;; needs network
+                          "--ignore=tests/test_browsers_iradio.py"
+                          ;; broken upstream
+                          "--disable-warnings"
+                          "--ignore=tests/quality")
+                  (format #t "test suite not run~%"))))
+          (add-after 'install 'glib-or-gtk-wrap ; ensure icons loaded
+            (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+          (add-after 'install 'wrap-extra-paths
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out"))
+                    (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
+                    (gst-plugins-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+                (for-each
+                 (lambda (prog)
+                   (wrap-program (string-append out "/bin/" prog)
+                     `("GI_TYPELIB_PATH" ":" = (,gi-typelib-path))
+                     `("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))
+                 '("exfalso" "quodlibet"))))))))
+    (native-inputs (list xvfb-run gettext-minimal))
+    (inputs
+     (list adwaita-icon-theme
+           bash-minimal
+           glib
+           gsettings-desktop-schemas
+           gst-plugins-bad
+           gst-plugins-base
+           gst-plugins-good
+           gst-plugins-ugly
+           gstreamer
+           gtk+
+           hicolor-icon-theme
+           librsvg
+           libsoup-minimal-2
+           python
+           python-cheetah
+           python-dbus
+           python-feedparser
+           python-gst
+           python-iniconfig
+           python-mutagen
+           python-pycairo
+           python-pygobject
+           python-pytest
+           python-sgmllib3k
+           python-toml))
+    (home-page "https://github.com/quodlibet/quodlibet")
+    (synopsis "Music manager and player")
+    (description "Quod Libet provides several ways to browse and view your
+local music library, along with flexible search capabilities.  It includes
+a tag editor, which can also be invoked as a standalone program, and further
+supports streaming audio and feeds (such as podcasts).")
+    (license license:gpl2+)))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 99145b2b47..bfa956149d 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Simon South <simon@simonsouth.net>
+;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1655,7 +1656,7 @@ round-robin fashion.")
     (propagated-inputs
      (list openssh))           ; used by gandi/cli/modules/iass.py
     (inputs
-     (list openssl python-click python-ipy python-pyyaml python-requests))
+     (list openssl python-click-7 python-ipy python-pyyaml python-requests))
     (home-page "https://cli.gandi.net")
     (synopsis "Command-line interface to the Gandi.net Web API")
     (description
@@ -2621,9 +2622,6 @@ handling for most notations in use for IPv4 and IPv6 addresses and
 networks.")
     (license license:bsd-3)))
 
-(define-public python2-ipy
-  (package-with-python2 python-ipy))
-
 (define-public speedtest-cli
   (package
     (name "speedtest-cli")
diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm
index aae8886095..5e719ad5b8 100644
--- a/gnu/packages/nss.scm
+++ b/gnu/packages/nss.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2021 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ -144,6 +144,11 @@ in the Mozilla clients.")
          (list "-C" "nss" (string-append "PREFIX=" out)
                "NSDISTMODE=copy"
                "NSS_USE_SYSTEM_SQLITE=1"
+               ;; The gtests fail to compile on riscv64.
+               ;; Skipping them doesn't affect the test suite.
+               ,@(if (target-riscv64?)
+                   `("NSS_DISABLE_GTESTS=1")
+                   '())
                (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
                ;; Add $out/lib/nss to RPATH.
                (string-append "RPATH=" rpath)
@@ -153,6 +158,9 @@ in the Mozilla clients.")
                   (ice-9 ftw)
                   (ice-9 match)
                   (srfi srfi-26))
+       #:tests? ,(not (or (%current-target-system)
+                          ;; Tests take more than 30 hours on riscv64-linux.
+                          (target-riscv64?)))
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
diff --git a/gnu/packages/nutrition.scm b/gnu/packages/nutrition.scm
index f936c2651b..90a70753de 100644
--- a/gnu/packages/nutrition.scm
+++ b/gnu/packages/nutrition.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,60 +21,141 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages nutrition)
+  #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module (guix licenses)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix build-system python)
   #:use-module (gnu packages)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
-  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages enchant)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages image)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml))
 
-(define-public gourmet
+(define-public python-scrape-schema-recipe
   (package
-    (name "gourmet")
-    (version "0.17.4")
-    (source
-     (origin
-      (method git-fetch)
-      (uri (git-reference
-             (url "https://github.com/thinkle/gourmet")
-             (commit version)))
-      (file-name (git-file-name name version))
-      (sha256
-       (base32
-        "09a2zk140l4babwdj8pwcgl9v7rvwff9cn7h3ppfhm3yvsgkrx07"))))
+    (name "python-scrape-schema-recipe")
+    (version "0.2.0")
+    ;; The PyPI archive lacks a VERSION file as well as the test suite.
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/micahcochran/scrape-schema-recipe")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "044c6qwhb4c710ksgiw29cd0qcp84h1m4y8yr2g4c8vdlm3kkqh5"))))
     (build-system python-build-system)
-    (native-inputs
-     `(("distutils-extra"   ,python2-distutils-extra)
-       ("intltool"          ,intltool)
-       ("python-pygtk"      ,python2-pygtk))) ;for tests
-    ;; TODO: Add python-reportlab and/or python-poppler for printing/pdf
-    ;; export, and python-beautifulsoup for web import plugin.
-    (inputs
-     `(("pygtk"             ,python2-pygtk)
-       ("sqlalchemy"        ,python2-sqlalchemy)
-       ("python-lxml"       ,python2-lxml)
-       ("python-pillow"     ,python2-pillow)
-       ("elib.intl"         ,python2-elib.intl)))
     (arguments
-     `(#:python ,python-2               ;exception and print syntax
-       #:tests? #f                      ;tests look bitrotted
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (invoke "python" "setup.py" "install" "--prefix"
-                     (assoc-ref outputs "out")))))))
-    (home-page "https://thinkle.github.io/gourmet/")
-    (synopsis "Recipe organizer")
-    (description
-     "Gourmet Recipe Manager is a recipe organizer that allows you to collect,
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (substitute* "test_scrape.py"
+                  (("DISABLE_NETWORK_TESTS = False")
+                   "DISABLE_NETWORK_TESTS = True"))
+                (invoke "pytest" "-vv")))))))
+    (native-inputs (list python-pytest))
+    (propagated-inputs
+     (list python-extruct
+           python-importlib-resources
+           python-isodate
+           python-requests))
+    (home-page "https://github.com/micahcochran/scrape-schema-recipe")
+    (synopsis "HTML Recipe format extractor")
+    (description "This tool extracts cooking recipe from HTML structured data
+in the @url{https://schema.org/Recipe} format.")
+    (license asl2.0)))
+
+(define-public gourmet
+  ;; Use the latest commit to gain Python 3 support.
+  (let ((revision "0")
+        (commit "8af29c8ded24528030e5ae2ea3461f61c1e5a575"))
+    (package
+      (name "gourmet")
+      (version (git-version "0.17.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/thinkle/gourmet")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "08fbw6zp32ws6w9czwy2sqc9c9izlkglsskshj2114d0l79z4gj8"))
+         (patches (search-patches "gourmet-sqlalchemy-compat.patch"))))
+      (build-system python-build-system)
+      (arguments
+       (list
+        #:modules `((guix build utils)
+                    (guix build python-build-system)
+                    (ice-9 ftw)
+                    (srfi srfi-26))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-before 'check 'prepare-x
+              ;; Both the tests and the sanity-check phase need an X server to
+              ;; succeed.
+              (lambda _
+                (system "Xvfb &")
+                (setenv "DISPLAY" ":0")))
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (setenv "HOME" "/tmp") ;needed by tests
+                  (apply invoke "pytest" "-vv"
+                         ;; XXX: This is needed because some tests in deeper
+                         ;; directories or otherwise discovered by Pytest are
+                         ;; broken.
+                         (map (cut string-append "gourmet/tests/" <>)
+                              (scandir "gourmet/tests"
+                                       (cut string-prefix? "test_" <>)))))))
+            (add-after 'install 'install-dekstop-file-and-icons
+              (lambda _
+                (define share (string-append #$output "/share"))
+                (install-file ".flatpak/io.github.thinkle.Gourmet.desktop"
+                              (string-append share "/applications"))
+                (install-file ".flatpak/io.github.thinkle.Gourmet.svg"
+                              (string-append share "/icons/Gourmet")))))))
+      (native-inputs
+       (list python-dogtail
+             python-pytest
+             python-selenium
+             xorg-server-for-tests))
+      (inputs
+       (list gtk+
+             python-argcomplete
+             python-beautifulsoup4
+             python-gst
+             python-keyring
+             python-lxml
+             python-pillow
+             python-pycairo
+             python-pyenchant
+             python-pygobject
+             python-requests
+             python-scrape-schema-recipe
+             python-sqlalchemy))
+      (home-page "https://thinkle.github.io/gourmet/")
+      (synopsis "Recipe organizer")
+      (description
+       "Gourmet Recipe Manager is a recipe organizer that allows you to collect,
 search, organize, and browse your recipes.  Gourmet can also generate shopping
 lists and calculate nutritional information.  It imports Mealmaster,
 MasterCook and KRecipe files and exports PDFs, webpages, and other formats.")
-    (license gpl2+)))
+      (license gpl2+))))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index e6d6bc7a89..5591e08d78 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -24,6 +24,7 @@
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -663,21 +664,20 @@ underlying solvers like Cplex, Gurobi, Lpsolver, Glpk, CbC, SCIP or WBO.")
                 "ocaml-dose3-Install-mli-cmx-etc.patch"))))
     (build-system ocaml-build-system)
     (arguments
-     `(#:configure-flags
+     `(#:tests? #f                      ;the test suite requires python 2
+       #:configure-flags
        ,#~(list (string-append "SHELL="
                                #+(file-append (canonical-package bash-minimal)
                                               "/bin/sh")))
        #:make-flags
        ,#~(list (string-append "LIBDIR=" #$output "/lib/ocaml/site-lib"))))
     (propagated-inputs
-      (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re))
+     (list ocaml-graph ocaml-cudf ocaml-extlib ocaml-re))
     (native-inputs
-      `(("perl" ,perl)
-        ("python" ,python-2) ; for a test script
-        ("python2-pyyaml" ,python2-pyyaml) ; for a test script
-        ("ocaml-extlib" ,ocaml-extlib)
-        ("ocamlbuild" ,ocamlbuild)
-        ("ocaml-cppo" ,ocaml-cppo)))
+     (list perl
+           ocaml-extlib
+           ocamlbuild
+           ocaml-cppo))
     (home-page "https://www.mancoosi.org/software/")
     (synopsis "Package distribution management framework")
     (description "Dose3 is a framework made of several OCaml libraries for
diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm
index 190bed2725..cc0f84d55c 100644
--- a/gnu/packages/ocr.scm
+++ b/gnu/packages/ocr.scm
@@ -240,21 +240,4 @@ that allows us to create any hand-written recognition systems with low-cost.")
                      license:x11 ; 'install-sh'
                      license:public-domain))))) ; 'install-sh'
 
-;;; python 2 bindings, license under the same terms as zinnia
-(define-public python2-zinnia
-  (package
-    (inherit zinnia)
-    (name "python2-zinnia")
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2 ; CObject API is used, it was removed in Python 3.2
-       #:tests? #f ; avoid circular dependency on tegaki-zinnia-japanese
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'chdir
-           (lambda _
-             (chdir "zinnia/python")
-             #t)))))
-    (inputs
-     (list zinnia))))
 
diff --git a/gnu/packages/openbox.scm b/gnu/packages/openbox.scm
index 873592c19e..2dac9ec644 100644
--- a/gnu/packages/openbox.scm
+++ b/gnu/packages/openbox.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Nikita <nikita@n0.is>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,9 @@
   #:use-module (guix download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix gexp)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
@@ -46,10 +50,18 @@
                     version ".tar.xz"))
               (sha256
                (base32
-                "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))))
+                "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))
+              (patches (search-patches "openbox-python3.patch"))))
     (build-system gnu-build-system)
-    (native-inputs (list pkg-config))
-    (propagated-inputs (list python2-pyxdg))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'force-reconfigure
+                 ;; This is made necessary by the openbox-python3 patch.
+                 (lambda _
+                   (delete-file "configure"))))))
+    (native-inputs (list autoconf automake gettext-minimal libtool pkg-config))
+    (propagated-inputs (list python-pyxdg))
     (inputs (list imlib2
                   libxml2
                   (librsvg-for-system)
@@ -60,7 +72,7 @@
                   libxrandr
                   libxft
                   pango
-                  python-2))
+                  python-wrapper))
     (synopsis "Box style window manager")
     (description
      "Openbox is a highly configurable, next generation window manager with
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 86e80e8328..da140b29ad 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -34,6 +34,7 @@
 ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 David Dashyan <mail@davie.li>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -952,13 +953,13 @@ between hosts and entries in the password store.")
       (native-inputs
        (list perl))
       (inputs
-       `(("gmp" ,gmp)
-         ("libpcap" ,libpcap)
-         ("nss" ,nss)
-         ("openssl" ,openssl)
-         ("python" ,python-2)           ; For "python" and "python2" shebangs
-         ("ruby" ,ruby)                 ; For genincstats.rb
-         ("zlib" ,zlib)))
+       (list gmp
+             libpcap
+             nss
+             openssl
+             python-wrapper
+             ruby                       ; For genincstats.rb
+             zlib))
       (arguments
        `(#:configure-flags
          (list "--with-systemwide"
@@ -1019,8 +1020,7 @@ between hosts and entries in the password store.")
                                      (find-files "." "(.*\\.chr|.*\\.lst)")
                                      (find-files "." ".*\\.conf")))
                    (copy-recursively "rules" (string-append datadir "/rules")))
-                 (copy-recursively "../doc" docdir)
-                 #t)))
+                 (copy-recursively "../doc" docdir))))
            (delete 'check) ; Tests need installed .conf files; move after install
            (add-after 'install 'check
              (lambda args
@@ -1036,33 +1036,6 @@ of the box are Windows LM hashes, plus lots of other hashes and ciphers.  This
 is the community-enhanced, \"jumbo\" version of John the Ripper.")
       (license license:gpl2+))))
 
-(define-public sala
-  (package
-    (name "sala")
-    (version "1.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "sala" version))
-       (sha256
-        (base32
-         "13qgmc3i2a0cqp8jqrfl93lnphfagb32pgfikc1gza2a14asxzi8"))))
-    (build-system python-build-system)
-    (arguments
-     ;; Sala is supposed to work with Python 3.2 or higher,
-     ;; but it doesn't work with Python 3.6. Better stick
-     ;; to Python 2, which works fine.
-     `(#:python ,python-2))
-    (propagated-inputs
-     (list gnupg pwgen))
-    (home-page "http://www.digip.org/sala/")
-    (synopsis "Encrypted plaintext password store")
-    (description
-     "Store passwords and other bits of sensitive plain-text information
-to encrypted files on a directory hierarchy.  The information is protected
-by GnuPG's symmetrical encryption.")
-    (license license:expat)))
-
 (define-public fpm2
   (package
     (name "fpm2")
diff --git a/gnu/packages/patches/4store-fix-buildsystem.patch b/gnu/packages/patches/4store-fix-buildsystem.patch
deleted file mode 100644
index 383baa9461..0000000000
--- a/gnu/packages/patches/4store-fix-buildsystem.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-This patch sets a fixed version to avoid needing Git and the .git/ folder.
-It also removes the creation of "/var/lib/4store", which is not available
-during the install phase in GNU Guix.
-
-Patch by Roel Janssen <roel@gnu.org>
-*** a/configure.ac	Wed Feb  4 19:05:24 2015
---- b/configure.ac	Wed Mar 23 11:20:38 2016
-***************
-*** 2,13 ****
-  # Process this file with autoconf to produce a configure script.
-
-  AC_PREREQ([2.50])
-! AC_INIT([4store], m4_esyscmd([./version.sh .version]), [http://4store.org/support/], [4store])
-  AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
-! AM_INIT_AUTOMAKE([1.7 std-options -Wall])
-  AC_CONFIG_HEADERS(4store-config.h)
-
-  # Checks for programs.
-  AC_PROG_LIBTOOL
-  AC_PROG_AWK
-  AC_PROG_CC
---- 2,14 ----
-  # Process this file with autoconf to produce a configure script.
-
-  AC_PREREQ([2.50])
-! AC_INIT([4store], [1.1.6], [http://4store.org/support/], [4store])
-  AC_CONFIG_SRCDIR([src/backend/backend-intl.h])
-! AM_INIT_AUTOMAKE([1.7 std-options foreign -Wall])
-  AC_CONFIG_HEADERS(4store-config.h)
-
-  # Checks for programs.
-+ AM_PROG_AR
-  AC_PROG_LIBTOOL
-  AC_PROG_AWK
-  AC_PROG_CC
-
-*** a/src/utilities/Makefile.am	Wed Feb  4 19:05:24 2015
---- b/src/utilities/Makefile.am	Wed Mar 23 14:05:56 2016
-***************
-*** 13,20 ****
-  noinst_PROGRAMS = lex-file-verify 4s-rid
-
-  install-data-local: 
-! 	mkdir -p $(DESTDIR)@FS_STORE_ROOT@
-! 	chmod 1777 $(DESTDIR)@FS_STORE_ROOT@
-
-  4s_backend_destroy_SOURCES = backend-destroy.c
-  4s_backend_destroy_LDADD = ../common/lib4sintl.a
---- 13,19 ----
-  noinst_PROGRAMS = lex-file-verify 4s-rid
-
-  install-data-local: 
-! 	echo "Please create the following directory: " $(DESTDIR)@FS_STORE_ROOT@
-
-  4s_backend_destroy_SOURCES = backend-destroy.c
-  4s_backend_destroy_LDADD = ../common/lib4sintl.a
diff --git a/gnu/packages/patches/4store-unset-preprocessor-directive.patch b/gnu/packages/patches/4store-unset-preprocessor-directive.patch
deleted file mode 100644
index c4b1d6eda4..0000000000
--- a/gnu/packages/patches/4store-unset-preprocessor-directive.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This patch removes the _XOPEN_SOURCE preprocessor directive as it does not seem to be needed.
-Setting it removes the definition of strdup, which is used in filter-datatypes.c.
-
-Patch by Roel Janssen <roel@gnu.org>
-*** a/src/frontend/filter-datatypes.c	1970-01-01 01:00:00.000000000 +0100
---- b/src/frontend/filter-datatypes.c	2018-04-03 17:39:23.177905592 +0200
-***************
-*** 18,24 ****
-   *  Copyright (C) 2006 Steve Harris for Garlik
-   */
-  
-- #define _XOPEN_SOURCE
-  #include <stdlib.h>
-  #include <string.h>
-  #include <math.h>
---- 18,23 ----
diff --git a/gnu/packages/patches/breezy-fix-gio.patch b/gnu/packages/patches/breezy-fix-gio.patch
new file mode 100644
index 0000000000..f70e761555
--- /dev/null
+++ b/gnu/packages/patches/breezy-fix-gio.patch
@@ -0,0 +1,338 @@
+This patch combines https://code.launchpad.net/~jelmer/brz/enable-gio/+merge/419150
+and https://bazaar.launchpad.net/~jelmer/brz/fix-gio/revision/7570.
+
+=== modified file 'breezy/transport/gio_transport.py'
+--- a/breezy/transport/gio_transport.py	2022-04-09 12:17:41 +0000
++++ b/breezy/transport/gio_transport.py	2022-04-09 12:33:51 +0000
+@@ -52,11 +52,7 @@
+ from ..tests.test_server import TestServer
+ 
+ try:
+-    import glib
+-except ImportError as e:
+-    raise errors.DependencyNotPresent('glib', e)
+-try:
+-    import gio
++    from gi.repository import Gio as gio
+ except ImportError as e:
+     raise errors.DependencyNotPresent('gio', e)
+ 
+
+@@ -57,6 +57,9 @@
+     raise errors.DependencyNotPresent('gio', e)
+ 
+ 
++from gi.repository.GLib import GError
++
++
+ class GioLocalURLServer(TestServer):
+     """A pretend server for local transports, using file:// urls.
+ 
+@@ -81,7 +84,7 @@
+     def __init__(self, transport, relpath):
+         FileStream.__init__(self, transport, relpath)
+         self.gio_file = transport._get_GIO(relpath)
+-        self.stream = self.gio_file.create()
++        self.stream = self.gio_file.create(0, None)
+ 
+     def _close(self):
+         self.stream.close()
+@@ -90,7 +93,7 @@
+         try:
+             # Using pump_string_file seems to make things crash
+             osutils.pumpfile(BytesIO(bytes), self.stream)
+-        except gio.Error as e:
++        except GError as e:
+             # self.transport._translate_gio_error(e,self.relpath)
+             raise errors.BzrError(str(e))
+ 
+@@ -98,12 +101,12 @@
+ class GioStatResult(object):
+ 
+     def __init__(self, f):
+-        info = f.query_info('standard::size,standard::type')
++        info = f.query_info('standard::size,standard::type', 0, None)
+         self.st_size = info.get_size()
+         type = info.get_file_type()
+-        if (type == gio.FILE_TYPE_REGULAR):
++        if type == gio.FileType.REGULAR:
+             self.st_mode = stat.S_IFREG
+-        elif type == gio.FILE_TYPE_DIRECTORY:
++        elif type == gio.FileType.DIRECTORY:
+             self.st_mode = stat.S_IFDIR
+ 
+ 
+@@ -122,7 +125,7 @@
+             user, netloc = netloc.rsplit('@', 1)
+         # Seems it is not possible to list supported backends for GIO
+         # so a hardcoded list it is then.
+-        gio_backends = ['dav', 'file', 'ftp', 'obex', 'sftp', 'ssh', 'smb']
++        gio_backends = ['dav', 'file', 'ftp', 'obex', 'sftp', 'ssh', 'smb', 'http']
+         if scheme not in gio_backends:
+             raise urlutils.InvalidURL(base,
+                                       extra="GIO support is only available for " +
+@@ -138,13 +141,10 @@
+                                            _from_transport=_from_transport)
+ 
+     def _relpath_to_url(self, relpath):
+-        full_url = urlutils.join(self.url, relpath)
+-        if isinstance(full_url, str):
+-            raise urlutils.InvalidURL(full_url)
+-        return full_url
++        return urlutils.join(self.url, relpath)
+ 
+     def _get_GIO(self, relpath):
+-        """Return the ftplib.GIO instance for this object."""
++        """Return the GIO instance for this object."""
+         # Ensures that a connection is established
+         connection = self._get_connection()
+         if connection is None:
+@@ -152,7 +152,7 @@
+             connection, credentials = self._create_connection()
+             self._set_connection(connection, credentials)
+         fileurl = self._relpath_to_url(relpath)
+-        file = gio.File(fileurl)
++        file = gio.File.new_for_uri(fileurl)
+         return file
+ 
+     def _auth_cb(self, op, message, default_user, default_domain, flags):
+@@ -197,7 +197,7 @@
+         try:
+             obj.mount_enclosing_volume_finish(res)
+             self.loop.quit()
+-        except gio.Error as e:
++        except GError as e:
+             self.loop.quit()
+             raise errors.BzrError(
+                 "Failed to mount the given location: " + str(e))
+@@ -209,12 +209,12 @@
+             user, password = credentials
+ 
+         try:
+-            connection = gio.File(self.url)
++            connection = gio.File.new_for_uri(self.url)
+             mount = None
+             try:
+                 mount = connection.find_enclosing_mount()
+-            except gio.Error as e:
+-                if (e.code == gio.ERROR_NOT_MOUNTED):
++            except GError as e:
++                if e.code == gio.IOErrorEnum.NOT_MOUNTED:
+                     self.loop = glib.MainLoop()
+                     ui.ui_factory.show_message('Mounting %s using GIO' %
+                                                self.url)
+@@ -227,7 +227,7 @@
+                     m = connection.mount_enclosing_volume(op,
+                                                           self._mount_done_cb)
+                     self.loop.run()
+-        except gio.Error as e:
++        except GError as e:
+             raise errors.TransportError(msg="Error setting up connection:"
+                                         " %s" % str(e), orig_error=e)
+         return connection, (user, password)
+@@ -257,8 +257,8 @@
+             if stat.S_ISREG(st.st_mode) or stat.S_ISDIR(st.st_mode):
+                 return True
+             return False
+-        except gio.Error as e:
+-            if e.code == gio.ERROR_NOT_FOUND:
++        except GError as e:
++            if e.code == gio.IOErrorEnum.NOT_FOUND:
+                 return False
+             else:
+                 self._translate_gio_error(e, relpath)
+@@ -281,10 +281,10 @@
+             buf = fin.read()
+             fin.close()
+             return BytesIO(buf)
+-        except gio.Error as e:
++        except GError as e:
+             # If we get a not mounted here it might mean
+             # that a bad path has been entered (or that mount failed)
+-            if (e.code == gio.ERROR_NOT_MOUNTED):
++            if e.code == gio.IOErrorEnum.NOT_MOUNTED:
+                 raise errors.PathError(relpath,
+                                        extra='Failed to get file, make sure the path is correct. '
+                                        + str(e))
+@@ -307,19 +307,19 @@
+             closed = True
+             try:
+                 f = self._get_GIO(tmppath)
+-                fout = f.create()
++                fout = f.create(0, None)
+                 closed = False
+                 length = self._pump(fp, fout)
+                 fout.close()
+                 closed = True
+                 self.stat(tmppath)
+                 dest = self._get_GIO(relpath)
+-                f.move(dest, flags=gio.FILE_COPY_OVERWRITE)
++                f.move(dest, flags=gio.FileCopyFlags.OVERWRITE)
+                 f = None
+                 if mode is not None:
+                     self._setmode(relpath, mode)
+                 return length
+-            except gio.Error as e:
++            except GError as e:
+                 self._translate_gio_error(e, relpath)
+         finally:
+             if not closed and fout is not None:
+@@ -335,7 +335,7 @@
+             f = self._get_GIO(relpath)
+             f.make_directory()
+             self._setmode(relpath, mode)
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath)
+ 
+     def open_write_stream(self, relpath, mode=None):
+@@ -369,14 +369,11 @@
+                 f.delete()
+             else:
+                 raise errors.NotADirectory(relpath)
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath)
+         except errors.NotADirectory as e:
+             # just pass it forward
+             raise e
+-        except Exception as e:
+-            mutter('failed to rmdir %s: %s' % (relpath, e))
+-            raise errors.PathError(relpath)
+ 
+     def append_file(self, relpath, file, mode=None):
+         """Append the text in the file-like object into the final
+@@ -392,7 +389,7 @@
+             result = 0
+             fo = self._get_GIO(tmppath)
+             fi = self._get_GIO(relpath)
+-            fout = fo.create()
++            fout = fo.create(0, None)
+             try:
+                 info = GioStatResult(fi)
+                 result = info.st_size
+@@ -400,11 +397,11 @@
+                 self._pump(fin, fout)
+                 fin.close()
+             # This separate except is to catch and ignore the
+-            # gio.ERROR_NOT_FOUND for the already existing file.
++            # gio.IOErrorEnum.NOT_FOUND for the already existing file.
+             # It is valid to open a non-existing file for append.
+             # This is caused by the broken gio append_to...
+-            except gio.Error as e:
+-                if e.code != gio.ERROR_NOT_FOUND:
++            except GError as e:
++                if e.code != gio.IOErrorEnum.NOT_FOUND:
+                     self._translate_gio_error(e, relpath)
+             length = self._pump(file, fout)
+             fout.close()
+@@ -413,9 +410,11 @@
+                 raise errors.BzrError("Failed to append size after "
+                                       "(%d) is not original (%d) + written (%d) total (%d)" %
+                                       (info.st_size, result, length, result + length))
+-            fo.move(fi, flags=gio.FILE_COPY_OVERWRITE)
++            fo.move(
++                fi, flags=gio.FileCopyFlags.OVERWRITE, cancellable=None,
++                progress_callback=None)
+             return result
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath)
+ 
+     def _setmode(self, relpath, mode):
+@@ -429,8 +428,8 @@
+             try:
+                 f = self._get_GIO(relpath)
+                 f.set_attribute_uint32(gio.FILE_ATTRIBUTE_UNIX_MODE, mode)
+-            except gio.Error as e:
+-                if e.code == gio.ERROR_NOT_SUPPORTED:
++            except GError as e:
++                if e.code == gio.IOErrorEnum.NOT_SUPPORTED:
+                     # Command probably not available on this server
+                     mutter("GIO Could not set permissions to %s on %s. %s",
+                            oct(mode), self._remote_path(relpath), str(e))
+@@ -444,8 +443,8 @@
+                 mutter("GIO move (rename): %s => %s", rel_from, rel_to)
+             f = self._get_GIO(rel_from)
+             t = self._get_GIO(rel_to)
+-            f.move(t)
+-        except gio.Error as e:
++            f.move(t, flags=0, cancellable=None, progress_callback=None)
++        except GError as e:
+             self._translate_gio_error(e, rel_from)
+ 
+     def move(self, rel_from, rel_to):
+@@ -455,8 +454,8 @@
+                 mutter("GIO move: %s => %s", rel_from, rel_to)
+             f = self._get_GIO(rel_from)
+             t = self._get_GIO(rel_to)
+-            f.move(t, flags=gio.FILE_COPY_OVERWRITE)
+-        except gio.Error as e:
++            f.move(t, flags=gio.FileCopyFlags.OVERWRITE)
++        except GError as e:
+             self._translate_gio_error(e, relfrom)
+ 
+     def delete(self, relpath):
+@@ -466,7 +465,7 @@
+                 mutter("GIO delete: %s", relpath)
+             f = self._get_GIO(relpath)
+             f.delete()
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath)
+ 
+     def external_url(self):
+@@ -489,11 +488,11 @@
+         try:
+             entries = []
+             f = self._get_GIO(relpath)
+-            children = f.enumerate_children(gio.FILE_ATTRIBUTE_STANDARD_NAME)
++            children = f.enumerate_children(gio.FILE_ATTRIBUTE_STANDARD_NAME, 0, None)
+             for child in children:
+                 entries.append(urlutils.escape(child.get_name()))
+             return entries
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath)
+ 
+     def iter_files_recursive(self):
+@@ -519,7 +518,7 @@
+                 mutter("GIO stat: %s", relpath)
+             f = self._get_GIO(relpath)
+             return GioStatResult(f)
+-        except gio.Error as e:
++        except GError as e:
+             self._translate_gio_error(e, relpath, extra='error w/ stat')
+ 
+     def lock_read(self, relpath):
+@@ -556,21 +555,21 @@
+             mutter("GIO Error: %s %s" % (str(err), path))
+         if extra is None:
+             extra = str(err)
+-        if err.code == gio.ERROR_NOT_FOUND:
++        if err.code == gio.IOErrorEnum.NOT_FOUND:
+             raise errors.NoSuchFile(path, extra=extra)
+-        elif err.code == gio.ERROR_EXISTS:
++        elif err.code == gio.IOErrorEnum.EXISTS:
+             raise errors.FileExists(path, extra=extra)
+-        elif err.code == gio.ERROR_NOT_DIRECTORY:
++        elif err.code == gio.IOErrorEnum.NOT_DIRECTORY:
+             raise errors.NotADirectory(path, extra=extra)
+-        elif err.code == gio.ERROR_NOT_EMPTY:
++        elif err.code == gio.IOErrorEnum.NOT_EMPTY:
+             raise errors.DirectoryNotEmpty(path, extra=extra)
+-        elif err.code == gio.ERROR_BUSY:
++        elif err.code == gio.IOErrorEnum.BUSY:
+             raise errors.ResourceBusy(path, extra=extra)
+-        elif err.code == gio.ERROR_PERMISSION_DENIED:
++        elif err.code == gio.IOErrorEnum.PERMISSION_DENIED:
+             raise errors.PermissionDenied(path, extra=extra)
+-        elif err.code == gio.ERROR_HOST_NOT_FOUND:
++        elif err.code == gio.IOErrorEnum.HOST_NOT_FOUND:
+             raise errors.PathError(path, extra=extra)
+-        elif err.code == gio.ERROR_IS_DIRECTORY:
++        elif err.code == gio.IOErrorEnum.IS_DIRECTORY:
+             raise errors.PathError(path, extra=extra)
+         else:
+             mutter('unable to understand error for path: %s: %s', path, err)
+
diff --git a/gnu/packages/patches/casync-renameat2-declaration.patch b/gnu/packages/patches/casync-renameat2-declaration.patch
deleted file mode 100644
index 74c2ca7b3c..0000000000
--- a/gnu/packages/patches/casync-renameat2-declaration.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix build failure on glibc 2.28 where 'renameat2' would end up being
-declared twice: <https://github.com/systemd/casync/issues/166>.
-
-From 625244ca47e8ee1375d2d0092271bfd13b0913ea Mon Sep 17 00:00:00 2001
-From: Daniel Mack <daniel@zonque.org>
-Date: Tue, 13 Nov 2018 17:52:48 +0100
-Subject: [PATCH] meson.build: pass -D_GNU_SOURCE when checking for functions
-
-As described in #166, -D_GNU_SOURCE needs to be passed to the meson function
-availability checker. h/t to @tomeon for providing a link to the solution as
-well.
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index f42ed16..c0f741e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -78,6 +78,6 @@ foreach ident : [
-         ['copy_file_range',   '''#include <sys/syscall.h>
-                                  #include <unistd.h>'''],
- ]
--        have = cc.has_function(ident[0], prefix : ident[1])
-+        have = cc.has_function(ident[0], args : '-D_GNU_SOURCE', prefix : ident[1])
-         conf.set10('HAVE_' + ident[0].to_upper(), have)
- endforeach
diff --git a/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch b/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch
new file mode 100644
index 0000000000..fdb444c29b
--- /dev/null
+++ b/gnu/packages/patches/emacs-deferred-fix-number-of-arguments.patch
@@ -0,0 +1,58 @@
+From 226734f06196d31971d8ca2026a9ce432d5227d0 Mon Sep 17 00:00:00 2001
+From: r0man <roman@burningswell.com>
+Date: Thu, 26 May 2022 10:42:25 +0200
+Subject: [PATCH] Fix wrong-number-of-arguments error
+
+With Emacs 28 I'm seeing the following error when running the tests.
+
+```
+deferred error : (wrong-number-of-arguments #<subr start-process-shell-command> 4)
+```
+
+I believe this is because the `start-process-shell-command` function
+is called with the command arguments as &rest parameters. This is the
+function signature of `start-process-shell-command`, and it only takes
+3 arguments, the name, buffer, and command. The command argument can
+be a shell string like "ls -l" for example.
+
+```
+(defun start-process-shell-command (name buffer command) ...)
+```
+
+The `start-process` function on the other hand has &rest parameters
+and can be called with a list of arguments.
+
+```
+(defun start-process (name buffer program &rest program-args) ...)
+```
+
+This PR fixes the issue by concatenating the command and it's argument
+before calling out to `deferred:process-buffer-gen`, which is used in
+both cases, when calling `start-process-shell-command`, and when
+calling `start-process`.
+---
+ deferred.el | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/deferred.el b/deferred.el
+index 041c90b..3092ac0 100644
+--- a/deferred.el
++++ b/deferred.el
+@@ -754,7 +754,7 @@ object. The process name and buffer name of the argument of the
+ `start-process-shell-command' are generated by this function automatically.
+ The next deferred object receives stdout and stderr string from
+ the command process."
+-  (deferred:process-gen 'start-process-shell-command command args))
++  (deferred:process-gen 'start-process-shell-command  (string-join (cons command args) " ") nil))
+ 
+ (defun deferred:process-buffer (command &rest args)
+   "A deferred wrapper of `start-process'. Return a deferred
+@@ -770,7 +770,7 @@ object. The process name and buffer name of the argument of the
+ `start-process-shell-command' are generated by this function automatically.
+ The next deferred object receives stdout and stderr buffer from
+ the command process."
+-  (deferred:process-buffer-gen 'start-process-shell-command command args))
++  (deferred:process-buffer-gen 'start-process-shell-command (string-join (cons command args) " ") nil))
+ 
+ (defun deferred:process-gen (f command args)
+   "[internal]"
diff --git a/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch b/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch
new file mode 100644
index 0000000000..de40010fa2
--- /dev/null
+++ b/gnu/packages/patches/emacs-helpful-fix-docstring-test.patch
@@ -0,0 +1,18 @@
+This patch fixing a build failure has been cherry-picked from upstream.
+Originally submitted as pull request by Erik Šabič.
+See also <https://github.com/Wilfred/helpful/pull/296>.
+diff --git a/test/helpful-unit-test.el b/test/helpful-unit-test.el
+index a07aa8e..8a95129 100644
+--- a/test/helpful-unit-test.el
++++ b/test/helpful-unit-test.el
+@@ -119,7 +119,9 @@ bar")))
+   (should
+    (equal
+     (helpful--docstring #'test-foo-advised t)
+-    "Docstring here too.")))
++    (if (version< emacs-version "28")
++        "Docstring here too."
++    "Docstring here too.\n\nThis function has :around advice: `ad-Advice-test-foo-advised'."))))
+ 
+ (defun test-foo-no-docstring ()
+   nil)
diff --git a/gnu/packages/patches/gcc-12-cross-environment-variables.patch b/gnu/packages/patches/gcc-12-cross-environment-variables.patch
new file mode 100644
index 0000000000..8787f094c0
--- /dev/null
+++ b/gnu/packages/patches/gcc-12-cross-environment-variables.patch
@@ -0,0 +1,54 @@
+Search path environment variables for cross-compilers.  See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
+at <http://bugs.gnu.org/22186>.
+
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -4832,7 +4832,7 @@ process_command (unsigned int decoded_options_count,
+     }
+ 
+   temp = env.get (LIBRARY_PATH_ENV);
+-  if (temp && *cross_compile == '0')
++  if (temp)
+     {
+       const char *startp, *endp;
+       char *nstore = (char *) alloca (strlen (temp) + 3);
+diff --git a/gcc/incpath.cc b/gcc/incpath.cc
+--- a/gcc/incpath.cc
++++ b/gcc/incpath.cc
+@@ -480,8 +480,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+ 			 int stdinc, int cxx_stdinc, int verbose)
+ {
+   static const char *const lang_env_vars[] =
+-    { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
+-      "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
++    { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
++      "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
+   cpp_options *cpp_opts = cpp_get_options (pfile);
+   size_t idx = (cpp_opts->objc ? 2: 0);
+ 
+@@ -492,7 +492,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+ 
+   /* CPATH and language-dependent environment variables may add to the
+      include chain.  */
+-  add_env_var_paths ("CPATH", INC_BRACKET);
++  add_env_var_paths ("CROSS_CPATH", INC_BRACKET);
+   add_env_var_paths (lang_env_vars[idx], INC_SYSTEM);
+ 
+   target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1317,4 +1317,6 @@ endswith (const char *str, const char *suffix)
+   return memcmp (str + str_len - suffix_len, suffix, suffix_len) == 0;
+ }
+ 
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
+-- 
+2.36.1
+
diff --git a/gnu/packages/patches/gourmet-sqlalchemy-compat.patch b/gnu/packages/patches/gourmet-sqlalchemy-compat.patch
new file mode 100644
index 0000000000..d0cdf9e5a7
--- /dev/null
+++ b/gnu/packages/patches/gourmet-sqlalchemy-compat.patch
@@ -0,0 +1,18 @@
+diff --git a/gourmet/backends/db.py b/gourmet/backends/db.py
+index faa6a57a..7e6d2bc6 100644
+--- a/gourmet/backends/db.py
++++ b/gourmet/backends/db.py
+@@ -773,9 +773,11 @@ class RecData (Pluggable):
+         """Return the number of rows in table that match criteria
+         """
+         if criteria:
+-            return table.count(*make_simple_select_arg(criteria,table)).execute().fetchone()[0]
++            return sqlalchemy.select(
++                sqlalchemy.func.count(criteria)).select_from(table).scalar()
+         else:
+-            return table.count().execute().fetchone()[0]
++            return sqlalchemy.select(
++                sqlalchemy.func.count()).select_from(table).scalar()
+ 
+     def fetch_join (self, table1, table2, col1, col2,
+                     column_names=None, sort_by=[], **criteria):
diff --git a/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch b/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch
new file mode 100644
index 0000000000..19fd475c39
--- /dev/null
+++ b/gnu/packages/patches/guile-ac-d-bus-fix-tests.patch
@@ -0,0 +1,28 @@
+Submitted upstream: https://gitlab.com/weinholt/ac-d-bus/-/merge_requests/3
+
+diff --git a/tests/test-signature.sps b/tests/test-signature.sps
+index 278401b..cc5574f 100755
+--- a/tests/test-signature.sps
++++ b/tests/test-signature.sps
+@@ -43,6 +43,7 @@
+             (format-type-signature '(message BYTE BYTE BYTE BYTE UINT32 UINT32
+                                              (ARRAY (STRUCT BYTE VARIANT)))))
+ 
++(define fail-count (test-runner-fail-count (test-runner-get)))
+ (test-end)
+ 
+-(exit (if (zero? (test-runner-fail-count (test-runner-get))) 0 1))
++(exit (if (zero? fail-count) 0 1))
+diff --git a/tests/test-wire.sps b/tests/test-wire.sps
+index c3354bf..06ae73b 100755
+--- a/tests/test-wire.sps
++++ b/tests/test-wire.sps
+@@ -147,6 +147,7 @@
+                   #x08 #x01 #x67 #x00  #x00 #x00 #x00 #x00  #x05 #x01 #x75 #x00  #x04 #x00 #x00 #x00
+                   #x07 #x01 #x73 #x00  #x06 #x00 #x00 #x00  #x3A #x31 #x2E #x32  #x39 #x38 #x00 #x00)))
+ 
++(define fail-count (test-runner-fail-count (test-runner-get)))
+ (test-end)
+ 
+-(exit (if (zero? (test-runner-fail-count (test-runner-get))) 0 1))
++(exit (if (zero? fail-count) 0 1))
diff --git a/gnu/packages/patches/itk-snap-alt-glibc-compat.patch b/gnu/packages/patches/itk-snap-alt-glibc-compat.patch
new file mode 100644
index 0000000000..764c5da2c2
--- /dev/null
+++ b/gnu/packages/patches/itk-snap-alt-glibc-compat.patch
@@ -0,0 +1,22 @@
+Retrieved from ALT Linux.
+https://git.altlinux.org/tasks/273587/build/300/x86_64/srpm/itk-snap-3.8.0-alt6.src.rpm
+
+diff --git a/GUI/Qt/main.cxx b/GUI/Qt/main.cxx
+index 576f7160..ceab92e6 100644
+--- a/GUI/Qt/main.cxx
++++ b/GUI/Qt/main.cxx
+@@ -51,12 +51,13 @@ using namespace std;
+ #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__))
+ 
+ #include <signal.h>
++#include <string.h>
+ #include <execinfo.h>
+ 
+ void SegmentationFaultHandler(int sig)
+ {
+   cerr << "*************************************" << endl;
+-  cerr << "ITK-SNAP: " << sys_siglist[sig] << endl;
++  cerr << "ITK-SNAP: " << strsignal(sig) << " (" << sigabbrev_np(sig) << ")" << endl;
+   cerr << "BACKTRACE: " << endl;
+   void *array[50];
+   int nsize = backtrace(array, 50);
diff --git a/gnu/packages/patches/mia-fix-boost-headers.patch b/gnu/packages/patches/mia-fix-boost-headers.patch
new file mode 100644
index 0000000000..158ab2afeb
--- /dev/null
+++ b/gnu/packages/patches/mia-fix-boost-headers.patch
@@ -0,0 +1,479 @@
+Retrieved from Debian, and added a few "#include <boost/mpl/vector.hpp>"
+directives to fix the build.
+
+diff --git a/addons/hdf5/test_hdf5_3dimage.cc b/addons/hdf5/test_hdf5_3dimage.cc
+index a7185618..7a398821 100644
+--- a/addons/hdf5/test_hdf5_3dimage.cc
++++ b/addons/hdf5/test_hdf5_3dimage.cc
+@@ -23,7 +23,7 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
++#include <boost/test/unit_test.hpp>
+ 
+ #include <addons/hdf5/hdf5_3dimage.hh>
+ 
+diff --git a/addons/hdf5/test_hdf5mia.cc b/addons/hdf5/test_hdf5mia.cc
+index 3d62106e..8141be07 100644
+--- a/addons/hdf5/test_hdf5mia.cc
++++ b/addons/hdf5/test_hdf5mia.cc
+@@ -23,7 +23,6 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+ 
+ #include <addons/hdf5/hdf5a_mia.hh>
+diff --git a/addons/nifti/test_niftiimage.cc b/addons/nifti/test_niftiimage.cc
+index 8df3f0b5..840ae585 100644
+--- a/addons/nifti/test_niftiimage.cc
++++ b/addons/nifti/test_niftiimage.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ 
+ #include <nifti/niftiimage.hh>
+ #include <unistd.h>
+diff --git a/addons/vistaio/test_2dvistaio.cc b/addons/vistaio/test_2dvistaio.cc
+index b3da29a0..9b1599dd 100644
+--- a/addons/vistaio/test_2dvistaio.cc
++++ b/addons/vistaio/test_2dvistaio.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ 
+ #include <vistaio/2dvistaio.hh>
+ #include <unistd.h>
+diff --git a/addons/vistaio/test_3dvistaio.cc b/addons/vistaio/test_3dvistaio.cc
+index 93c007d0..c3ae1fdb 100644
+--- a/addons/vistaio/test_3dvistaio.cc
++++ b/addons/vistaio/test_3dvistaio.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ 
+ #include <vistaio/3dvistaio.hh>
+ #include <unistd.h>
+diff --git a/addons/vtk/test_vtkimage.cc b/addons/vtk/test_vtkimage.cc
+index eaf96a6b..8212ef1d 100644
+--- a/addons/vtk/test_vtkimage.cc
++++ b/addons/vtk/test_vtkimage.cc
+@@ -23,8 +23,6 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ 
+ #include <vtk/vtkimage.hh>
+ #include <unistd.h>
+diff --git a/mia/2d/creator/test_circle.cc b/mia/2d/creator/test_circle.cc
+index 9784e05d..7ca4bab9 100644
+--- a/mia/2d/creator/test_circle.cc
++++ b/mia/2d/creator/test_circle.cc
+@@ -21,8 +21,6 @@
+ 
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ #include <mia/2d/creator/circle.hh>
+ 
+ using namespace mia;
+diff --git a/mia/2d/filter/test_convert.cc b/mia/2d/filter/test_convert.cc
+index 80304793..f40d295a 100644
+--- a/mia/2d/filter/test_convert.cc
++++ b/mia/2d/filter/test_convert.cc
+@@ -25,7 +25,6 @@
+ #include <type_traits>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+ 
+ 
+diff --git a/mia/2d/filter/test_morphological.cc b/mia/2d/filter/test_morphological.cc
+index 2fc58583..9a004946 100644
+--- a/mia/2d/filter/test_morphological.cc
++++ b/mia/2d/filter/test_morphological.cc
+@@ -20,7 +20,6 @@
+ 
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/2d/filter/morphological.hh>
+ 
+ namespace bmpl = boost::mpl;
+diff --git a/mia/2d/filter/test_sortlabel.cc b/mia/2d/filter/test_sortlabel.cc
+index 78464e1a..49c327e3 100644
+--- a/mia/2d/filter/test_sortlabel.cc
++++ b/mia/2d/filter/test_sortlabel.cc
+@@ -23,7 +23,6 @@
+ #include <mia/2d/filter/sortlabel.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ namespace bmpl = boost::mpl;
+ 
+ 
+diff --git a/mia/2d/filter/test_thinning.cc b/mia/2d/filter/test_thinning.cc
+index 3ebb2cdc..8bc5b356 100644
+--- a/mia/2d/filter/test_thinning.cc
++++ b/mia/2d/filter/test_thinning.cc
+@@ -21,7 +21,6 @@
+ 
+ #include <mia/internal/plugintester.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/2d/filter/thinning.hh>
+ #include <mia/2d/imagetest.hh>
+ 
+diff --git a/mia/2d/test_filter_cast.cc b/mia/2d/test_filter_cast.cc
+index e806e14f..91c77398 100644
+--- a/mia/2d/test_filter_cast.cc
++++ b/mia/2d/test_filter_cast.cc
+@@ -24,7 +24,7 @@
+ #include <mia/internal/autotest.hh>
+ #include <mia/2d/filter.hh>
+ 
+-#include <boost/test/test_case_template.hpp>
++#include <boost/mpl/vector.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/mpl/list.hpp>
+ 
+diff --git a/mia/2d/test_image.cc b/mia/2d/test_image.cc
+index c82dc59b..1f602510 100644
+--- a/mia/2d/test_image.cc
++++ b/mia/2d/test_image.cc
+@@ -24,6 +24,7 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/filesystem/path.hpp>
++#include <boost/mpl/vector.hpp>
+ 
+ #include <iostream>
+ 
+diff --git a/mia/2d/test_interpol.cc b/mia/2d/test_interpol.cc
+index d1f3703d..5caafccf 100644
+--- a/mia/2d/test_interpol.cc
++++ b/mia/2d/test_interpol.cc
+@@ -23,7 +23,6 @@
+ 
+ #include <mia/internal/autotest.hh>
+ 
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/mpl/list.hpp>
+ 
+diff --git a/mia/3d/fifotestfixture.cc b/mia/3d/fifotestfixture.cc
+index ab2e7c65..1b6e6bb4 100644
+--- a/mia/3d/fifotestfixture.cc
++++ b/mia/3d/fifotestfixture.cc
+@@ -24,7 +24,7 @@
+ 
+ #include <climits>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <mia/core/msgstream.hh>
+ #include <mia/2d/imagetest.hh>
+ #include <mia/3d/fifotestfixture.hh>
+diff --git a/mia/3d/filter/test_convert.cc b/mia/3d/filter/test_convert.cc
+index e83032c1..dad9afaa 100644
+--- a/mia/3d/filter/test_convert.cc
++++ b/mia/3d/filter/test_convert.cc
+@@ -20,7 +20,6 @@
+ 
+ #include <mia/internal/autotest.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <mia/core/type_traits.hh>
+ #include <mia/3d/filter/convert.hh>
+ #include <boost/mpl/insert_range.hpp>
+diff --git a/mia/3d/test_image.cc b/mia/3d/test_image.cc
+index 18f71892..c21e0d20 100644
+--- a/mia/3d/test_image.cc
++++ b/mia/3d/test_image.cc
+@@ -21,7 +21,8 @@
+ #include <climits>
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
++#include <boost/mpl/vector.hpp>
+ 
+ #include <mia/3d/image.hh>
+ #include <mia/core/filter.hh>
+diff --git a/mia/3d/test_imageio.cc b/mia/3d/test_imageio.cc
+index 0640a668..7a6b5635 100644
+--- a/mia/3d/test_imageio.cc
++++ b/mia/3d/test_imageio.cc
+@@ -20,7 +20,6 @@
+ 
+ #include <mia/internal/autotest.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ #include <boost/mpl/insert_range.hpp>
+ 
+ #include <mia/core/attribute_names.hh>
+diff --git a/mia/core/splinekernel/test_bspline.cc b/mia/core/splinekernel/test_bspline.cc
+index 54d6bda3..0abfe443 100644
+--- a/mia/core/splinekernel/test_bspline.cc
++++ b/mia/core/splinekernel/test_bspline.cc
+@@ -23,8 +23,6 @@
+ #include <mia/core/splinekernel/bspline.hh>
+ #include <mia/core/interpolator1d.hh>
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+-
+ 
+ using namespace mia;
+ using namespace mia::bsplinekernel;
+diff --git a/mia/core/test_cost.cc b/mia/core/test_cost.cc
+index 70097b2e..305ca84d 100644
+--- a/mia/core/test_cost.cc
++++ b/mia/core/test_cost.cc
+@@ -27,7 +27,7 @@
+ #include <mia/core/msgstream.hh>
+ 
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <boost/test/test_tools.hpp>
+ 
+ NS_MIA_USE
+diff --git a/mia/core/test_cstplan.cc b/mia/core/test_cstplan.cc
+index aa241d48..a9e5a0e3 100644
+--- a/mia/core/test_cstplan.cc
++++ b/mia/core/test_cstplan.cc
+@@ -23,7 +23,7 @@
+ 
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/cstplan.hh>
+ 
+diff --git a/mia/core/test_dictmap.cc b/mia/core/test_dictmap.cc
+index a9217290..fd05fe30 100644
+--- a/mia/core/test_dictmap.cc
++++ b/mia/core/test_dictmap.cc
+@@ -26,7 +26,7 @@
+ 
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/dictmap.hh>
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/core/test_fifofilter.cc b/mia/core/test_fifofilter.cc
+index 2a066f2e..6e2a385d 100644
+--- a/mia/core/test_fifofilter.cc
++++ b/mia/core/test_fifofilter.cc
+@@ -27,7 +27,7 @@
+ 
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ 
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/core/test_gsl_matrix.cc b/mia/core/test_gsl_matrix.cc
+index 4add5f7a..6d16353d 100644
+--- a/mia/core/test_gsl_matrix.cc
++++ b/mia/core/test_gsl_matrix.cc
+@@ -25,7 +25,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <mia/core/gsl_matrix.hh>
+ 
+ #include <stdexcept>
+diff --git a/mia/core/test_gsl_matrix_vector_ops.cc b/mia/core/test_gsl_matrix_vector_ops.cc
+index e5f7d7b9..217020f7 100644
+--- a/mia/core/test_gsl_matrix_vector_ops.cc
++++ b/mia/core/test_gsl_matrix_vector_ops.cc
+@@ -28,7 +28,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <iostream>
+ #include <cmath>
+diff --git a/mia/core/test_gsl_multimin.cc b/mia/core/test_gsl_multimin.cc
+index 5bbc434b..129f578a 100644
+--- a/mia/core/test_gsl_multimin.cc
++++ b/mia/core/test_gsl_multimin.cc
+@@ -25,7 +25,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ #include <vector>
+ 
+ #include <mia/core/gsl_multimin.hh>
+diff --git a/mia/core/test_gsl_pca.cc b/mia/core/test_gsl_pca.cc
+index 436b36b0..12942921 100644
+--- a/mia/core/test_gsl_pca.cc
++++ b/mia/core/test_gsl_pca.cc
+@@ -27,7 +27,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/gsl_pca.hh>
+ 
+diff --git a/mia/core/test_gsl_vector.cc b/mia/core/test_gsl_vector.cc
+index 541c88b8..ba91f159 100644
+--- a/mia/core/test_gsl_vector.cc
++++ b/mia/core/test_gsl_vector.cc
+@@ -25,10 +25,9 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_ALTERNATIVE_INIT_API
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
+ 
+ #include <mia/core/gsl_vector.hh>
+ 
+diff --git a/mia/core/test_interpol.cc b/mia/core/test_interpol.cc
+index 36669dc0..2dd5157d 100644
+--- a/mia/core/test_interpol.cc
++++ b/mia/core/test_interpol.cc
+@@ -24,7 +24,7 @@
+ #include <mia/internal/autotest.hh>
+ 
+ #include <boost/mpl/vector.hpp>
+-#include <boost/test/test_case_template.hpp>
++#include <boost/test/unit_test.hpp>
+ #include <boost/type_traits.hpp>
+ #include <boost/filesystem/path.hpp>
+ 
+diff --git a/mia/core/test_parameter.cc b/mia/core/test_parameter.cc
+index ae9b4976..28ef2a80 100644
+--- a/mia/core/test_parameter.cc
++++ b/mia/core/test_parameter.cc
+@@ -26,7 +26,7 @@
+ 
+ #include <boost/test/test_tools.hpp>
+ #include <boost/test/unit_test_suite.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/parameter.hh>
+ #include <mia/core/msgstream.hh>
+diff --git a/mia/core/test_probmap.cc b/mia/core/test_probmap.cc
+index 2dc6cb6c..38052681 100644
+--- a/mia/core/test_probmap.cc
++++ b/mia/core/test_probmap.cc
+@@ -22,7 +22,7 @@
+ 
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/cmdlineparser.hh>
+ #include <mia/core/probmap.hh>
+diff --git a/mia/core/test_sqmin.cc b/mia/core/test_sqmin.cc
+index f00b3b85..4a0b67b9 100644
+--- a/mia/core/test_sqmin.cc
++++ b/mia/core/test_sqmin.cc
+@@ -23,7 +23,7 @@
+ #define BOOST_TEST_DYN_LINK
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core/sqmin.hh>
+ 
+diff --git a/mia/internal/autotest.hh b/mia/internal/autotest.hh
+index 419f6e8f..4458c0b2 100644
+--- a/mia/internal/autotest.hh
++++ b/mia/internal/autotest.hh
+@@ -34,7 +34,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <miaconfig.h>
+ #include <mia/core/cmdlineparser.hh>
+diff --git a/mia/internal/plugintester.hh b/mia/internal/plugintester.hh
+index 2d42b858..e632e5f7 100644
+--- a/mia/internal/plugintester.hh
++++ b/mia/internal/plugintester.hh
+@@ -31,7 +31,7 @@
+ #define BOOST_TEST_MAIN
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <miaconfig.h>
+ #include <mia/core/factory.hh>
+diff --git a/mia/test/testhelpers.hh b/mia/test/testhelpers.hh
+index 27f37e7f..68c213a6 100644
+--- a/mia/test/testhelpers.hh
++++ b/mia/test/testhelpers.hh
+@@ -23,7 +23,7 @@
+ 
+ #include <type_traits>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ namespace miatest
+ {
+diff --git a/src/2dlerp.cc b/src/2dlerp.cc
+index 4c7dde77..1e8801de 100644
+--- a/src/2dlerp.cc
++++ b/src/2dlerp.cc
+@@ -25,7 +25,7 @@
+ 
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core.hh>
+ #include <mia/internal/main.hh>
+diff --git a/src/3dlerp.cc b/src/3dlerp.cc
+index 6ee8dca0..2f1c1f3a 100644
+--- a/src/3dlerp.cc
++++ b/src/3dlerp.cc
+@@ -24,7 +24,7 @@
+ #define BOOST_TEST_NO_MAIN
+ #include <boost/test/unit_test_suite.hpp>
+ #include <boost/test/unit_test.hpp>
+-#include <boost/test/floating_point_comparison.hpp>
++#include <boost/test/tools/floating_point_comparison.hpp>
+ 
+ #include <mia/core.hh>
+ #include <mia/internal/main.hh>
diff --git a/gnu/packages/patches/mozjs17-aarch64-support.patch b/gnu/packages/patches/mozjs17-aarch64-support.patch
deleted file mode 100644
index 51e2e306d5..0000000000
--- a/gnu/packages/patches/mozjs17-aarch64-support.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch
-
-index c071c33..90764c3 100644
---- a/js/src/assembler/jit/ExecutableAllocator.h
-+++ b/js/src/assembler/jit/ExecutableAllocator.h
-@@ -382,6 +382,12 @@ public:
-     {
-         reprotectRegion(start, size, Executable);
-     }
-+#elif WTF_CPU_AARCH64 && WTF_PLATFORM_LINUX
-+    static void cacheFlush(void* code, size_t size)
-+    {
-+        intptr_t end = reinterpret_cast<intptr_t>(code) + size;
-+        __builtin___clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
-+    }
- #else
-     static void makeWritable(void*, size_t) {}
-     static void makeExecutable(void*, size_t) {}
-diff --git a/js/src/assembler/wtf/Platform.h b/js/src/assembler/wtf/Platform.h
-index 0c84896..e8763a7 100644
---- a/js/src/assembler/wtf/Platform.h
-+++ b/js/src/assembler/wtf/Platform.h
-@@ -325,6 +325,10 @@
- #define WTF_THUMB_ARCH_VERSION 0
- #endif
- 
-+/* CPU(AArch64) - 64-bit ARM */
-+#if defined(__aarch64__)
-+#define WTF_CPU_AARCH64 1
-+#endif
- 
- /* WTF_CPU_ARMV5_OR_LOWER - ARM instruction set v5 or earlier */
- /* On ARMv5 and below the natural alignment is required. 
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 15605b2..19fd704 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -1121,6 +1121,10 @@ arm*)
-     CPU_ARCH=arm
-     ;;
- 
-+aarch64)
-+    CPU_ARCH=aarch64
-+    ;;
-+
- mips|mipsel)
-     CPU_ARCH=&quot;mips&quot;
-     ;;
-diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
-index 0eec2d9..fe26dab 100644
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -58,6 +58,7 @@
-     defined(__mips__) || defined(__powerpc__) || \
-     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
-     defined(__SH4__) || defined(__alpha__) || \
-+    defined(__aarch64__) || \
-     defined(_MIPS_ARCH_MIPS32R2)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
diff --git a/gnu/packages/patches/mozjs24-aarch64-support.patch b/gnu/packages/patches/mozjs24-aarch64-support.patch
deleted file mode 100644
index 9dca8e500c..0000000000
--- a/gnu/packages/patches/mozjs24-aarch64-support.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-This patch is sourced from Debian's mozjs24 patch set.
-
-Description: Add arm64 support
-Author: Andreas Schwab <schwab@suse.de>
-Origin: vendor, https://build.opensuse.org/package/view_file/openSUSE:Factory/mozjs17/mozjs-aarch64-support.patch
-Forwarded: no
-Last-Update: 2014-01-03
-
-Index: b/mfbt/double-conversion/utils.h
-===================================================================
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -58,7 +58,7 @@
-     defined(__mips__) || defined(__powerpc__) || \
-     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
-     defined(__SH4__) || defined(__alpha__) || \
--    defined(_MIPS_ARCH_MIPS32R2)
-+    defined(_MIPS_ARCH_MIPS32R2) || defined(__aarch64__)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #if defined(_WIN32)
diff --git a/gnu/packages/patches/mozjs38-pkg-config-version.patch b/gnu/packages/patches/mozjs38-pkg-config-version.patch
deleted file mode 100644
index 49ff6f6f8d..0000000000
--- a/gnu/packages/patches/mozjs38-pkg-config-version.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837770.
-
-Add major version to pkg-config filename.
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2015-05-04
-
-Index: b/js/src/Makefile.in
-===================================================================
---- a/js/src/Makefile.in
-+++ b/js/src/Makefile.in
-@@ -214,10 +214,10 @@
- $(JS_CONFIG_NAME): js-config
-    cp $^ $@
- 
--$(LIBRARY_NAME).pc: js.pc
-+$(JS_LIBRARY_NAME).pc: js.pc
- 	cp $^ $@
- 
--install:: $(LIBRARY_NAME).pc
-+install:: $(JS_LIBRARY_NAME).pc
- 	$(SYSINSTALL) $^ $(DESTDIR)$(libdir)/pkgconfig
- 
- install:: js-config.h
diff --git a/gnu/packages/patches/mozjs38-shell-version.patch b/gnu/packages/patches/mozjs38-shell-version.patch
deleted file mode 100644
index e7d3d19c85..0000000000
--- a/gnu/packages/patches/mozjs38-shell-version.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Taken from https://bug1339931.bmoattachments.org/attachment.cgi?id=8837771.
-
-# HG changeset patch
-# Parent 4732a0e5d22bc7e5c1f1ace7a182d537d9cc2c6a
-Add major version to shell and js-config filenames.
-Author: Rico Tzschichholz <ricotz@ubuntu.com>
-Forwarded: no
-Last-Update: 2014-10-29
-
----
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -1696,8 +1696,13 @@
- MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
- IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
- 
-+if test -n "$JS_STANDALONE"; then
-+JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
-+JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
-+else
- JS_SHELL_NAME=js
- JS_CONFIG_NAME=js-config
-+fi
- 
- 
- if test -n "$IS_ALPHA"; then
-
-diff --git a/js/src/configure.in b/js/src/configure.in
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -234,16 +234,13 @@ MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSI
- MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
- IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
- 
--dnl XXX in a temporary bid to avoid developer anger at renaming files
--dnl XXX before "js" symlinks exist, don't change names.
--dnl
--dnl if test -n "$JS_STANDALONE"; then
--dnl JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
--dnl JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
--dnl else
-+if test -n "$JS_STANDALONE"; then
-+JS_SHELL_NAME=js$MOZJS_MAJOR_VERSION
-+JS_CONFIG_NAME=js$MOZJS_MAJOR_VERSION-config
-+else
- JS_SHELL_NAME=js
- JS_CONFIG_NAME=js-config
--dnl fi
-+fi
- 
- changequote([,])
- if test -n "$IS_ALPHA"; then
-
-diff -r 80a9e64d75f5 js/src/Makefile.in
---- a/js/src/Makefile.in        Wed Jun 25 15:11:42 2014 +0200
-+++ b/js/src/Makefile.in        Sat Jul 05 14:08:38 2014 +0200
-@@ -273,6 +273,9 @@
- SCRIPTS = $(JS_CONFIG_NAME)
- SDK_BINARY = $(JS_CONFIG_NAME)
- 
-+$(JS_CONFIG_NAME): js-config
-+	cp $^ $@
-+
- $(JS_LIBRARY_NAME).pc: js.pc
- 	cp $^ $@
- 
diff --git a/gnu/packages/patches/mozjs38-tracelogger.patch b/gnu/packages/patches/mozjs38-tracelogger.patch
deleted file mode 100644
index 0375ec36cc..0000000000
--- a/gnu/packages/patches/mozjs38-tracelogger.patch
+++ /dev/null
@@ -1,608 +0,0 @@
-Squashed version of several commits to fix the tracelogger.
-
-Taken from
-https://github.com/GNOME/jhbuild/blob/master/patches/mozjs38-fix-tracelogger.patch.
-
-# === Fix the SM38 tracelogger ===
-# This patch is a squashed version of several patches that were adapted
-# to fix failing hunks.
-#
-# Applied in the following order, they are:
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223767
-#    Assertion failure: i < size_, at js/src/vm/TraceLoggingTypes.h:210 
-#    Also fix stop-information to make reduce.py work correctly.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227914
-#    Limit the memory tracelogger can take.
-#    This causes tracelogger to flush data to the disk regularly and prevents out of 
-#    memory issues if a lot of data gets logged.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1155618
-#    Fix tracelogger destructor that touches possibly uninitialised hash table.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1223636
-#    Don't treat extraTextId as containing only extra ids.
-#    This fixes an assertion failure: id == nextTextId at js/src/vm/TraceLoggingGraph.cpp
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1227028
-#    Fix when to keep the payload of a TraceLogger event.
-#    This fixes an assertion failure: textId < uint32_t(1 << 31) at js/src/vm/TraceLoggingGraph.h
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1266649
-#    Handle failing to add to pointermap gracefully.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1280648
-#    Don't cache based on pointers to movable GC things.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1224123
-#    Fix the use of LastEntryId in tracelogger.h.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1231170
-#    Use size in debugger instead of the current id to track last logged item.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1221844
-#    Move TraceLogger_Invalidation to LOG_ITEM.
-#    Add some debug checks to logTimestamp.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1255766
-#    Also mark resizing of memory.
-# * https://bugzilla.mozilla.org/show_bug.cgi?id=1259403
-#    Only increase capacity by multiples of 2.
-#    Always make sure there are 3 free slots for events.
-# ===
-
-diff --git a/js/src/jit-test/tests/tracelogger/bug1231170.js b/js/src/jit-test/tests/tracelogger/bug1231170.js
-new file mode 100644
-index 0000000..023e93e
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1231170.js
-@@ -0,0 +1,3 @@
-+var du = new Debugger();
-+if (typeof du.drainTraceLogger === "function")
-+    du.drainTraceLogger();
-diff --git a/js/src/jit-test/tests/tracelogger/bug1266649.js b/js/src/jit-test/tests/tracelogger/bug1266649.js
-new file mode 100644
-index 0000000..81ae7ad
---- /dev/null
-+++ b/js/src/jit-test/tests/tracelogger/bug1266649.js
-@@ -0,0 +1,10 @@
-+
-+var du = new Debugger();
-+if (typeof du.setupTraceLogger === "function" &&
-+    typeof oomTest === 'function')
-+{
-+    du.setupTraceLogger({
-+        Scripts: true
-+    })
-+    oomTest(() => function(){});
-+}
-diff --git a/js/src/jit/Ion.cpp b/js/src/jit/Ion.cpp
-index 93e2fda..09049d6 100644
---- a/js/src/jit/Ion.cpp
-+++ b/js/src/jit/Ion.cpp
-@@ -1055,6 +1055,8 @@ IonScript::Destroy(FreeOp* fop, IonScript* script)
- 
-     script->destroyCaches();
-     script->unlinkFromRuntime(fop);
-+    // Frees the potential event we have set.
-+    script->traceLoggerScriptEvent_ = TraceLoggerEvent();
-     fop->free_(script);
- }
- 
-diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp
-index 26262fd..af7f313 100644
---- a/js/src/vm/Debugger.cpp
-+++ b/js/src/vm/Debugger.cpp
-@@ -369,10 +369,10 @@ Debugger::Debugger(JSContext* cx, NativeObject* dbg)
-     objects(cx),
-     environments(cx),
- #ifdef NIGHTLY_BUILD
--    traceLoggerLastDrainedId(0),
-+    traceLoggerLastDrainedSize(0),
-     traceLoggerLastDrainedIteration(0),
- #endif
--    traceLoggerScriptedCallsLastDrainedId(0),
-+    traceLoggerScriptedCallsLastDrainedSize(0),
-     traceLoggerScriptedCallsLastDrainedIteration(0)
- {
-     assertSameCompartment(cx, dbg);
-@@ -3907,9 +3907,9 @@ Debugger::drainTraceLogger(JSContext* cx, unsigned argc, Value* vp)
-     size_t num;
-     TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
-     bool lostEvents = logger->lostEvents(dbg->traceLoggerLastDrainedIteration,
--                                         dbg->traceLoggerLastDrainedId);
-+                                         dbg->traceLoggerLastDrainedSize);
-     EventEntry* events = logger->getEventsStartingAt(&dbg->traceLoggerLastDrainedIteration,
--                                                     &dbg->traceLoggerLastDrainedId,
-+                                                     &dbg->traceLoggerLastDrainedSize,
-                                                      &num);
- 
-     RootedObject array(cx, NewDenseEmptyArray(cx));
-@@ -4002,10 +4002,10 @@ Debugger::drainTraceLoggerScriptCalls(JSContext* cx, unsigned argc, Value* vp)
-     size_t num;
-     TraceLoggerThread* logger = TraceLoggerForMainThread(cx->runtime());
-     bool lostEvents = logger->lostEvents(dbg->traceLoggerScriptedCallsLastDrainedIteration,
--                                         dbg->traceLoggerScriptedCallsLastDrainedId);
-+                                         dbg->traceLoggerScriptedCallsLastDrainedSize);
-     EventEntry* events = logger->getEventsStartingAt(
-                                          &dbg->traceLoggerScriptedCallsLastDrainedIteration,
--                                         &dbg->traceLoggerScriptedCallsLastDrainedId,
-+                                         &dbg->traceLoggerScriptedCallsLastDrainedSize,
-                                          &num);
- 
-     RootedObject array(cx, NewDenseEmptyArray(cx));
-diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h
-index 8cac36a..c92d685 100644
---- a/js/src/vm/Debugger.h
-+++ b/js/src/vm/Debugger.h
-@@ -314,10 +314,10 @@ class Debugger : private mozilla::LinkedListElement<Debugger>
-      * lost events.
-      */
- #ifdef NIGHTLY_BUILD
--    uint32_t traceLoggerLastDrainedId;
-+    uint32_t traceLoggerLastDrainedSize;
-     uint32_t traceLoggerLastDrainedIteration;
- #endif
--    uint32_t traceLoggerScriptedCallsLastDrainedId;
-+    uint32_t traceLoggerScriptedCallsLastDrainedSize;
-     uint32_t traceLoggerScriptedCallsLastDrainedIteration;
- 
-     class FrameRange;
-diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp
-index 6715b36..9766a6f 100644
---- a/js/src/vm/TraceLogging.cpp
-+++ b/js/src/vm/TraceLogging.cpp
-@@ -131,7 +131,7 @@ TraceLoggerThread::init()
- {
-     if (!pointerMap.init())
-         return false;
--    if (!extraTextId.init())
-+    if (!textIdPayloads.init())
-         return false;
-     if (!events.init())
-         return false;
-@@ -185,10 +185,10 @@ TraceLoggerThread::~TraceLoggerThread()
-         graph = nullptr;
-     }
- 
--    for (TextIdHashMap::Range r = extraTextId.all(); !r.empty(); r.popFront())
--        js_delete(r.front().value());
--    extraTextId.finish();
--    pointerMap.finish();
-+    if (textIdPayloads.initialized()) {
-+        for (TextIdHashMap::Range r = textIdPayloads.all(); !r.empty(); r.popFront())
-+            js_delete(r.front().value());
-+    }
- }
- 
- bool
-@@ -287,7 +287,7 @@ TraceLoggerThread::eventText(uint32_t id)
-     if (id < TraceLogger_Last)
-         return TLTextIdString(static_cast<TraceLoggerTextId>(id));
- 
--    TextIdHashMap::Ptr p = extraTextId.lookup(id);
-+    TextIdHashMap::Ptr p = textIdPayloads.lookup(id);
-     MOZ_ASSERT(p);
- 
-     return p->value()->string();
-@@ -341,13 +341,15 @@ TraceLoggerThread::extractScriptDetails(uint32_t textId, const char** filename,
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId textId)
- {
--    TextIdHashMap::AddPtr p = extraTextId.lookupForAdd(textId);
--    if (p)
-+    TextIdHashMap::AddPtr p = textIdPayloads.lookupForAdd(textId);
-+    if (p) {
-+        MOZ_ASSERT(p->value()->textId() == textId); // Sanity check.
-         return p->value();
-+    }
- 
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, (char*)nullptr);
- 
--    if (!extraTextId.add(p, textId, payload))
-+    if (!textIdPayloads.add(p, textId, payload))
-         return nullptr;
- 
-     return payload;
-@@ -357,8 +359,10 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(const char* text)
- {
-     PointerHashMap::AddPtr p = pointerMap.lookupForAdd((const void*)text);
--    if (p)
-+    if (p) {
-+        MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
-         return p->value();
-+    }
- 
-     size_t len = strlen(text);
-     char* str = js_pod_malloc<char>(len + 1);
-@@ -369,7 +373,7 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
-     MOZ_ASSERT(ret == len);
-     MOZ_ASSERT(strlen(str) == len);
- 
--    uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+    uint32_t textId = nextTextId;
- 
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
-     if (!payload) {
-@@ -377,17 +381,19 @@ TraceLoggerThread::getOrCreateEventPayload(const char* text)
-         return nullptr;
-     }
- 
--    if (!extraTextId.putNew(textId, payload)) {
-+    if (!textIdPayloads.putNew(textId, payload)) {
-         js_delete(payload);
-         return nullptr;
-     }
- 
--    if (!pointerMap.add(p, text, payload))
--        return nullptr;
--
-     if (graph.get())
-         graph->addTextId(textId, str);
- 
-+    nextTextId++;
-+
-+    if (!pointerMap.add(p, text, payload))
-+        return nullptr;
-+
-     return payload;
- }
- 
-@@ -407,9 +413,14 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
-     if (!traceLoggerState->isTextIdEnabled(type))
-         return getOrCreateEventPayload(type);
- 
--    PointerHashMap::AddPtr p = pointerMap.lookupForAdd(ptr);
--    if (p)
--        return p->value();
-+    PointerHashMap::AddPtr p;
-+    if (ptr) {
-+        p = pointerMap.lookupForAdd(ptr);
-+        if (p) {
-+            MOZ_ASSERT(p->value()->textId() < nextTextId); // Sanity check.
-+            return p->value();
-+        }
-+    }
- 
-     // Compute the length of the string to create.
-     size_t lenFilename = strlen(filename);
-@@ -428,24 +439,28 @@ TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, const char* f
-     MOZ_ASSERT(ret == len);
-     MOZ_ASSERT(strlen(str) == len);
- 
--    uint32_t textId = extraTextId.count() + TraceLogger_Last;
-+    uint32_t textId = nextTextId;
-     TraceLoggerEventPayload* payload = js_new<TraceLoggerEventPayload>(textId, str);
-     if (!payload) {
-         js_free(str);
-         return nullptr;
-     }
- 
--    if (!extraTextId.putNew(textId, payload)) {
-+    if (!textIdPayloads.putNew(textId, payload)) {
-         js_delete(payload);
-         return nullptr;
-     }
- 
--    if (!pointerMap.add(p, ptr, payload))
--        return nullptr;
--
-     if (graph.get())
-         graph->addTextId(textId, str);
- 
-+    nextTextId++;
-+
-+    if (ptr) {
-+        if (!pointerMap.add(p, ptr, payload))
-+            return nullptr;
-+    }
-+
-     return payload;
- }
- 
-@@ -453,14 +468,14 @@ TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type, JSScript* script)
- {
-     return getOrCreateEventPayload(type, script->filename(), script->lineno(), script->column(),
--                                   script);
-+                                   nullptr);
- }
- 
- TraceLoggerEventPayload*
- TraceLoggerThread::getOrCreateEventPayload(TraceLoggerTextId type,
-                                            const JS::ReadOnlyCompileOptions& script)
- {
--    return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, &script);
-+    return getOrCreateEventPayload(type, script.filename(), script.lineno, script.column, nullptr);
- }
- 
- void
-@@ -485,7 +500,7 @@ TraceLoggerThread::startEvent(uint32_t id)
-     if (!traceLoggerState->isTextIdEnabled(id))
-        return;
- 
--    logTimestamp(id);
-+    log(id);
- }
- 
- void
-@@ -510,7 +525,7 @@ TraceLoggerThread::stopEvent(uint32_t id)
-     if (!traceLoggerState->isTextIdEnabled(id))
-         return;
- 
--    logTimestamp(TraceLogger_Stop);
-+    log(TraceLogger_Stop);
- }
- 
- void
-@@ -522,23 +537,57 @@ TraceLoggerThread::logTimestamp(TraceLoggerTextId id)
- void
- TraceLoggerThread::logTimestamp(uint32_t id)
- {
-+    MOZ_ASSERT(id > TraceLogger_LastTreeItem && id < TraceLogger_Last);
-+    log(id);
-+}
-+
-+void
-+TraceLoggerThread::log(uint32_t id)
-+{
-     if (enabled == 0)
-         return;
- 
-     MOZ_ASSERT(traceLoggerState);
--    if (!events.ensureSpaceBeforeAdd()) {
-+
-+    // We request for 3 items to add, since if we don't have enough room
-+    // we record the time it took to make more place. To log this information
-+    // we need 2 extra free entries.
-+    if (!events.hasSpaceForAdd(3)) {
-         uint64_t start = rdtsc() - traceLoggerState->startupTime;
- 
--        if (graph.get())
--            graph->log(events);
-+        if (!events.ensureSpaceBeforeAdd(3)) {
-+            if (graph.get())
-+                graph->log(events);
-+
-+            iteration_++;
-+            events.clear();
-+
-+            // Remove the item in the pointerMap for which the payloads
-+            // have no uses anymore
-+            for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) {
-+                if (e.front().value()->uses() != 0)
-+                    continue;
-+
-+                TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId());
-+                MOZ_ASSERT(p);
-+                textIdPayloads.remove(p);
-+
-+                e.removeFront();
-+            }
- 
--        iteration_++;
--        events.clear();
-+            // Free all payloads that have no uses anymore.
-+            for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) {
-+                if (e.front().value()->uses() == 0) {
-+                    js_delete(e.front().value());
-+                    e.removeFront();
-+                }
-+            }
-+        }
- 
-         // Log the time it took to flush the events as being from the
-         // Tracelogger.
-         if (graph.get()) {
--            MOZ_ASSERT(events.capacity() > 2);
-+            MOZ_ASSERT(events.hasSpaceForAdd(2));
-             EventEntry& entryStart = events.pushUninitialized();
-             entryStart.time = start;
-             entryStart.textId = TraceLogger_Internal;
-@@ -548,13 +597,6 @@ TraceLoggerThread::logTimestamp(uint32_t id)
-             entryStop.textId = TraceLogger_Stop;
-         }
- 
--        // Free all TextEvents that have no uses anymore.
--        for (TextIdHashMap::Enum e(extraTextId); !e.empty(); e.popFront()) {
--            if (e.front().value()->uses() == 0) {
--                js_delete(e.front().value());
--                e.removeFront();
--            }
--        }
-     }
- 
-     uint64_t time = rdtsc() - traceLoggerState->startupTime;
-@@ -956,3 +998,16 @@ TraceLoggerEvent::~TraceLoggerEvent()
-     if (payload_)
-         payload_->release();
- }
-+
-+TraceLoggerEvent&
-+TraceLoggerEvent::operator=(const TraceLoggerEvent& other)
-+{
-+    if (hasPayload())
-+        payload()->release();
-+    if (other.hasPayload())
-+        other.payload()->use();
-+
-+    payload_ = other.payload_;
-+
-+    return *this;
-+}
-diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h
-index a124dcb..91a1eb0 100644
---- a/js/src/vm/TraceLogging.h
-+++ b/js/src/vm/TraceLogging.h
-@@ -110,6 +110,9 @@ class TraceLoggerEvent {
-     bool hasPayload() const {
-         return !!payload_;
-     }
-+
-+    TraceLoggerEvent& operator=(const TraceLoggerEvent& other);
-+    TraceLoggerEvent(const TraceLoggerEvent& event) = delete;
- };
- 
- /**
-@@ -130,6 +133,10 @@ class TraceLoggerEventPayload {
-         uses_(0)
-     { }
- 
-+    ~TraceLoggerEventPayload() {
-+        MOZ_ASSERT(uses_ == 0);
-+    }
-+
-     uint32_t textId() {
-         return textId_;
-     }
-@@ -166,7 +173,8 @@ class TraceLoggerThread
-     mozilla::UniquePtr<TraceLoggerGraph> graph;
- 
-     PointerHashMap pointerMap;
--    TextIdHashMap extraTextId;
-+    TextIdHashMap textIdPayloads;
-+    uint32_t nextTextId;
- 
-     ContinuousSpace<EventEntry> events;
- 
-@@ -181,6 +189,7 @@ class TraceLoggerThread
-       : enabled(0),
-         failed(false),
-         graph(),
-+        nextTextId(TraceLogger_Last),
-         iteration_(0),
-         top(nullptr)
-     { }
-@@ -195,22 +204,22 @@ class TraceLoggerThread
-     bool enable(JSContext* cx);
-     bool disable();
- 
--    // Given the previous iteration and lastEntryId, return an array of events
-+    // Given the previous iteration and size, return an array of events
-     // (there could be lost events). At the same time update the iteration and
--    // lastEntry and gives back how many events there are.
--    EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastEntryId, size_t* num) {
-+    // size and gives back how many events there are.
-+    EventEntry* getEventsStartingAt(uint32_t* lastIteration, uint32_t* lastSize, size_t* num) {
-         EventEntry* start;
-         if (iteration_ == *lastIteration) {
--            MOZ_ASSERT(events.lastEntryId() >= *lastEntryId);
--            *num = events.lastEntryId() - *lastEntryId;
--            start = events.data() + *lastEntryId + 1;
-+            MOZ_ASSERT(*lastSize <= events.size());
-+            *num = events.size() - *lastSize;
-+            start = events.data() + *lastSize;
-         } else {
--            *num = events.lastEntryId() + 1;
-+            *num = events.size();
-             start = events.data();
-         }
- 
-         *lastIteration = iteration_;
--        *lastEntryId = events.lastEntryId();
-+        *lastSize = events.size();
-         return start;
-     }
- 
-@@ -220,16 +229,16 @@ class TraceLoggerThread
-                               const char** lineno, size_t* lineno_len, const char** colno,
-                               size_t* colno_len);
- 
--    bool lostEvents(uint32_t lastIteration, uint32_t lastEntryId) {
-+    bool lostEvents(uint32_t lastIteration, uint32_t lastSize) {
-         // If still logging in the same iteration, there are no lost events.
-         if (lastIteration == iteration_) {
--            MOZ_ASSERT(lastEntryId <= events.lastEntryId());
-+            MOZ_ASSERT(lastSize <= events.size());
-             return false;
-         }
- 
--        // When proceeded to the next iteration and lastEntryId points to
--        // the maximum capacity there are no logs that are lost.
--        if (lastIteration + 1 == iteration_ && lastEntryId == events.capacity())
-+        // If we are in a consecutive iteration we are only sure we didn't lose any events,
-+        // when the lastSize equals the maximum size 'events' can get.
-+        if (lastIteration == iteration_ - 1 && lastSize == events.maxSize())
-             return false;
- 
-         return true;
-@@ -268,6 +277,7 @@ class TraceLoggerThread
-     void stopEvent(uint32_t id);
-   private:
-     void stopEvent();
-+    void log(uint32_t id);
- 
-   public:
-     static unsigned offsetOfEnabled() {
-diff --git a/js/src/vm/TraceLoggingGraph.cpp b/js/src/vm/TraceLoggingGraph.cpp
-index d1b7f2e..a4eb273 100644
---- a/js/src/vm/TraceLoggingGraph.cpp
-+++ b/js/src/vm/TraceLoggingGraph.cpp
-@@ -276,7 +276,7 @@ TraceLoggerGraph::flush()
-         if (bytesWritten < tree.size())
-             return false;
- 
--        treeOffset += tree.lastEntryId();
-+        treeOffset += tree.size();
-         tree.clear();
-     }
- 
-@@ -359,7 +359,7 @@ TraceLoggerGraph::startEventInternal(uint32_t id, uint64_t timestamp)
- 
-     if (parent.lastChildId() == 0) {
-         MOZ_ASSERT(!entry.hasChildren());
--        MOZ_ASSERT(parent.treeId() == tree.lastEntryId() + treeOffset);
-+        MOZ_ASSERT(parent.treeId() == treeOffset + tree.size() - 1);
- 
-         if (!updateHasChildren(parent.treeId()))
-             return false;
-diff --git a/js/src/vm/TraceLoggingTypes.h b/js/src/vm/TraceLoggingTypes.h
-index f1c9d0c..10b76d6 100644
---- a/js/src/vm/TraceLoggingTypes.h
-+++ b/js/src/vm/TraceLoggingTypes.h
-@@ -21,7 +21,6 @@
-     _(Internal)                                       \
-     _(Interpreter)                                    \
-     _(InlinedScripts)                                 \
--    _(Invalidation)                                   \
-     _(IonCompilation)                                 \
-     _(IonCompilationPaused)                           \
-     _(IonLinking)                                     \
-@@ -60,6 +59,7 @@
- 
- #define TRACELOGGER_LOG_ITEMS(_)                      \
-     _(Bailout)                                        \
-+    _(Invalidation)                                   \
-     _(Disable)                                        \
-     _(Enable)                                         \
-     _(Stop)
-@@ -130,6 +130,9 @@ class ContinuousSpace {
-     uint32_t size_;
-     uint32_t capacity_;
- 
-+    // The maximum amount of ram memory a continuous space structure can take (in bytes).
-+    static const uint32_t LIMIT = 200 * 1024 * 1024;
-+
-   public:
-     ContinuousSpace ()
-      : data_(nullptr)
-@@ -151,6 +154,10 @@ class ContinuousSpace {
-         data_ = nullptr;
-     }
- 
-+    static uint32_t maxSize() {
-+        return LIMIT / sizeof(T);
-+    }
-+
-     T* data() {
-         return data_;
-     }
-@@ -187,11 +194,14 @@ class ContinuousSpace {
-         if (hasSpaceForAdd(count))
-             return true;
- 
-+        // Limit the size of a continuous buffer.
-+        if (size_ + count > maxSize())
-+            return false;
-+
-         uint32_t nCapacity = capacity_ * 2;
--        if (size_ + count > nCapacity)
--            nCapacity = size_ + count;
--        T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
-+        nCapacity = (nCapacity < maxSize()) ? nCapacity : maxSize();
- 
-+        T* entries = (T*) js_realloc(data_, nCapacity * sizeof(T));
-         if (!entries)
-             return false;
- 
diff --git a/gnu/packages/patches/mozjs38-version-detection.patch b/gnu/packages/patches/mozjs38-version-detection.patch
deleted file mode 100644
index ec2d264ccc..0000000000
--- a/gnu/packages/patches/mozjs38-version-detection.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-Taken from
-https://trac.wildfiregames.com/export/18656/ps/trunk/libraries/source/spidermonkey/FixVersionDetectionConfigure.diff.
-
-Fixes a version detection issue in 0ad.  See
-https://lists.gnu.org/archive/html/guix-devel/2017-01/msg00625.html.
-
-diff --git a/js/src/configure b/js/src/configure
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -1662,70 +1662,6 @@ esac
- 
- fi
- 
--MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir`
--MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion`
--MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion`
--
--cat >> confdefs.pytmp <<EOF
--    (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_VERSION "$MOZILLA_VERSION"
--EOF
--
--cat >> confdefs.pytmp <<EOF
--    (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_VERSION_U $MOZILLA_VERSION
--EOF
--
--cat >> confdefs.pytmp <<EOF
--    (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION"
--EOF
--
--
--
--# Separate version into components for use in shared object naming etc
--
--MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"`
--MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
--MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
--IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
--
--JS_SHELL_NAME=js
--JS_CONFIG_NAME=js-config
--
--
--if test -n "$IS_ALPHA"; then
--  
--  MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"`
--  
--fi
--cat >> confdefs.pytmp <<EOF
--    (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION
--EOF
--
--cat >> confdefs.pytmp <<EOF
--    (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
--EOF
--cat >> confdefs.h <<EOF
--#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION
--EOF
--
--
--
--
--
--
--
--
- 
- AR_FLAGS='crs $@'
- 
-@@ -5731,6 +5565,71 @@ XCFLAGS="$X_CFLAGS"
- 
- fi # COMPILE_ENVIRONMENT
- 
-+MOZILLA_VERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir`
-+MOZILLA_UAVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --uaversion`
-+MOZILLA_SYMBOLVERSION=`$PYTHON $srcdir/python/mozbuild/mozbuild/milestone.py --topsrcdir $srcdir --symbolversion`
-+
-+cat >> confdefs.pytmp <<EOF
-+    (''' MOZILLA_VERSION ''', r''' "$MOZILLA_VERSION" ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_VERSION "$MOZILLA_VERSION"
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+    (''' MOZILLA_VERSION_U ''', r''' $MOZILLA_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_VERSION_U $MOZILLA_VERSION
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+    (''' MOZILLA_UAVERSION ''', r''' "$MOZILLA_UAVERSION" ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZILLA_UAVERSION "$MOZILLA_UAVERSION"
-+EOF
-+
-+
-+
-+# Separate version into components for use in shared object naming etc
-+
-+MOZJS_MAJOR_VERSION=`echo $MOZILLA_VERSION | sed "s|\(^[0-9]*\)\.[0-9]*.*|\1|"`
-+MOZJS_MINOR_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.\([0-9]*\).*|\1|"`
-+MOZJS_PATCH_VERSION=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9]*[^0-9]*||"`
-+IS_ALPHA=`echo $MOZILLA_VERSION | grep '[ab]'`
-+
-+JS_SHELL_NAME=js
-+JS_CONFIG_NAME=js-config
-+
-+
-+if test -n "$IS_ALPHA"; then
-+  
-+  MOZJS_ALPHA=`echo $MOZILLA_VERSION | sed "s|^[0-9]*\.[0-9\.]*\([^0-9]\).*|\1|"`
-+  
-+fi
-+cat >> confdefs.pytmp <<EOF
-+    (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZJS_MAJOR_VERSION $MOZJS_MAJOR_VERSION
-+EOF
-+
-+cat >> confdefs.pytmp <<EOF
-+    (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
-+EOF
-+cat >> confdefs.h <<EOF
-+#define MOZJS_MINOR_VERSION $MOZJS_MINOR_VERSION
-+EOF
-+
-+
-+
-+
-+
-+
-+
-+
-+
- AS_BIN=$AS
- AR_LIST='$(AR) t'
- AR_EXTRACT='$(AR) x'
-@@ -16003,13 +15908,6 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF
-     (''' ANDROID_NDK ''', r''' $ANDROID_NDK ''')
-     (''' ANDROID_TOOLCHAIN ''', r''' $ANDROID_TOOLCHAIN ''')
-     (''' ANDROID_PLATFORM ''', r''' $ANDROID_PLATFORM ''')
--    (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''')
--    (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''')
--    (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''')
--    (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
--    (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
--    (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''')
--    (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''')
-     (''' HOST_CC ''', r''' $HOST_CC ''')
-     (''' HOST_CXX ''', r''' $HOST_CXX ''')
-     (''' HOST_RANLIB ''', r''' $HOST_RANLIB ''')
-@@ -16061,6 +15959,13 @@ sed 's/$/,/' >> $CONFIG_STATUS <<EOF
-     (''' X_PRE_LIBS ''', r''' $X_PRE_LIBS ''')
-     (''' X_LIBS ''', r''' $X_LIBS ''')
-     (''' X_EXTRA_LIBS ''', r''' $X_EXTRA_LIBS ''')
-+    (''' MOZILLA_SYMBOLVERSION ''', r''' $MOZILLA_SYMBOLVERSION ''')
-+    (''' JS_SHELL_NAME ''', r''' $JS_SHELL_NAME ''')
-+    (''' JS_CONFIG_NAME ''', r''' $JS_CONFIG_NAME ''')
-+    (''' MOZJS_MAJOR_VERSION ''', r''' $MOZJS_MAJOR_VERSION ''')
-+    (''' MOZJS_MINOR_VERSION ''', r''' $MOZJS_MINOR_VERSION ''')
-+    (''' MOZJS_PATCH_VERSION ''', r''' $MOZJS_PATCH_VERSION ''')
-+    (''' MOZJS_ALPHA ''', r''' $MOZJS_ALPHA ''')
-     (''' SOLARIS_SUNPRO_CC ''', r''' $SOLARIS_SUNPRO_CC ''')
-     (''' SOLARIS_SUNPRO_CXX ''', r''' $SOLARIS_SUNPRO_CXX ''')
-     (''' MOZ_THUMB2 ''', r''' $MOZ_THUMB2 ''')
diff --git a/gnu/packages/patches/mozjs60-riscv64-support.patch b/gnu/packages/patches/mozjs60-riscv64-support.patch
deleted file mode 100644
index c9fa2ba9b3..0000000000
--- a/gnu/packages/patches/mozjs60-riscv64-support.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-This is a combination of several upstream patches which weren't accepted.
-They were proposed by Fedora for spidermonkey 52 and were ultimately
-accepted years later after some changes for a later version. It was
-adapted slightly from both sets of patches to apply cleanly to mozjs-60.
-
-https://bugzilla.mozilla.org/show_bug.cgi?id=1318905
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812602
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812603
-https://bug1318905.bmoattachments.org/attachment.cgi?id=8812604
-https://phabricator.services.mozilla.com/D78623
-https://phabricator.services.mozilla.com/D78624
-https://phabricator.services.mozilla.com/D78625
-
-
-diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
-index 83b8d705..59131525 100644
---- a/build/moz.configure/init.configure
-+++ b/build/moz.configure/init.configure
-@@ -676,6 +676,9 @@ def split_triplet(triplet, allow_unknown=False):
-     elif cpu == 'sh4':
-         canonical_cpu = 'sh4'
-         endianness = 'little'
-+    elif cpu.startswith('riscv64'):
-+        canonical_cpu = 'riscv64'
-+        endianness = 'little'
-     elif allow_unknown:
-         canonical_cpu = cpu
-         endianness = 'unknown'
-diff --git a/js/src/jit/AtomicOperations.h b/js/src/jit/AtomicOperations.h
-index a8970b0d..6b947a3f 100644
---- a/js/src/jit/AtomicOperations.h
-+++ b/js/src/jit/AtomicOperations.h
-@@ -375,7 +375,7 @@ AtomicOperations::isLockfreeJS(int32_t size)
- # endif
- #elif defined(__ppc__) || defined(__PPC__)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
--#elif defined(__sparc__)
-+#elif defined(__sparc__) || defined(__riscv)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
- #elif defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || defined(__PPC64LE__)
- # include "jit/none/AtomicOperations-feeling-lucky.h"
-diff --git a/js/src/jit/none/AtomicOperations-feeling-lucky.h b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-index da572284..6ce40c89 100644
---- a/js/src/jit/none/AtomicOperations-feeling-lucky.h
-+++ b/js/src/jit/none/AtomicOperations-feeling-lucky.h
-@@ -49,6 +49,12 @@
- #  define GNUC_COMPATIBLE
- #endif
- 
-+#if defined(__riscv) && __riscv_xlen == 64
-+#  define HAS_64BIT_ATOMICS
-+#  define HAS_64BIT_LOCKFREE
-+#  define GNUC_COMPATIBLE
-+#endif
-+
- #ifdef __sparc__
- #  define GNUC_COMPATIBLE
- #  ifdef  __LP64__
-diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h
-index 80143dc8..b430fedb 100644
---- a/js/src/jit/none/MacroAssembler-none.h
-+++ b/js/src/jit/none/MacroAssembler-none.h
-@@ -402,6 +402,10 @@ class MacroAssemblerNone : public Assembler
- #endif
- };
- 
-+    struct AutoPrepareForPatching {
-+        explicit AutoPrepareForPatching(MacroAssemblerNone&) {}
-+    };
-+
- typedef MacroAssemblerNone MacroAssemblerSpecific;
- 
- class ABIArgGenerator
-diff --git a/mfbt/tests/TestPoisonArea.cpp b/mfbt/tests/TestPoisonArea.cpp
-index 06c24ed0..c3fed0df 100644
---- a/mfbt/tests/TestPoisonArea.cpp
-+++ b/mfbt/tests/TestPoisonArea.cpp
-@@ -160,6 +160,9 @@
- #elif defined __aarch64__
- #define RETURN_INSTR 0xd65f03c0 /* ret */
- 
-+#elif defined __riscv
-+#define RETURN_INSTR 0x80828082 /* ret; ret */
-+
- #elif defined __ia64
- struct ia64_instr { uint32_t mI[4]; };
- static const ia64_instr _return_instr =
-diff --git a/python/mozbuild/mozbuild/configure/constants.py b/python/mozbuild/mozbuild/configure/constants.py
-index 33ae5a45..11a01d3b 100644
---- a/python/mozbuild/mozbuild/configure/constants.py
-+++ b/python/mozbuild/mozbuild/configure/constants.py
-@@ -50,6 +50,7 @@ CPU_bitness = {
-     'mips64': 64,
-     'ppc': 32,
-     'ppc64': 64,
-+    'riscv64': 64,
-     's390': 32,
-     's390x': 64,
-     'sh4': 32,
-@@ -82,6 +84,7 @@ CPU_preprocessor_checks = OrderedDict((
-     ('s390', '__s390__'),
-     ('ppc64', '__powerpc64__'),
-     ('ppc', '__powerpc__'),
-+    ('riscv64', '__riscv && __riscv_xlen == 64'),
-     ('Alpha', '__alpha__'),
-     ('hppa', '__hppa__'),
-     ('sparc64', '__sparc__ && __arch64__'),
-diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-index cb7ff709..9da41adf 100755
---- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-+++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
-@@ -1165,6 +1165,10 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest):
-         'sh4-unknown-linux-gnu': little_endian + {
-             '__sh__': 1,
-         },
-+        'riscv64-unknown-linux-gnu': little_endian + {
-+            '__riscv': 1,
-+            '__riscv_xlen': 64,
-+        },
-     }
- 
-     PLATFORMS['powerpc64le-unknown-linux-gnu'] = \
diff --git a/gnu/packages/patches/openbox-python3.patch b/gnu/packages/patches/openbox-python3.patch
new file mode 100644
index 0000000000..782524d8a7
--- /dev/null
+++ b/gnu/packages/patches/openbox-python3.patch
@@ -0,0 +1,165 @@
+Retrieved from the openbox Debian package.
+
+From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
+From: Troy Curtis Jr <troycurtisjr@gmail.com>
+Date: Wed, 13 Sep 2017 21:59:48 -0500
+Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
+
+Updated syntax in openbox-xdg-autostart to support both python2 and
+python3.
+
+Added a configure substitution to set the chosen python at build time.
+
+https://bugzilla.icculus.org/show_bug.cgi?id=6444
+---
+ .gitignore                                    |  1 +
+ configure.ac                                  |  3 +
+ ...xdg-autostart => openbox-xdg-autostart.in} | 70 +++++++++----------
+ 3 files changed, 38 insertions(+), 36 deletions(-)
+ rename data/autostart/{openbox-xdg-autostart => openbox-xdg-autostart.in} (77%)
+
+diff --git a/configure.ac b/configure.ac
+index ca1602670..9a31e9845 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,6 +103,8 @@ AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
+ AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
+ AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
+ 
++AM_PATH_PYTHON([2],,)
++
+ AC_PATH_PROG([SED], [sed], [no])
+ if test "$SED" = "no"; then
+   AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
+@@ -259,6 +261,7 @@ AC_CONFIG_FILES([
+   obrender/version.h
+   obt/version.h
+   version.h
++  data/autostart/openbox-xdg-autostart
+ ])
+ AC_CONFIG_COMMANDS([doc],
+                    [test -d doc || mkdir doc])
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart.in
+similarity index 77%
+rename from data/autostart/openbox-xdg-autostart
+rename to data/autostart/openbox-xdg-autostart.in
+index 04a17a199..3c365b112 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!@PYTHON@
+ 
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008       Dana Jansens
+@@ -28,9 +28,7 @@ try:
+     from xdg.DesktopEntry import DesktopEntry
+     from xdg.Exceptions import ParsingError
+ except ImportError:
+-    print
+-    print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+-    print
++    sys.stderr.write("\nERROR: %s requires PyXDG to be installed\n" % ME)
+     sys.exit(1)
+ 
+ def main(argv=sys.argv):
+@@ -51,7 +49,7 @@ def main(argv=sys.argv):
+             try:
+                 autofile = AutostartFile(path)
+             except ParsingError:
+-                print "Invalid .desktop file: " + path
++                print("Invalid .desktop file: " + path)
+             else:
+                 if not autofile in files:
+                     files.append(autofile)
+@@ -99,9 +97,9 @@ class AutostartFile:
+ 
+     def _alert(self, str, info=False):
+         if info:
+-            print "\t ", str
++            print("\t ", str)
+         else:
+-            print "\t*", str
++            print("\t*", str)
+ 
+     def _showInEnvironment(self, envs, verbose=False):
+         default = not self.de.getOnlyShowIn()
+@@ -146,14 +144,14 @@ class AutostartFile:
+ 
+     def display(self, envs):
+         if self._shouldRun(envs):
+-            print "[*] " + self.de.getName()
++            print("[*] " + self.de.getName())
+         else:
+-            print "[ ] " + self.de.getName()
++            print("[ ] " + self.de.getName())
+         self._alert("File: " + self.path, info=True)
+         if self.de.getExec():
+             self._alert("Executes: " + self.de.getExec(), info=True)
+         self._shouldRun(envs, True)
+-        print
++        print()
+ 
+     def run(self, envs):
+         here = os.getcwd()
+@@ -165,34 +163,34 @@ class AutostartFile:
+         os.chdir(here)
+ 
+ def show_help():
+-    print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+-    print
+-    print "This tool will run xdg autostart .desktop files"
+-    print
+-    print "OPTIONS"
+-    print "  --list        Show a list of the files which would be run"
+-    print "                Files which would be run are marked with an asterix"
+-    print "                symbol [*].  For files which would not be run,"
+-    print "                information is given for why they are excluded"
+-    print "  --help        Show this help and exit"
+-    print "  --version     Show version and copyright information"
+-    print
+-    print "ENVIRONMENT specifies a list of environments for which to run autostart"
+-    print "applications.  If none are specified, only applications which do not "
+-    print "limit themselves to certain environments will be run."
+-    print
+-    print "ENVIRONMENT can be one or more of:"
+-    print "  GNOME         Gnome Desktop"
+-    print "  KDE           KDE Desktop"
+-    print "  ROX           ROX Desktop"
+-    print "  XFCE          XFCE Desktop"
+-    print "  Old           Legacy systems"
+-    print
++    print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++    print()
++    print("This tool will run xdg autostart .desktop files")
++    print()
++    print("OPTIONS")
++    print("  --list        Show a list of the files which would be run")
++    print("                Files which would be run are marked with an asterix")
++    print("                symbol [*].  For files which would not be run,")
++    print("                information is given for why they are excluded")
++    print("  --help        Show this help and exit")
++    print("  --version     Show version and copyright information")
++    print()
++    print("ENVIRONMENT specifies a list of environments for which to run autostart")
++    print("applications.  If none are specified, only applications which do not ")
++    print("limit themselves to certain environments will be run.")
++    print()
++    print("ENVIRONMENT can be one or more of:")
++    print("  GNOME         Gnome Desktop")
++    print("  KDE           KDE Desktop")
++    print("  ROX           ROX Desktop")
++    print("  XFCE          XFCE Desktop")
++    print("  Old           Legacy systems")
++    print()
+ 
+ def show_version():
+-    print ME, VERSION
+-    print "Copyright (c) 2008        Dana Jansens"
+-    print
++    print(ME, VERSION)
++    print("Copyright (c) 2008        Dana Jansens")
++    print()
+ 
+ if __name__ == "__main__":
+         sys.exit(main())
diff --git a/gnu/packages/patches/python2-parameterized-docstring-test.patch b/gnu/packages/patches/python2-parameterized-docstring-test.patch
deleted file mode 100644
index 14691e1904..0000000000
--- a/gnu/packages/patches/python2-parameterized-docstring-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Skip unicode docstring test, required when running on Python 2.
-
-See <https://github.com/wolever/parameterized/issues/44>.
-
---- a/parameterized/test.py
-+++ b/parameterized/test.py
-@@ -284,11 +284,6 @@
-             "        More" %(foo, )
-         )
- 
--    @parameterized.expand([param("foo")])
--    def test_unicode_docstring(self, foo):
--        u"""Döcumentation."""
--        self._assert_docstring(u"Döcumentation [with foo=%r]." %(foo, ))
--
-     @parameterized.expand([param("foo", )])
-     def test_default_values_get_correct_value(self, foo, bar=12):
-         """Documentation"""
diff --git a/gnu/packages/patches/python2-pygobject-2-deprecation.patch b/gnu/packages/patches/python2-pygobject-2-deprecation.patch
deleted file mode 100644
index 6a08e56351..0000000000
--- a/gnu/packages/patches/python2-pygobject-2-deprecation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e5df32ffbf37481dbb6a70c4d4e7b7b9778c5549 Mon Sep 17 00:00:00 2001
-From: "John (J5) Palmieri" <johnp@redhat.com>
-Date: Sat, 13 Aug 2011 04:13:28 -0400
-Subject: remove references to deprecated GI_INFO_TYPE_ERROR_DOMAIN
-
-
-diff --git a/gi/pygi-info.c b/gi/pygi-info.c
-index 8729e25..007b609 100644
---- a/gi/pygi-info.c
-+++ b/gi/pygi-info.c
-@@ -165,9 +165,6 @@ _pygi_info_new (GIBaseInfo *info)
-         case GI_INFO_TYPE_CONSTANT:
-             type = &PyGIConstantInfo_Type;
-             break;
--        case GI_INFO_TYPE_ERROR_DOMAIN:
--            type = &PyGIErrorDomainInfo_Type;
--            break;
-         case GI_INFO_TYPE_UNION:
-             type = &PyGIUnionInfo_Type;
-             break;
-@@ -484,7 +481,6 @@ _pygi_g_type_info_size (GITypeInfo *type_info)
-                 case GI_INFO_TYPE_INVALID:
-                 case GI_INFO_TYPE_FUNCTION:
-                 case GI_INFO_TYPE_CONSTANT:
--                case GI_INFO_TYPE_ERROR_DOMAIN:
-                 case GI_INFO_TYPE_VALUE:
-                 case GI_INFO_TYPE_SIGNAL:
-                 case GI_INFO_TYPE_PROPERTY:
-@@ -863,7 +859,6 @@ pygi_g_struct_info_is_simple (GIStructInfo *struct_info)
-                     case GI_INFO_TYPE_INVALID:
-                     case GI_INFO_TYPE_FUNCTION:
-                     case GI_INFO_TYPE_CONSTANT:
--                    case GI_INFO_TYPE_ERROR_DOMAIN:
-                     case GI_INFO_TYPE_VALUE:
-                     case GI_INFO_TYPE_SIGNAL:
-                     case GI_INFO_TYPE_PROPERTY:
--- 
-cgit v0.10.1
-
diff --git a/gnu/packages/patches/python2-subprocess32-disable-input-test.patch b/gnu/packages/patches/python2-subprocess32-disable-input-test.patch
deleted file mode 100644
index 05b4eef1ba..0000000000
--- a/gnu/packages/patches/python2-subprocess32-disable-input-test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-This test tries to send a KeyboardInterrupt, which does
-not work in the build environment.
-
---- a/test_subprocess32.py	2017-03-06 22:21:49.334045485 +0100
-+++ b/test_subprocess32.py	2017-03-06 22:22:02.490439949 +0100
-@@ -1299,12 +1299,6 @@
-         getattr(p, method)(*args)
-         return p
- 
--    def test_send_signal(self):
--        p = self._kill_process('send_signal', signal.SIGINT)
--        _, stderr = p.communicate()
--        self.assertIn('KeyboardInterrupt', stderr)
--        self.assertNotEqual(p.wait(), 0)
--
-     def test_kill(self):
-         p = self._kill_process('kill')
-         _, stderr = p.communicate()
diff --git a/gnu/packages/patches/rapicorn-isnan.patch b/gnu/packages/patches/rapicorn-isnan.patch
deleted file mode 100644
index b0e7819e64..0000000000
--- a/gnu/packages/patches/rapicorn-isnan.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From e0c8341b3e4e13778bcde00d477e461ea8e94306 Mon Sep 17 00:00:00 2001
-From: Stefan Westerfeld <stefan@space.twc.de>
-Date: Fri, 22 Apr 2016 18:03:37 +0200
-Subject: [PATCH 031/176] RCORE: compile fixes for KUbuntu 16.04/gcc
- 5.3.1-14ubuntu2
-
-Rapicorn uses isnan(...) and isinf(...) from cmath.h, however on KUbuntu 16.04
-it should use std::isnan(...) and std::isinf(...) instead. Patch below.
-
-Acked-by: Tim Janik <timj@gnu.org>
----
- rcore/strings.cc          | 10 +++++-----
- rcore/tests/benchrcore.cc |  4 ++--
- rcore/tests/strings.cc    |  4 ++--
- 3 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/rcore/strings.cc b/rcore/strings.cc
-index d5b0216..8b3bc3f 100644
---- a/rcore/strings.cc
-+++ b/rcore/strings.cc
-@@ -437,7 +437,7 @@ static long double
- libc_strtold (const char *nptr, char **endptr)
- {
-   const long double result = strtold (nptr, endptr);
--  if (isnan (result) && std::signbit (result) == 0)
-+  if (std::isnan (result) && std::signbit (result) == 0)
-     {
-       const char *p = nptr;
-       while (isspace (*p))
-@@ -500,9 +500,9 @@ string_to_double (const char *dblstring, const char **endptr)
- String
- string_from_float (float value)
- {
--  if (isnan (value))
-+  if (std::isnan (value))
-     return std::signbit (value) ? "-NaN" : "+NaN";
--  if (isinf (value))
-+  if (std::isinf (value))
-     return std::signbit (value) ? "-Infinity" : "+Infinity";
-   return string_format ("%.7g", value);
- }
-@@ -511,9 +511,9 @@ string_from_float (float value)
- String
- string_from_double (double value)
- {
--  if (isnan (value))
-+  if (std::isnan (value))
-     return std::signbit (value) ? "-NaN" : "+NaN";
--  if (isinf (value))
-+  if (std::isinf (value))
-     return std::signbit (value) ? "-Infinity" : "+Infinity";
-   return string_format ("%.17g", value);
- }
-diff --git a/rcore/tests/benchrcore.cc b/rcore/tests/benchrcore.cc
-index 3899a08..12fde16 100644
---- a/rcore/tests/benchrcore.cc
-+++ b/rcore/tests/benchrcore.cc
-@@ -188,8 +188,8 @@ test_random_numbers()
-       const double rf = random_frange (989617512, 9876547656);
-       TASSERT (rf >= 989617512 && rf < 9876547656);
-     }
--  TASSERT (isnan (random_frange (NAN, 1)));
--  TASSERT (isnan (random_frange (0, NAN)));
-+  TASSERT (std::isnan (random_frange (NAN, 1)));
-+  TASSERT (std::isnan (random_frange (0, NAN)));
- #if 0 // example penalty paid in random_int64()
-   size_t i, j = 0;
-   for (i = 0; i < 100; i++)
-diff --git a/rcore/tests/strings.cc b/rcore/tests/strings.cc
-index 468a6e6..dae3e3d 100644
---- a/rcore/tests/strings.cc
-+++ b/rcore/tests/strings.cc
-@@ -311,9 +311,9 @@ string_conversions (void)
-   TCMP (string_to_double ("-0.5"), ==, -0.5);
-   double tfloat;
-   tfloat = string_to_double ("+NAN");
--  assert (isnan (tfloat) && std::signbit (tfloat) == 0);
-+  assert (std::isnan (tfloat) && std::signbit (tfloat) == 0);
-   tfloat = string_to_double ("-NAN");
--  assert (isnan (tfloat) && std::signbit (tfloat) == 1);
-+  assert (std::isnan (tfloat) && std::signbit (tfloat) == 1);
-   TCMP (string_capitalize ("fOO bar"), ==, "Foo Bar");
-   TCMP (string_capitalize ("foo BAR BAZ", 2), ==, "Foo Bar BAZ");
- }
--- 
-2.9.1
-
diff --git a/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch b/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch
new file mode 100644
index 0000000000..17413c71ae
--- /dev/null
+++ b/gnu/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch
@@ -0,0 +1,117 @@
+This patch disables build targets that contain pre-built Java archives that
+would be copied to the build's output.
+
+Patch by Roel Janssen <roel@gnu.org>
+*** a-virtuoso-opensource-7.2.7/binsrc/Makefile.am	1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/binsrc/Makefile.am	2022-05-27 12:20:52.909135774 +0200
+***************
+*** 19,25 ****
+  #  
+  #  
+  
+! SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel fct tutorial conductor samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql jena jena2 jena3 jena4 sesame sesame2 sesame3 sesame4 redland hibernate dbpedia rdb2rdf rdf4j
+  
+  
+  # ----------------------------------------------------------------------
+--- 19,25 ----
+  #  
+  #  
+  
+! SUBDIRS = dav mono virtuoso tests rdf_mappers driver maildrop sqldoc hosting bpel fct tutorial conductor samples vsp ws sync vspx vad cached_resources virtodbc virtoledb virtuoso_sink xddl VirtuosoClient.Net oat isparql redland dbpedia rdb2rdf
+  
+  
+  # ----------------------------------------------------------------------
+*** a-virtuoso-opensource-7.2.7/configure.ac	1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/configure.ac	2022-05-27 12:27:51.879208018 +0200
+***************
+*** 57,64 ****
+  dnl	AM_INIT_AUTOMAKE([1.8])
+  dnl	AM_INIT_AUTOMAKE([1.9 tar-ustar])
+  dnl
+! AM_INIT_AUTOMAKE([1.9 tar-ustar])
+! 
+  AM_MAINTAINER_MODE
+  
+  
+--- 57,63 ----
+  dnl	AM_INIT_AUTOMAKE([1.8])
+  dnl	AM_INIT_AUTOMAKE([1.9 tar-ustar])
+  dnl
+! AM_INIT_AUTOMAKE([1.9 tar-ustar subdir-objects])
+  AM_MAINTAINER_MODE
+  
+  
+***************
+*** 3157,3163 ****
+  	binsrc/dbpedia/Makefile
+  	binsrc/driver/Makefile
+  	binsrc/fct/Makefile
+- 	binsrc/hibernate/Makefile
+  	binsrc/hosting/Makefile
+  	binsrc/hosting/mono/Makefile
+  	binsrc/hosting/mono/tests/Makefile
+--- 3156,3161 ----
+***************
+*** 3169,3184 ****
+  	binsrc/hosting/ruby/Makefile
+  	binsrc/hosting/shapefileio/Makefile
+  	binsrc/isparql/Makefile
+- 	binsrc/jena/Makefile
+- 	binsrc/jena2/Makefile
+- 	binsrc/jena3/Makefile
+- 	binsrc/jena4/Makefile
+  	binsrc/maildrop/Makefile
+  	binsrc/mono/Makefile
+  	binsrc/oat/Makefile
+  	binsrc/rdf_mappers/Makefile
+  	binsrc/rdb2rdf/Makefile
+- 	binsrc/rdf4j/Makefile
+  	binsrc/redland/Makefile
+  	binsrc/samples/demo/Makefile
+  	binsrc/samples/hslookup/Makefile
+--- 3167,3177 ----
+***************
+*** 3191,3200 ****
+  	binsrc/samples/webapp/Makefile
+  	binsrc/samples/xpath/Makefile
+  	binsrc/samples/xquery/Makefile
+- 	binsrc/sesame/Makefile
+- 	binsrc/sesame2/Makefile
+- 	binsrc/sesame3/Makefile
+- 	binsrc/sesame4/Makefile
+  	binsrc/sqldoc/Makefile
+  	binsrc/sync/Makefile
+  	binsrc/tests/biftest/Makefile
+--- 3184,3189 ----
+***************
+*** 3236,3245 ****
+  	docsrc/stylesheets/Makefile
+  	docsrc/xmlsource/Makefile
+  	libsrc/Dk/Makefile
+- 	libsrc/JDBCDriverType4/Makefile
+- 	libsrc/JDBCDriverType4/testsuite_4.0/Makefile
+- 	libsrc/JDBCDriverType4/virtuoso/jdbc/Makefile
+- 	libsrc/JDBCDriverType4/virtuoso/Makefile
+  	libsrc/langfunc/Makefile
+  	libsrc/odbcsdk/Makefile
+  	libsrc/plugin/Makefile
+--- 3225,3230 ----
+*** a-virtuoso-opensource-7.2.7/libsrc/Makefile.am	1970-01-01 01:00:01.000000000 +0100
+--- b-virtuoso-opensource-7.2.7/libsrc/Makefile.am	2022-05-27 12:30:12.658593011 +0200
+***************
+*** 19,25 ****
+  #  
+  #  
+  
+! SUBDIRS = util zlib odbcsdk Dk Thread langfunc Wi plugin Tidy Xml.new JDBCDriverType4
+  
+  noinst_HEADERS = Dk.h libutil.h
+  
+--- 19,25 ----
+  #  
+  #  
+  
+! SUBDIRS = util zlib odbcsdk Dk Thread langfunc Wi plugin Tidy Xml.new
+  
+  noinst_HEADERS = Dk.h libutil.h
+  
diff --git a/gnu/packages/patches/vtk-7-gcc-10-compat.patch b/gnu/packages/patches/vtk-7-gcc-10-compat.patch
new file mode 100644
index 0000000000..50f9f6cca3
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-gcc-10-compat.patch
@@ -0,0 +1,14 @@
+Retrieved from
+https://sources.debian.org/src/vtk7/7.1.1%2Bdfsg2-10.1/debian/patches/.
+
+--- a/CMake/VTKGenerateExportHeader.cmake
++++ b/CMake/VTKGenerateExportHeader.cmake
+@@ -174,7 +174,7 @@
+     execute_process(COMMAND ${CMAKE_C_COMPILER} --version
+       OUTPUT_VARIABLE _gcc_version_info
+       ERROR_VARIABLE _gcc_version_info)
+-    string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*"
++    string(REGEX MATCH "[0-9]*\\.[0-9]\\.[0-9]*"
+       _gcc_version "${_gcc_version_info}")
+     # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the
+     # patch level, handle this here:
diff --git a/gnu/packages/patches/vtk-7-hdf5-compat.patch b/gnu/packages/patches/vtk-7-hdf5-compat.patch
new file mode 100644
index 0000000000..1f3c0c7be4
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-hdf5-compat.patch
@@ -0,0 +1,38 @@
+Description: The H5FD_class_t struct gained an extra member in 1.10
+Bug-Debian: https://bugs.debian.org/846372
+Author: Iain Lane <iain.lane@canonical.com>
+--- a/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfH5Driver.cxx
++++ b/ThirdParty/xdmf2/vtkxdmf2/libsrc/XdmfH5Driver.cxx
+@@ -139,7 +139,11 @@
+ #if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
+ static haddr_t H5FD_dsm_get_eoa(const H5FD_t *_file, H5FD_mem_t type);
+ static herr_t H5FD_dsm_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr);
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=10))
++static haddr_t H5FD_dsm_get_eof(const H5FD_t *_file, H5FD_mem_t type);
++#else
+ static haddr_t H5FD_dsm_get_eof(const H5FD_t *_file);
++#endif
+ #else
+ static haddr_t H5FD_dsm_get_eoa(H5FD_t *_file);
+ static herr_t H5FD_dsm_set_eoa(H5FD_t *_file, haddr_t addr);
+@@ -155,6 +159,9 @@
+     "dsm",                      /*name          */
+     MAXADDR,                    /*maxaddr       */
+     H5F_CLOSE_WEAK,             /*fc_degree     */
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
++    NULL,                       /* terminate    */
++#endif
+     NULL,                       /*sb_size       */
+     NULL,                       /*sb_encode     */
+     NULL,                       /*sb_decode     */
+@@ -687,7 +694,9 @@
+  *-------------------------------------------------------------------------
+  */
+ static haddr_t
+-#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
++#if (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=10))
++H5FD_dsm_get_eof(const H5FD_t *_file, H5FD_mem_t type)
++#elif (H5_VERS_MAJOR>1)||((H5_VERS_MAJOR==1)&&(H5_VERS_MINOR>=8))
+ H5FD_dsm_get_eof(const H5FD_t *_file)
+ #else
+ H5FD_dsm_get_eof(H5FD_t *_file)
diff --git a/gnu/packages/patches/vtk-7-python-compat.patch b/gnu/packages/patches/vtk-7-python-compat.patch
new file mode 100644
index 0000000000..375624e4e2
--- /dev/null
+++ b/gnu/packages/patches/vtk-7-python-compat.patch
@@ -0,0 +1,16 @@
+Author: Gert Wollny <gewo@debian.org>
+Description: Work around compile bug with python 3.7.1
+Debian-Bug: https://bugs.debian.org/914347
+diff --git a/Wrapping/PythonCore/vtkPythonArgs.cxx b/Wrapping/PythonCore/vtkPythonArgs.cxx
+index 1b1e4b9..682f8b8 100644
+--- a/Wrapping/PythonCore/vtkPythonArgs.cxx
++++ b/Wrapping/PythonCore/vtkPythonArgs.cxx
+@@ -102,7 +102,7 @@ bool vtkPythonGetStringValue(PyObject *o, T *&a, const char *exctext)
+   else if (PyUnicode_Check(o))
+   {
+ #if PY_VERSION_HEX >= 0x03030000
+-    a = PyUnicode_AsUTF8(o);
++    a = const_cast<char*>(PyUnicode_AsUTF8(o));
+     return true;
+ #else
+     PyObject *s = _PyUnicode_AsDefaultEncodedString(o, NULL);
diff --git a/gnu/packages/patches/wicd-bitrate-none-fix.patch b/gnu/packages/patches/wicd-bitrate-none-fix.patch
deleted file mode 100644
index 1809b7217d..0000000000
--- a/gnu/packages/patches/wicd-bitrate-none-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix copied from https://bugs.launchpad.net/wicd/+bug/1432423/comments/1
-
---- wicd-1.7.3/curses/netentry_curses.py	1969-12-31 19:00:00.000000000 -0500
-+++ wicd-1.7.3/curses/netentry_curses.py	2015-08-11 23:26:19.999999649 -0400
-@@ -538,11 +538,16 @@
-         self.bitrates = wireless.GetAvailableBitrates()
-         self.bitrates.append('auto')
-         self.bitrate_combo.set_list(self.bitrates)
-+
-+        # bitrate property is sometimes None
-+        chosen_bitrate = wireless.GetWirelessProperty(networkID, 'bitrate')
-+        if chosen_bitrate not in self.bitrates:
-+            chosen_bitrate = 'auto'
-+
-         self.bitrate_combo.set_focus(
--            self.bitrates.index(
--                wireless.GetWirelessProperty(networkID, 'bitrate')
--            )
-+            self.bitrates.index(chosen_bitrate)
-         )
-+
-         self.allow_lower_bitrates_chkbox.set_state(
-             to_bool(self.format_entry(networkID, 'allow_lower_bitrates'))
-         )
diff --git a/gnu/packages/patches/wicd-get-selected-profile-fix.patch b/gnu/packages/patches/wicd-get-selected-profile-fix.patch
deleted file mode 100644
index 3042a87308..0000000000
--- a/gnu/packages/patches/wicd-get-selected-profile-fix.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Fix copied from https://bugs.launchpad.net/wicd/+bug/1421918/comments/2
-
---- wicd-1.7.3/curses/wicd-curses.py	2014-12-21 16:57:33 +0000
-+++ wicd-1.7.3/curses/wicd-curses.py	2015-02-24 23:41:01 +0000
-@@ -532,7 +532,10 @@
-     def get_selected_profile(self):
-         """Get the selected wired profile"""
-         loc = self.get_focus()[1]
--        return self.theList[loc]
-+        if len(self.theList) > loc:
-+            return self.theList[loc]
-+        else:
-+            return self.theList[-1]
- 
- 
- class AdHocDialog(Dialog2):
diff --git a/gnu/packages/patches/wicd-urwid-1.3.patch b/gnu/packages/patches/wicd-urwid-1.3.patch
deleted file mode 100644
index 1dc47f869b..0000000000
--- a/gnu/packages/patches/wicd-urwid-1.3.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Update the wicd-curses client to work with urwid-1.3.  Based on a patch from:
-http://technik.blogbasis.net/wicd-curses-fix-fuer-attributeerror-screen-object-no-attribute-get_input_nonblocking-04-12-2014
-
---- wicd-1.7.3/curses/wicd-curses.py.orig	2014-12-21 14:40:46.000000000 -0500
-+++ wicd-1.7.3/curses/wicd-curses.py	2015-02-05 23:41:17.530901204 -0500
-@@ -1153,9 +1153,10 @@
-         if not ui._started:
-             return False
- 
--        input_data = ui.get_input_nonblocking()
-+        ui.set_input_timeouts(max_wait=0)
-+        input_data = ui.get_input()
-         # Resolve any "alarms" in the waiting
--        self.handle_keys(input_data[1])
-+        self.handle_keys(input_data)
- 
-         # Update the screen
-         canvas = self.frame.render((self.size), True)
diff --git a/gnu/packages/patches/wicd-wpa2-ttls.patch b/gnu/packages/patches/wicd-wpa2-ttls.patch
deleted file mode 100644
index 9d80ee7ed2..0000000000
--- a/gnu/packages/patches/wicd-wpa2-ttls.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Add a template for WPA2-TTLS, which is notably used by Eduroam.
-
---- a/encryption/templates/active
-+++ b/encryption/templates/active
-@@ -4,6 +4,7 @@ wpa-psk
- wpa-psk-hex
- wpa2-leap
- wpa2-peap
-+wpa2-ttls
- wep-hex
- wep-passphrase
- wep-shared
-diff --git a/encryption/templates/wpa2-ttls b/encryption/templates/wpa2-ttls
-new file mode 100644
-index 0000000..4f66a1e
---- /dev/null
-+++ b/encryption/templates/wpa2-ttls
-@@ -0,0 +1,20 @@
-+name = WPA2-TTLS (used notably by Eduroam)
-+author = various contributors
-+version = 1
-+require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
-+protected password *Password
-+-----
-+ctrl_interface=/var/run/wpa_supplicant
-+network={
-+        ssid="$_ESSID"
-+        scan_ssid=$_SCAN
-+        proto=WPA2
-+        key_mgmt=WPA-EAP
-+        group=CCMP TKIP
-+        eap=TTLS
-+        identity="$_IDENTITY"
-+        password="$_PASSWORD"
-+        anonymous_identity="$_ANONYMOUS_IDENTITY"
-+        ca_cert="$_CA_CERT"
-+        phase2="auth=PAP"
-+}
diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm
index 856413d83c..fdbcb8e1e1 100644
--- a/gnu/packages/patchutils.scm
+++ b/gnu/packages/patchutils.scm
@@ -186,35 +186,6 @@ refreshed, and more.")
 'syntax highlighting' for various patch formats.")
     (license gpl2+)))
 
-(define-public patches
-  (let ((commit "ef1b8a7d954b82ed4af3a08fd63d2085d19090ef"))
-    (package
-      (name "patches")
-      (home-page "https://github.com/stefanha/patches")
-      (version (string-append "0.0-1." (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "11rdmhv0l1s8nqb20ywmw2zqizczch2p62qf9apyx5wqgxlnjshk"))
-                (file-name (string-append name "-"version "-checkout"))))
-      (build-system python-build-system)
-      (inputs (list python2-notmuch))
-      (arguments
-       `(#:tests? #f                             ;no "test" target
-         #:python ,python-2))                    ;not compatible with Python 3
-      (synopsis "Patch tracking tool")
-      (description
-       "@code{Patches} is a patch-tracking tool initially written for the QEMU
-project.  It provides commands that build a database of patches from a mailing
-list, and commands that can search that database.  It allows users to track
-the status of a patch, apply patches, and search for patches---all that from
-the command-line or from Emacs via its Notmuch integration.")
-      (license gpl2+))))
-
 (define-public vbindiff
   (package
     (name "vbindiff")
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 1f5c1b3005..a0c4b4dc15 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1046,13 +1046,10 @@ of rich PDF documents, and also creation of charts in a variety of bitmap and
 vector formats.")
     (license license:bsd-3)))
 
-(define-public python2-reportlab
-  (package-with-python2 python-reportlab))
-
 (define-public impressive
   (package
     (name "impressive")
-    (version "0.12.1")
+    (version "0.13.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1060,36 +1057,33 @@ vector formats.")
                     version "/Impressive-" version ".tar.gz"))
               (sha256
                (base32
-                "1r7ihv41awnlnlry1kymb8fka053wdhzibfwcarn78rr3vs338vl"))))
+                "0d1d2jxfl9vmy4swcdz660xd4wx91w1i3n07k522pccapwxig294"))))
     (build-system python-build-system)
-
-    ;; TODO: Add dependency on pdftk.
-    (inputs (list python2-pygame python2-pillow sdl xpdf))
-
     (arguments
-     `(#:python ,python-2
-       #:phases (modify-phases %standard-phases
-                  (delete 'build)
-                  (delete 'configure)
-                  (delete 'check)
-                  (replace 'install
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; There's no 'setup.py' so install things manually.
-                      (let* ((out  (assoc-ref outputs "out"))
-                             (bin  (string-append out "/bin"))
-                             (man1 (string-append out "/share/man/man1"))
-                             (sdl  (assoc-ref inputs "sdl"))
-                             (xpdf (assoc-ref inputs "xpdf")))
-                        (mkdir-p bin)
-                        (copy-file "impressive.py"
-                                   (string-append bin "/impressive"))
-                        (wrap-program (string-append bin "/impressive")
-                          `("LIBRARY_PATH" ":" prefix ;for ctypes
-                            (,(string-append sdl "/lib")))
-                          `("PATH" ":" prefix     ;for pdftoppm
-                            (,(string-append xpdf "/bin"))))
-                        (install-file "impressive.1" man1)
-                        #t))))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'build)
+          (delete 'configure)
+          (delete 'check)
+          (replace 'install
+            (lambda* (#:key inputs #:allow-other-keys)
+              ;; There's no 'setup.py' so install things manually.
+              (let* ((bin  (string-append #$output "/bin"))
+                     (impressive (string-append bin "/impressive"))
+                     (man1 (string-append #$output "/share/man/man1")))
+                (mkdir-p bin)
+                (copy-file "impressive.py" impressive)
+                (chmod impressive #o755)
+                (wrap-program (string-append bin "/impressive")
+                  `("LIBRARY_PATH" ":" prefix ;for ctypes
+                    (,(string-append #$(this-package-input "sdl")
+                                     "/lib")))
+                  `("PATH" ":" prefix   ;for pdftoppm
+                    (,(search-input-file inputs "bin/xpdf"))))
+                (install-file "impressive.1" man1)))))))
+    ;; TODO: Add dependency on pdftk.
+    (inputs (list python-pygame python-pillow sdl xpdf))
     (home-page "http://impressive.sourceforge.net")
     (synopsis "PDF presentation tool with visual effects")
     (description
@@ -1243,31 +1237,6 @@ manipulation in memory.  It is therefore a useful tool for websites that
 manage or manipulate PDFs.")
     (license license:bsd-3)))
 
-(define-public python2-pypdf2
-  (package-with-python2 python-pypdf2))
-
-(define-public python2-pypdf
-  (package
-    (name "python2-pypdf")
-    (version "1.13")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "pyPdf" version))
-              (sha256
-               (base32
-                "0fqfvamir7k41w84c73rghzkiv891gdr17q5iz4hgbf6r71y9v9s"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f  ; no tests
-       #:python ,python-2))
-    (home-page "http://pybrary.net/pyPdf/")
-    (synopsis "Pure Python PDF toolkit")
-    (description "PyPDF2 is a pure Python PDF toolkit.
-
-Note: This module isn't maintained anymore.  For new projects please use
-python-pypdf2 instead.")
-    (license license:bsd-3)))
-
 (define-public pdfarranger
   (package
     (name "pdfarranger")
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 1e2f7cc0d4..d7a8909ab4 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -89,7 +89,7 @@
                     "\"/run/setuid-programs/polkit-agent-helper-1\""))))))
     (build-system gnu-build-system)
     (inputs
-     (list expat linux-pam elogind mozjs-78 nspr))
+     (list expat linux-pam elogind mozjs nspr))
     (propagated-inputs
      (list glib)) ; required by polkit-gobject-1.pc
     (native-inputs
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index e525a55fc6..f66e3469b8 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -285,9 +285,6 @@ language-neutral, platform-neutral extensible mechanism for serializing
 structured data.")
     (license license:expat)))
 
-(define-public python2-protobuf
-  (package-with-python2 python-protobuf))
-
 ;; For tensorflow.
 (define-public python-protobuf-3.6
   (package
@@ -300,7 +297,10 @@ structured data.")
        (uri (pypi-uri "protobuf" version))
        (sha256
         (base32
-         "04bqb12smlckzmgkj6vgmpbr3cby0n6726cmz33bqr7kn1vb728l"))))))
+         "04bqb12smlckzmgkj6vgmpbr3cby0n6726cmz33bqr7kn1vb728l"))))
+    (inputs
+     (cons python-six
+           (package-inputs python-protobuf)))))
 
 (define-public python-proto-plus
   (package
diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm
index fe028b5202..559dc75288 100644
--- a/gnu/packages/pulseaudio.scm
+++ b/gnu/packages/pulseaudio.scm
@@ -367,58 +367,6 @@ sinks.")
 curses-style interfaces.")
     (license l:expat)))
 
-(define-public pulseaudio-dlna
-  ;; The last release was in 2016; use a more recent commit.
-  (let ((commit "4472928dd23f274193f14289f59daec411023ab0")
-        (revision "1"))
-    (package
-      (name "pulseaudio-dlna")
-      (version (git-version "0.5.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/masmu/pulseaudio-dlna")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk"))))
-      (build-system python-build-system)
-      (arguments `(#:python ,python-2))
-      (inputs
-       (list python2-chardet
-             python2-dbus
-             python2-docopt
-             python2-futures
-             python2-pygobject
-             python2-lxml
-             python2-netifaces
-             python2-notify2
-             python2-protobuf
-             python2-psutil
-             python2-requests
-             python2-pyroute2
-             python2-setproctitle
-             python2-zeroconf))
-      (home-page "https://github.com/masmu/pulseaudio-dlna")
-      (synopsis "Stream audio to DLNA/UPnP and Chromecast devices")
-      (description "This lightweight streaming server brings DLNA/UPnP and
-Chromecast support to PulseAudio.  It can stream your current PulseAudio
-playback to different UPnP devices (UPnP Media Renderers, including Sonos
-devices and some Smart TVs) or Chromecasts in your network.  You should also
-install one or more of the following packages alongside pulseaudio-dlna:
-
-@itemize
-@item ffmpeg - transcoding support for multiple codecs
-@item flac - FLAC transcoding support
-@item lame - MP3 transcoding support
-@item opus-tools - Opus transcoding support
-@item sox - WAV transcoding support
-@item vorbis-tools - Vorbis transcoding support
-@end itemize")
-      (license l:gpl3+))))
-
 (define-public pamixer
   (package
     (name "pamixer")
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index eb291c2c86..d85463ebab 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
 ;;;
@@ -68,9 +68,6 @@ scripts to their final locations) at any later time.  Wheel files can be
 installed with a newer @code{pip} or with wheel's own command line utility.")
     (license license:expat)))
 
-(define-public python2-wheel
-  (package-with-python2 python-wheel))
-
 ;;; XXX: Not really at home, but this seems the best place to prevent circular
 ;;; module dependencies.
 (define-public python-toml
@@ -165,9 +162,6 @@ Six supports every Python version since 2.5.  It is contained in only one
 Python file, so it can be easily copied into your project.")
     (license license:x11)))
 
-(define-public python2-six-bootstrap
-  (package-with-python2 python-six-bootstrap))
-
 (define-public python-tomli
   (package
     (name "python-tomli")
@@ -267,8 +261,7 @@ Python file, so it can be easily copied into your project.")
 executing simple grammars, vs. the traditional lex/yacc approach, or the use
 of regular expressions.  The pyparsing module provides a library of classes
 that client code uses to construct the grammar directly in Python code.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pyparsing))))))
+    (license license:expat)))
 
 ;;; This is the last release compatible with Python 2.
 (define-public python-pyparsing-2.4.7
@@ -282,9 +275,6 @@ that client code uses to construct the grammar directly in Python code.")
        (sha256
         (base32 "1hgc8qrbq1ymxbwfbjghv01fm3fbpjwpjwi0bcailxxzhf3yq0y2"))))))
 
-(define-public python2-pyparsing
-  (package-with-python2 (strip-python2-variant python-pyparsing-2.4.7)))
-
 (define-public python-packaging-bootstrap
   (package
     (name "python-packaging-bootstrap")
@@ -309,24 +299,7 @@ information.")
     ;; *either* of the licenses found in LICENSE.APACHE or LICENSE.BSD.
     ;; Contributions to this software is made under the terms of *both* these
     ;; licenses.
-    (license (list license:asl2.0 license:bsd-2))
-    (properties `((python2-variant . ,(delay python2-packaging-bootstrap))))))
-
-(define-public python2-packaging-bootstrap
-  (let ((base (package-with-python2
-               (strip-python2-variant python-packaging-bootstrap))))
-    (package/inherit base
-      (version "20.0")                  ;last version with Python 2 support
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "packaging" version))
-         ;; XXX: The URL in the patch file is wrong, it should be
-         ;; <https://github.com/pypa/packaging/pull/256>.
-         (patches (search-patches "python-packaging-test-arch.patch"))
-         (sha256
-          (base32
-           "1y2ip3a4ykkpgnwgn85j6hkspcl0cg3mzms97f40mk57vwqq67gy")))))))
+    (license (list license:asl2.0 license:bsd-2))))
 
 ;;; The name 'python-pypa-build' is chosen rather than 'python-build' to avoid
 ;;; a name clash with python-build from (guix build-system python).
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index d788935caa..0803d6fed2 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -33,9 +33,14 @@
 
 (define-module (gnu packages python-check)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages docker)
   #:use-module (gnu packages django)
   #:use-module (gnu packages openstack)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
@@ -2102,6 +2107,83 @@ The purpose of this package is to provide an easy way to test asynchronous
 HTTP requests.")
     (license license:expat)))
 
+(define-public python-avocado-framework
+  (package
+    (name "python-avocado-framework")
+    (version "96.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "avocado-framework" version))
+       (sha256
+        (base32 "0zhz6423p0b5gqx2mvg7dmq8m9gbsay7wqjdwzirlwcg2v3rcz0m"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      ;; The test suite hangs, due to a serious bug in Python/Avocado (see:
+      ;; https://github.com/avocado-framework/avocado/issues/4935).
+      #:tests? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-paths
+            (lambda* (#:key native-inputs inputs #:allow-other-keys)
+              ;; These are runtime dependencies (inputs).
+              (substitute* "avocado/plugins/spawners/podman.py"
+                (("default='/usr/bin/podman'")
+                 "default='podman'"))
+              (substitute* "avocado/utils/podman.py"
+                (("\"/usr/bin/env\", \"python3\"")
+                 (format #f "~s" (search-input-file inputs "bin/python"))))
+              (substitute* "avocado/utils/memory.py"
+                (("\"sync\"")
+                 (format #f "~s" (search-input-file inputs "bin/sync")))
+                (("/bin/sh")
+                 (search-input-file inputs "bin/sh")))
+              ;; Batch process the tests modules with less care; if something
+              ;; is wrong, the test suite will fail.  These are tests
+              ;; dependencies (native inputs).
+              (substitute* (find-files "selftests" "\\.py$")
+                (("#!/usr/bin/env")
+                 (string-append "#!" (search-input-file (or native-inputs inputs)
+                                                        "bin/env")))
+                (("/bin/(false|true|sh|sleep|sudo)" _ name)
+                 (search-input-file (or native-inputs inputs)
+                                    (string-append "bin/" name))))))
+          (add-after 'unpack 'remove-broken-entrypoints
+            ;; The avocado-external-runner entry point fails to load, the
+            ;; 'scripts' top level package not being found (see:
+            ;; https://github.com/avocado-framework/avocado/issues/5370).
+            (lambda _
+              (substitute* "setup.py"
+                (("'avocado-external-runner = scripts.external_runner:main'.*")
+                 ""))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (setenv "HOME" "/tmp")
+                (setenv "PYTHONPATH" (getcwd))
+                (invoke "./selftests/check.py" "--skip" "static-checks")))))))
+    (native-inputs (list bash-minimal coreutils-minimal perl sudo))
+    (inputs (list bash-minimal coreutils-minimal))
+    (home-page "https://avocado-framework.github.io/")
+    (synopsis "Tools and libraries to help with automated testing")
+    (description "Avocado is a set of tools and libraries to help with
+automated testing, i.e. a test framework.  Native tests are written in Python
+and they follow the unittest pattern, but any executable can serve as a
+test.  The following output formats are supported:
+@table @asis
+@item xUnit
+an XML format that contains test results in a structured form, and are used by
+other test automation projects, such as Jenkins.
+@item JSON
+a widely used data exchange format.  The JSON Avocado plugin outputs job
+information, similarly to the xunit output plugin.
+@item TAP
+Provides the basic TAP (Test Anything Protocol) results.  Unlike most existing
+Avocado machine readable outputs this one is streamlined (per test results).
+@end table")
+    (license license:gpl2)))            ;some files are under GPLv2 only
+
 (define-public python-parameterizedtestcase
   (package
     (name "python-parameterizedtestcase")
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index e7f008e112..edfa974a71 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -227,9 +227,6 @@ the LZO library from your Python scripts thereby compressing ordinary
 Python strings.")
     (license license:gpl2+)))
 
-(define-public python2-lzo
-  (package-with-python2 python-lzo))
-
 (define-public python-lz4
   (package
     (name "python-lz4")
@@ -260,9 +257,6 @@ by Yann Collet.  The project contains bindings for the LZ4 block format and
 the LZ4 frame format.")
     (license license:bsd-3)))
 
-(define-public python2-lz4
-  (package-with-python2 python-lz4))
-
 (define-public python-lzstring
   (package
     (name "python-lzstring")
@@ -282,9 +276,6 @@ the LZ4 frame format.")
     (description "Lz-string is a string compressor library for Python.")
     (license license:expat)))
 
-(define-public python2-lzstring
-  (package-with-python2 python-lzstring))
-
 (define-public bitshuffle
   (package
     (name "bitshuffle")
@@ -392,31 +383,8 @@ install: libbitshuffle.so
     (description
      "This package provides a @code{pathlib}-compatible @code{Zipfile} object
 wrapper.  It provides a backport of the @code{Path} object.")
-    (properties `((python2-variant . ,(delay python2-zipp))))
     (license license:expat)))
 
-(define-public python2-zipp
-  (let ((base (package-with-python2 (strip-python2-variant python-zipp))))
-    (package/inherit
-     base
-     (native-inputs
-      `(("python-contextlib2" ,python2-contextlib2)
-        ("python-pathlib2" ,python2-pathlib2)
-        ("python-unittest2" ,python2-unittest2)
-        ,@(package-native-inputs base))))))
-
-;; This package is used to bootstrap pytest, via importlib-metadata.
-(define-public python2-zipp-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-zipp
-    (name "python2-zipp-bootstrap")
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-zipp)))
-    (native-inputs
-     `(("python-setuptools-scm" ,python2-setuptools-scm))))))
-
 (define-public python-zopfli
   (package
     (name "python-zopfli")
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 6427dc7868..84e9102bee 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -261,9 +261,6 @@ messages, and verify the signatures.  The keys and signatures are very short,
 making them easy to handle and incorporate into other protocols.")
     (license license:expat)))
 
-(define-public python2-ecdsa
-  (package-with-python2 python-ecdsa))
-
 ;;; Pycrypto is abandoned upstream:
 ;;;
 ;;; https://github.com/dlitz/pycrypto/issues/173
@@ -299,15 +296,6 @@ and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal,
 etc.).  The package is structured to make adding new modules easy.")
     (license license:public-domain)))
 
-(define-public python2-pycrypto
-  (let ((pycrypto (package-with-python2 python-pycrypto)))
-    (package/inherit pycrypto
-      (inputs
-       `(("python" ,python-2)
-         ,@(alist-delete
-            "python"
-            (package-inputs pycrypto)))))))
-
 (define-public python-kerberos
   (package
     (name "python-kerberos")
@@ -449,9 +437,6 @@ for example, for recording or replaying web content.")
 is used by the Requests library to verify HTTPS requests.")
     (license license:asl2.0)))
 
-(define-public python2-certifi
-  (package-with-python2 python-certifi))
-
 (define-public python-cryptography-vectors-next
   (package
     (name "python-cryptography-vectors")
@@ -599,8 +584,7 @@ library” for Python.  The package includes both high level recipes, and low
 level interfaces to common cryptographic algorithms such as symmetric ciphers,
 message digests and key derivation functions.")
     ;; Distributed under either BSD-3 or ASL2.0
-    (license (list license:bsd-3 license:asl2.0))
-    (properties `((python2-variant . ,(delay python2-cryptography))))))
+    (license (list license:bsd-3 license:asl2.0))))
 
 (define-public python-cryptography
   (package
@@ -626,49 +610,6 @@ message digests and key derivation functions.")
            python-pytest
            python-setuptools-rust))))
 
-(define-public python2-cryptography-vectors
-  (package
-    (inherit python-cryptography-vectors)
-    (name "python2-cryptography-vectors")
-    (version "3.3.2")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "cryptography_vectors" version))
-              (sha256
-               (base32
-                "1yhaps0f3h2yjb6lmz953z1l1d84y9swk4k3gj9nqyk4vbx5m7cc"))))
-    (arguments
-     (list #:python python-2))))
-
-(define-public python2-cryptography
-  (let ((crypto (package-with-python2
-                 (strip-python2-variant python-cryptography))))
-    (package
-      (inherit crypto)
-      (version "3.3.2")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "cryptography" version))
-                (sha256
-                 (base32
-                  "1vcvw4lkw1spiq322pm1256kail8nck6bbgpdxx3pqa905wd6q2s"))))
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           ;; The sanity-check attempts attempts to import the non-existent
-           ;; modules "_openssl" and "_padding".
-           (delete 'sanity-check))))
-      (native-inputs
-       (list python2-cryptography-vectors python2-hypothesis python2-pretend
-             python2-pytz python2-pytest))
-      (inputs (list openssl))
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs crypto)
-         (prepend python2-ipaddress
-                  python2-backport-ssl-match-hostname
-                  python2-enum34))))))
-
 ;; This is the last version which is compatable with python-cryptography < 35.
 (define-public python-pyopenssl
   (package
@@ -718,9 +659,6 @@ message digests and key derivation functions.")
 library.")
     (license license:asl2.0)))
 
-(define-public python2-pyopenssl
-  (package-with-python2 python-pyopenssl))
-
 (define-public python-ed25519
   (package
     (name "python-ed25519")
@@ -738,9 +676,6 @@ library.")
     (description "Ed25519 public-key signatures")
     (license license:expat)))
 
-(define-public python2-ed25519
-  (package-with-python2 python-ed25519))
-
 (define-public python-axolotl-curve25519
   (package
     (name "python-axolotl-curve25519")
@@ -762,9 +697,6 @@ python-axolotl.")
     (license (list license:gpl3    ; Most files
                    license:bsd-3)))) ; curve/curve25519-donna.c
 
-(define-public python2-axolotl-curve25519
-  (package-with-python2 python-axolotl-curve25519))
-
 (define-public python-axolotl
   (package
     (name "python-axolotl")
@@ -795,29 +727,6 @@ is a ratcheting forward secrecy protocol that works in synchronous and
 asynchronous messaging environments.")
     (license license:gpl3)))
 
-(define-public python2-axolotl
-  (package-with-python2 python-axolotl))
-
-;; SlowAES isn't compatible with Python 3.
-(define-public python2-slowaes
-  (package
-    (name "python2-slowaes")
-    (version "0.1a1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "slowaes" version))
-       (sha256
-        (base32
-         "02dzajm83a7lqgxf6r3hgj64wfmcxz8gs4nvgxpvj5n19kjqlrc3"))))
-    (build-system python-build-system)
-    (arguments `(#:python ,python-2))
-    (home-page "http://code.google.com/p/slowaes/")
-    (synopsis "Implementation of AES in Python")
-    (description "This package contains an implementation of AES in Python.
-This implementation is slow (hence the project name) but still useful when
-faster ones are not available.")
-    (license license:asl2.0)))
 
 (define-public python-pyaes
   (package
@@ -838,9 +747,6 @@ AES block cipher algorithm and the common modes of operation (CBC, CFB, CTR,
 ECB and OFB).")
     (license license:expat)))
 
-(define-public python2-pyaes
-  (package-with-python2 python-pyaes))
-
 (define-public python-asn1crypto
   (package
     (name "python-asn1crypto")
@@ -868,9 +774,6 @@ for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7,
 PKCS#8, PKCS#12, PKCS#5, X.509 and TSP.")
     (license license:expat)))
 
-(define-public python2-asn1crypto
-  (package-with-python2 python-asn1crypto))
-
 (define-public python-pynacl
   (package
     (name "python-pynacl")
@@ -965,9 +868,6 @@ of improving usability, security and speed.")
 Python.")
     (license license:asl2.0)))
 
-(define-public python2-ecpy
-  (package-with-python2 python-ecpy))
-
 (define-public python-josepy
   (package
     (name "python-josepy")
@@ -1000,9 +900,6 @@ Python.")
 protocol (Javascript Object Signing and Encryption).")
     (license license:asl2.0)))
 
-(define-public python2-josepy
-  (package-with-python2 python-josepy))
-
 (define pycryptodome-unbundle-tomcrypt-snippet
   #~(begin
       ;; Unbundle libtomcrypt.
@@ -1075,9 +972,6 @@ PyCryptodome variants, the other being python-pycryptodomex.")
     (license (list license:bsd-2
                    license:public-domain)))) ; code inherited from PyCrypto
 
-(define-public python2-pycryptodome
-  (package-with-python2 python-pycryptodome))
-
 (define-public python-pycryptodomex
   (package (inherit python-pycryptodome)
     (name "python-pycryptodomex")
@@ -1152,16 +1046,8 @@ extensions to Python's httplib, urllib, and xmlrpclib; unforgeable HMAC'ing
 AuthCookies for web session management; FTP/TLS client and server; S/MIME;
 M2Crypto can also be used to provide TLS for Twisted.  Smartcards supported
 through the Engine interface.")
-    (properties `((python2-variant . ,(delay python2-m2crypto))))
     (license license:expat)))
 
-(define-public python2-m2crypto
-  (let ((m2crypto (package-with-python2
-                   (strip-python2-variant python-m2crypto))))
-    (package/inherit m2crypto
-             (propagated-inputs
-              `(("python2-typing" ,python2-typing))))))
-
 (define-public python-pykeepass
   (package
     (name "python-pykeepass")
@@ -1344,9 +1230,6 @@ service_identity implements RFC 6125 fully and plans to add other
 relevant RFCs too.")
     (license license:expat)))
 
-(define-public python2-service-identity
-  (package-with-python2 python-service-identity))
-
 (define-public python-hkdf
   (package
     (name "python-hkdf")
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 6bc726fc83..855fe9a72c 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
 ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
+;;; Copyright © 2022 Wiktor Żelazny <wzelazny@vurv.cz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -153,63 +154,6 @@ atlas_libs = openblas~%"  #$(this-package-input "openblas"))))))
     (description "The SciPy library is one of the core packages that make up
 the SciPy stack.  It provides many user-friendly and efficient numerical
 routines such as routines for numerical integration and optimization.")
-    (properties `((python2-variant . ,(delay python2-scipy))))
-    (license license:bsd-3)))
-
-;; Version 1.2.2 is the last version to support Python 2
-(define-public python2-scipy
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-scipy)))
-    (version "1.2.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "scipy" version))
-       (sha256
-        (base32
-         "1cgvgin8fvckv96hjh3ikmwkra5rif51bdb75ifzf7xbil5iwcx4"))))
-    (native-inputs
-     (list python2-cython
-           python2-pytest
-           python2-sphinx
-           python2-numpydoc
-           gfortran-7
-           gcc-7
-           perl
-           which))))
-
-(define-public python2-weave
-  (package
-    (name "python2-weave")
-    (version "0.16.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "weave" version))
-       (sha256
-        (base32 "0jnm3584mfichgwgrd1gk5i42ll9c08nkw9716n947n4338f6ghs"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "nosetests" "-v"
-                     "--exclude"
-                     "test_(user|incorrect_ownership|char_fail|obj_fail)"))))))
-    (propagated-inputs
-     (list python2-numpy))
-    (native-inputs
-     (list python2-nose))
-    (home-page "https://www.scipy.org/")
-    (synopsis "Tools for including C/C++ code within Python code")
-    (description "Weave is the stand-alone version of the obsolete Scipy
-submodule @code{scipy.weave}.  It is Python 2.x only, and is provided for
-users that need new versions of Scipy but have existing code that still
-depends on @code{scipy.weave}.  For new code, users are recommended to use
-Cython.")
     (license license:bsd-3)))
 
 (define-public python-scikit-fuzzy
@@ -488,106 +432,8 @@ structures designed to make working with structured (tabular,
 multidimensional, potentially heterogeneous) and time series data both easy
 and intuitive.  It aims to be the fundamental high-level building block for
 doing practical, real world data analysis in Python.")
-    (properties `((python2-variant . ,(delay python2-pandas))))
     (license license:bsd-3)))
 
-;; Pandas 0.24.x are the last versions that support Python 2.
-(define-public python2-pandas
-  (let ((pandas (package-with-python2
-                 (strip-python2-variant python-pandas))))
-    (package
-      (inherit pandas)
-      (version "0.24.2")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "pandas" version))
-                (sha256
-                 (base32
-                  "18imlm8xbhcbwy4wa957a1fkamrcb0z988z006jpfda3ki09z4ag"))
-                (modules '((guix build utils)))
-                (snippet
-                 '(begin
-                    ;; Adjust for renamed error message in Python 2.7.17.  Taken
-                    ;; from <https://github.com/pandas-dev/pandas/pull/29294>.
-                    (substitute* "pandas/io/parsers.py"
-                      (("if 'NULL byte' in msg:")
-                       "if 'NULL byte' in msg or 'line contains NUL' in msg:"))))))
-      (arguments
-       `(#:modules ((guix build utils)
-                    (guix build python-build-system)
-                    (ice-9 ftw)
-                    (srfi srfi-26))
-         #:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-which
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((which (assoc-ref inputs "which")))
-                 (substitute* "pandas/io/clipboard/__init__.py"
-                   (("^CHECK_CMD = .*")
-                    (string-append "CHECK_CMD = \"" which "\"\n"))))))
-           (replace 'check
-             (lambda _
-               (let ((build-directory
-                      (string-append
-                       (getcwd) "/build/"
-                       (car (scandir "build"
-                                     (cut string-prefix? "lib." <>))))))
-                 ;; Disable the "strict data files" option which causes
-                 ;; the build to error out if required data files are
-                 ;; not available (as is the case with PyPI archives).
-                 (substitute* "setup.cfg"
-                   (("addopts = --strict-data-files") "addopts = "))
-                 (with-directory-excursion build-directory
-                   ;; Delete tests that require "moto" which is not yet
-                   ;; in Guix.
-                   (for-each delete-file
-                             '("pandas/tests/io/conftest.py"
-                               "pandas/tests/io/json/test_compression.py"
-                               "pandas/tests/io/parser/test_network.py"
-                               "pandas/tests/io/test_parquet.py"))
-                   (invoke "pytest" "-vv" "pandas" "--skip-slow"
-                           "--skip-network" "-k"
-                           ;; XXX: Due to the deleted tests above.
-                           "not test_read_s3_jsonl"))))))))
-      (propagated-inputs
-       (list python2-numpy python2-openpyxl python2-pytz python2-dateutil
-             python2-xlrd))
-      (inputs
-       (list which))
-      (native-inputs
-       (list python2-cython
-             python2-beautifulsoup4
-             python2-lxml
-             python2-html5lib
-             python2-nose
-             python2-pytest
-             python2-pytest-mock)))))
-
-(define-public python2-pyflow
-  (package
-    (name "python2-pyflow")
-    (version "1.1.20")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://github.com/Illumina/pyflow/releases/download/v"
-                    version "/pyflow-" version ".tar.gz"))
-              (sha256
-               (base32
-                "1bvfvviw58cndyn862qnv9nj3d9cd3a0dm4vc4sd9vwq8a6z1riv"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f ; There is no test suite.
-       ;; There is no official Python 3-compatible version and upstream is
-       ;; dead. See https://github.com/Illumina/pyflow/issues/20.
-       #:python ,python-2))
-    (home-page "https://illumina.github.io/pyflow/")
-    (synopsis "Tool to manage tasks in a task dependency graph")
-    (description "This package is a Python module to manage tasks in the
-context of a task dependency graph.  It has some similarities to make.")
-    (license license:bsd-2)))
-
 (define-public python-pythran
   (package
     (name "python-pythran")
@@ -1015,7 +861,7 @@ and more
 (define-public python-distributed
   (package
     (name "python-distributed")
-    (version "2021.11.2")
+    (version "2022.05.2")
     (source
      (origin
        ;; The test files are not included in the archive on pypi
@@ -1026,7 +872,7 @@ and more
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1p20cbyabzl7rs8y3ydzszsskh4kw088m252ghgairhs0p2f95hl"))
+         "009jrlk7kmazrd3nkl217cl3x5ddg7kw9mqdgq1z9knv5h1rm8qv"))
        ;; Delete bundled copy of python-versioneer.
        (snippet '(delete-file "versioneer.py"))))
     (build-system python-build-system)
@@ -1052,23 +898,139 @@ and more
                (("\"dask-worker\"")
                 (format #false "\"~a/bin/dask-worker\""
                         (assoc-ref outputs "out"))))))
+         ;; ERROR: distributed==2022.5.2
+         ;; ContextualVersionConflict (locket 0.2.0
+         ;; (/gnu/store/...-python-locket-0.2.0/lib/python3.9/site-packages),
+         ;; Requirement.parse('locket>=1.0.0'), {'distributed'})
+         (delete 'sanity-check)
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (setenv "DISABLE_IPV6" "1")
-               (invoke "pytest" "-vv" "distributed"
-                       "-m" "not slow and not gpu and not ipython and not avoid_ci"
+               ;; The integration tests are all problematic to some
+               ;; degree.  They either require network access or some
+               ;; other setup.  We only run the tests in
+               ;; distributed/tests.
+               (for-each (lambda (dir)
+                           (delete-file-recursively
+                            (string-append "distributed/" dir "/tests")))
+                         (list "cli" "comm" "dashboard" "deploy" "diagnostics"
+                               "http" "http/scheduler" "http/worker"
+                               "protocol" "shuffle"))
+               (invoke "python" "-m" "pytest" "-vv" "distributed"
+                       "-m"
+                       (string-append "not slow"
+                                      " and not flaky"
+                                      " and not gpu"
+                                      " and not ipython"
+                                      " and not avoid_ci")
                        "-k"
-                       ;; TODO: These tests fail for unknown reasons:
                        (string-append
-                        ;; TimeoutExpired
-                        "not test_text"
-                        ;; AssertionError
-                        " and not test_version_option"
-                        ;; "The 'distributed' distribution was not found"
-                        " and not test_register_backend_entrypoint"
-                        ;; "AttributeError: module 'distributed.dashboard' has no attribute 'scheduler'"
-                        " and not test_get_client_functions_spawn_clusters"))))))))
+                        ;; These fail because they require network access,
+                        ;; specifically access to 8.8.8.8.
+                        "not "
+                        (string-join
+                         (list
+                          "TestClientSecurityLoader.test_security_loader"
+                          "test_BatchedSend"
+                          "test_allowed_failures_config"
+                          "test_async_context_manager"
+                          "test_async_with"
+                          "test_client_repr_closed_sync"
+                          "test_close_closed"
+                          "test_close_fast_without_active_handlers"
+                          "test_close_grace_period_for_handlers"
+                          "test_close_loop_sync"
+                          "test_close_properly"
+                          "test_close_twice"
+                          "test_compression"
+                          "test_connection_pool"
+                          "test_connection_pool_close_while_connecting"
+                          "test_connection_pool_detects_remote_close"
+                          "test_connection_pool_outside_cancellation"
+                          "test_connection_pool_remove"
+                          "test_connection_pool_respects_limit"
+                          "test_connection_pool_tls"
+                          "test_counters"
+                          "test_dashboard_host"
+                          "test_dashboard_link_cluster"
+                          "test_dashboard_link_inproc"
+                          "test_deserialize_error"
+                          "test_dont_override_default_get"
+                          "test_errors"
+                          "test_fail_to_pickle_target_2"
+                          "test_file_descriptors_dont_leak"
+                          "test_finished"
+                          "test_get_client_functions_spawn_clusters"
+                          "test_host_uses_scheduler_protocol"
+                          "test_identity_inproc"
+                          "test_identity_tcp"
+                          "test_large_packets_inproc"
+                          "test_locked_comm_drop_in_replacement"
+                          "test_locked_comm_intercept_read"
+                          "test_locked_comm_intercept_write"
+                          "test_multiple_listeners"
+                          "test_no_dangling_asyncio_tasks"
+                          "test_plugin_exception"
+                          "test_plugin_internal_exception"
+                          "test_plugin_multiple_exceptions"
+                          "test_ports"
+                          "test_preload_import_time"
+                          "test_queue_in_task"
+                          "test_quiet_client_close"
+                          "test_rebalance_sync"
+                          "test_repr_localcluster"
+                          "test_require_encryption"
+                          "test_rpc_default"
+                          "test_rpc_inproc"
+                          "test_rpc_message_lifetime_default"
+                          "test_rpc_message_lifetime_inproc"
+                          "test_rpc_message_lifetime_tcp"
+                          "test_rpc_serialization"
+                          "test_rpc_tcp"
+                          "test_rpc_tls"
+                          "test_rpc_with_many_connections_inproc"
+                          "test_rpc_with_many_connections_tcp"
+                          "test_scheduler_file"
+                          "test_security_dict_input_no_security"
+                          "test_security_loader"
+                          "test_security_loader_ignored_if_explicit_security_provided"
+                          "test_security_loader_ignored_if_returns_none"
+                          "test_send_after_stream_start"
+                          "test_send_before_close"
+                          "test_send_before_start"
+                          "test_send_recv_args"
+                          "test_send_recv_cancelled"
+                          "test_sending_traffic_jam"
+                          "test_serializers"
+                          "test_server"
+                          "test_server_comms_mark_active_handlers"
+                          "test_shutdown"
+                          "test_shutdown_localcluster"
+                          "test_teardown_failure_doesnt_crash_scheduler"
+                          "test_threadpoolworkers_pick_correct_ioloop"
+                          "test_tls_listen_connect"
+                          "test_tls_temporary_credentials_functional"
+                          "test_variable_in_task"
+                          "test_worker_preload_text"
+                          "test_worker_uses_same_host_as_nanny")
+                         " and not ")
+
+                        ;; These fail because it doesn't find dask[distributed]
+                        " and not test_quiet_close_process"
+
+                        ;; This one fails because of a silly assert failure:
+                        ;; '2022.05.2' == '2022.5.2'
+                        " and not test_version"
+                        " and not test_git_revision"
+
+                        ;; Recursion stack failure.  No idea what they
+                        ;; expected to happen.
+                        " and not test_stack_overflow"
+
+                        ;; These tests are rather flaky
+                        " and not test_quiet_quit_when_cluster_leaves"
+                        " and not multiple_clients_restart"))))))))
     (propagated-inputs
      (list python-click
            python-cloudpickle
@@ -1082,9 +1044,13 @@ and more
            python-tblib
            python-toolz
            python-tornado-6
+           python-urllib3
            python-zict))
     (native-inputs
-     (list python-pytest python-versioneer))
+     (list python-pytest
+           python-pytest-timeout
+           python-flaky
+           python-versioneer))
     (home-page "https://distributed.dask.org")
     (synopsis "Distributed scheduler for Dask")
     (description "Dask.distributed is a lightweight library for distributed
@@ -1291,3 +1257,86 @@ build applications with traitlets in combination with the scipy stack.")
     (description "This package is an implementation of the Promises/A+
 specification and test suite in Python.")
     (license license:expat)))
+
+(define-public python-climin
+  (package
+    (name "python-climin")
+    (version "0.1a1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "climin" version))
+              (sha256
+               (base32
+                "1wpjisd5zzi5yvjff02hnxn84822k8sdxvvd33lil2x79wdb36rv"))))
+    (build-system python-build-system)
+    (native-inputs (list python-nose))
+    (propagated-inputs (list python-numpydoc python-numpy python-scipy))
+    (home-page "https://github.com/BRML/climin")
+    (synopsis "Optimization for machine learning")
+    (description
+     "@command{climin} is a Python package for optimization,
+heavily biased to machine learning scenarios.  It works on top of
+@command{numpy} and (partially) @command{gnumpy}.")
+    (license license:bsd-3)))
+
+(define-public python-paramz
+  (package
+    (name "python-paramz")
+    (version "0.9.5")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "paramz" version))
+              (sha256
+               (base32
+                "16hbh97kj6b1c2gw22rqnr3w3nqkszh9gj8vgx738gq81wf225q9"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-decorator python-numpy python-scipy
+                             python-six))
+    (home-page "https://github.com/sods/paramz")
+    (synopsis "The Parameterization Framework")
+    (description
+     "@command{paramz} is a lightweight parameterization framework
+for parameterized model creation and handling.  Its features include:
+
+@itemize
+ @item Easy model creation with parameters.
+ @item Fast optimized access of parameters for optimization routines.
+ @item Memory efficient storage of parameters (only one copy in memory).
+ @item Renaming of parameters.
+ @item Intuitive printing of models and parameters.
+ @item Gradient saving directly inside parameters.
+ @item Gradient checking of parameters.
+ @item Optimization of parameters.
+ @item Jupyter notebook integration.
+ @item Efficient storage of models, for reloading.
+ @item Efficient caching.
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public python-gpy
+  (package
+    (name "python-gpy")
+    (version "1.10.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "GPy" version))
+              (sha256
+               (base32
+                "1yx65ajrmqp02ykclhlb0n8s3bx5r0xj075swwwigiqaippr7dx2"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-before 'check 'remove-plotting-tests
+                    ;; These fail
+                    (lambda _
+                      (delete-file "GPy/testing/plotting_tests.py"))))))
+    (native-inputs (list python-cython python-nose python-climin))
+    (propagated-inputs (list python-numpy python-paramz python-scipy
+                             python-six))
+    (home-page "https://sheffieldml.github.io/GPy/")
+    (synopsis "The Gaussian Process Toolbox")
+    (description
+     "@command{GPy} is a Gaussian Process (GP) framework written in
+Python, from the Sheffield machine learning group.  GPy implements a range of
+machine learning algorithms based on GPs.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index df9b9bcf22..5c1baa0ce6 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -97,6 +97,7 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages rdf)
   #:use-module (gnu packages rpc)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
@@ -108,6 +109,78 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (srfi srfi-1))
 
+(define-public python-lazr-restfulclient
+  (package
+    (name "python-lazr-restfulclient")
+    (version "0.14.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "lazr.restfulclient" version))
+       (sha256
+        (base32 "11yhlqmdf2cqbdfzn8gdmzvmcivh4fflr18zf412sflvfjrdc3xz"))))
+    (build-system python-build-system)
+    ;; Disable the test suite to avoid the lazr.authentication requirement,
+    ;; which requires the ancient 'oauth', a Python 2 only library.
+    (arguments (list #:tests? #f))
+    (propagated-inputs
+     (list python-distro
+           python-httplib2
+           python-oauthlib
+           python-wadllib))
+    (home-page "https://launchpad.net/lazr.restfulclient")
+    (synopsis "Web client Python library extending wadlib")
+    (description "This package provides a programmable client library that
+adds functionality on top of @code{wadlib}.")
+    (license license:lgpl3+)))
+
+(define-public python-launchpadlib
+  (package
+    (name "python-launchpadlib")
+    (version "1.10.16")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "launchpadlib" version))
+       (sha256
+        (base32 "106aixwchwyb100wlf4cnj1vgsi2d7x40ps8xv8az27r6qwv3x0d"))))
+    (build-system python-build-system)
+    (arguments
+     (list #:phases #~(modify-phases %standard-phases
+                        (add-before 'check 'set-home
+                          (lambda _
+                            ;; Tests require a writable home.
+                            (setenv "HOME" "/tmp"))))))
+    (propagated-inputs
+     (list python-httplib2
+           python-keyring
+           python-lazr-restfulclient
+           python-lazr-uri))
+    (native-inputs (list python-mock python-testresources python-wadllib))
+    (home-page "https://help.launchpad.net/API/launchpadlib")
+    (synopsis "Python client library for Launchpad's web service")
+    (description "@code{launchpadlib} is a Python library that allows
+scripting Launchpad via its the web service API.")
+    (license license:lgpl3+)))
+
+(define-public python-lazr-uri
+  (package
+    (name "python-lazr-uri")
+    (version "1.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "lazr.uri" version))
+       (sha256
+        (base32 "0r44rw0bj5mayhqwfwj1dnrjgzj1lrh7ishiddd1vygnrczqa9jh"))))
+    (build-system python-build-system)
+    (native-inputs (list python-zope-testrunner))
+    (home-page "https://launchpad.net/lazr.uri")
+    (synopsis "Python URI manipulation library")
+    (description "This Python package provides a self-contained, easily
+reusable library for parsing, manipulating, and generating URIs.")
+    (license license:lgpl3)))
+
 (define-public python-prawcore
   (package
     (name "python-prawcore")
@@ -810,9 +883,6 @@ over a different origin than that of the web application.")
 other HTTP libraries.")
     (license license:expat)))
 
-(define-public python2-httplib2
-  (package-with-python2 python-httplib2))
-
 (define-public httpie
   (package
     (name "httpie")
@@ -1159,9 +1229,6 @@ SockJS provides a low-latency, full-duplex, cross-domain communication channel
 between a web browser and web server.")
     (license license:expat)))
 
-(define-public python2-sockjs-tornado
-  (package-with-python2 python-sockjs-tornado))
-
 (define-public python-flask-assets
   (package
     (name "python-flask-assets")
@@ -1326,25 +1393,6 @@ storage.")
 and written in Python.")
     (license license:expat)))
 
-(define-public python2-html5lib
-  (package-with-python2 python-html5lib))
-
-;; Needed for python-bleach, a dependency of python-notebook
-(define-public python-html5lib-0.9
-  (package
-    (inherit python-html5lib)
-    (version "0.999")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "html5lib" version))
-       (sha256
-        (base32
-         "17n4zfsj6ynmbwdwviywmj8r6nzr3xvfx2zs0xhndmvm51z7z263"))))))
-
-(define-public python2-html5lib-0.9
-  (package-with-python2 python-html5lib-0.9))
-
 (define-public python-html5-parser
   (package
     (name "python-html5-parser")
@@ -1438,9 +1486,6 @@ high-speed transfers via libcurl and frequently outperforms alternatives.")
     ;; under the terms of LGPLv2.1+ or Expat.
     (license (list license:lgpl2.1+ license:expat))))
 
-(define-public python2-pycurl
-  (package-with-python2 python-pycurl))
-
 (define-public python-webencodings
   (package
     (name "python-webencodings")
@@ -1479,9 +1524,6 @@ BOM detection, but the actual implementation for encoders and decoders
 is Python’s.")
     (license license:bsd-3)))
 
-(define-public python2-webencodings
-  (package-with-python2 python-webencodings))
-
 (define-public python-openapi-schema-validator
   (package
     (name "python-openapi-schema-validator")
@@ -2009,8 +2051,7 @@ originally developed at FriendFeed.  By using non-blocking network I/O,
 Tornado can scale to tens of thousands of open connections, making it ideal
 for long polling, WebSockets, and other applications that require a long-lived
 connection to each user.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-tornado))))))
+    (license license:asl2.0)))
 
 (define-public python-tornado-6
   (package
@@ -2043,16 +2084,6 @@ for long polling, WebSockets, and other applications that require a long-lived
 connection to each user.")
     (license license:asl2.0)))
 
-(define-public python2-tornado
-  (let ((tornado (package-with-python2 (strip-python2-variant python-tornado))))
-    (package/inherit tornado
-      (propagated-inputs
-       `(("python2-backport-ssl-match-hostname"
-          ,python2-backport-ssl-match-hostname)
-         ("python2-backports-abc" ,python2-backports-abc)
-         ("python2-singledispatch" ,python2-singledispatch)
-          ,@(package-propagated-inputs tornado))))))
-
 (define-public python-tornado-http-auth
   (package
     (name "python-tornado-http-auth")
@@ -2147,9 +2178,6 @@ your Web app.")
 object to help create WSGI responses.")
     (license license:expat)))
 
-(define-public python2-webob
-  (package-with-python2 python-webob))
-
 (define-public python-zope-event
   (package
     (name "python-zope-event")
@@ -2170,9 +2198,6 @@ is a simple event-dispatching system on which more sophisticated event
 dispatching systems can be built.")
     (license license:zpl2.1)))
 
-(define-public python2-zope-event
-  (package-with-python2 python-zope-event))
-
 (define-public python-zope-interface
   (package
     (name "python-zope-interface")
@@ -2197,9 +2222,6 @@ interfaces\" for Python.  Interfaces are a mechanism for labeling objects as
 conforming to a given API or contract.")
     (license license:zpl2.1)))
 
-(define-public python2-zope-interface
-  (package-with-python2 python-zope-interface))
-
 (define-public python-zope-exceptions
   (package
     (name "python-zope-exceptions")
@@ -2251,9 +2273,6 @@ that have uses outside of the Zope framework.")
 (define-public python-zope-exceptions-bootstrap
   (python-zope-bootstrap-package python-zope-exceptions))
 
-(define-public python2-zope-exceptions
-  (package-with-python2 python-zope-exceptions))
-
 (define-public python-zope-testing
   (package
     (name "python-zope-testing")
@@ -2272,9 +2291,6 @@ that have uses outside of the Zope framework.")
 forms, HTTP servers, regular expressions, and more.")
     (license license:zpl2.1)))
 
-(define-public python2-zope-testing
-  (package-with-python2 python-zope-testing))
-
 (define-public python-zope-testrunner
   (package
     (name "python-zope-testrunner")
@@ -2315,9 +2331,6 @@ tests.")
        ("python-zope-exceptions" ,python-zope-exceptions-bootstrap)))
     (properties `((hidden? . #t)))))
 
-(define-public python2-zope-testrunner
-  (package-with-python2 python-zope-testrunner))
-
 (define-public python-zope-i18nmessageid
   (package
     (name "python-zope-i18nmessageid")
@@ -2340,9 +2353,6 @@ tests.")
 internationalized messages within program source text.")
     (license license:zpl2.1)))
 
-(define-public python2-zope-i18nmessageid
-  (package-with-python2 python-zope-i18nmessageid))
-
 (define-public python-zope-schema
   (package
     (name "python-zope-schema")
@@ -2375,9 +2385,6 @@ internationalized messages within program source text.")
 defining data schemas.")
     (license license:zpl2.1)))
 
-(define-public python2-zope-schema
-  (package-with-python2 python-zope-schema))
-
 (define-public python-zope-configuration
   (package
     (name "python-zope-configuration")
@@ -2403,9 +2410,6 @@ Markup Language.")
 (define-public python-zope-configuration-bootstrap
   (python-zope-bootstrap-package python-zope-configuration))
 
-(define-public python2-zope-configuration
-  (package-with-python2 python-zope-configuration))
-
 (define-public python-zope-copy
   (package
     (name "python-zope-copy")
@@ -2465,9 +2469,6 @@ brokering, etc.) for which the proxy is responsible.")
 (define-public python-zope-proxy-bootstrap
   (python-zope-bootstrap-package python-zope-proxy))
 
-(define-public python2-zope-proxy
-  (package-with-python2 python-zope-proxy))
-
 (define-public python-zope-hookable
   (package
     (name "python-zope-hookable")
@@ -2519,9 +2520,6 @@ Zope3, which are are special objects that have a structural location.")
 (define-public python-zope-location-bootstrap
   (python-zope-bootstrap-package python-zope-location))
 
-(define-public python2-zope-location
-  (package-with-python2 python-zope-location))
-
 (define-public python-zope-security
   (package
     (name "python-zope-security")
@@ -2563,9 +2561,6 @@ security policies on Python objects.")
        ("python-zope-proxy" ,python-zope-proxy-bootstrap)
        ("python-zope-schema" ,python-zope-schema)))))
 
-(define-public python2-zope-security
-  (package-with-python2 python-zope-security))
-
 (define-public python-zope-component
   (package
     (name "python-zope-component")
@@ -2608,9 +2603,6 @@ facilities for defining, registering and looking up components.")
 (define-public python-zope-component-bootstrap
   (python-zope-bootstrap-package python-zope-component))
 
-(define-public python2-zope-component
-  (package-with-python2 python-zope-component))
-
 (define-public python-zope-deferredimport
   (package
     (name "python-zope-deferredimport")
@@ -2802,18 +2794,7 @@ APIs.")
     (description
      "Requests is a Python HTTP client library.  It aims to be easier to use
 than Python’s urllib2 library.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-requests))))))
-
-(define-public python2-requests
-  (let ((base (package-with-python2 (strip-python2-variant python-requests))))
-    (package
-      (inherit base)
-      ;; The python-charset-normalizer dependency is necessary on Python 3
-      ;; only.
-      (propagated-inputs (modify-inputs (package-propagated-inputs base)
-                           (append python2-chardet)
-                           (delete "python-charset-normalizer"))))))
+    (license license:asl2.0)))
 
 (define-public python-requests-unixsocket
   (package
@@ -2996,9 +2977,6 @@ adapter for use with the Requests library.")
 OAuth request-signing logic.")
     (license license:bsd-3)))
 
-(define-public python2-oauthlib
-  (package-with-python2 python-oauthlib))
-
 (define-public python-rauth
   (package
     (name "python-rauth")
@@ -3021,14 +2999,7 @@ OAuth request-signing logic.")
      "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly.  It also
 provides service wrappers for convenient connection initialization and
 authenticated session objects providing things like keep-alive.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-rauth))))))
-
-(define-public python2-rauth
-  (let ((base (package-with-python2 (strip-python2-variant python-rauth))))
-    (package/inherit base
-      (native-inputs `(("python2-unittest2" ,python2-unittest2)
-                       ,@(package-native-inputs base))))))
+    (license license:expat)))
 
 (define-public python-unalix
   (package
@@ -3086,17 +3057,8 @@ addon for removing tracking fields from URLs.")
      "Urllib3 supports features left out of urllib and urllib2 libraries.  It
 can reuse the same socket connection for multiple requests, it can POST files,
 supports url redirection and retries, and also gzip and deflate decoding.")
-    (properties `((python2-variant . ,(delay python2-urllib3))))
     (license license:expat)))
 
-(define-public python2-urllib3
-  (let ((base (package-with-python2 (strip-python2-variant python-urllib3))))
-    (package/inherit
-     base
-     (propagated-inputs
-      `(("python-ipaddress" ,python2-ipaddress)
-        ,@(package-propagated-inputs base))))))
-
 (define-public awscli
   (package
     ;; Note: updating awscli typically requires updating botocore as well.
@@ -3192,9 +3154,6 @@ Script provides commands to serve applications based on this configuration
 file.")
     (license license:expat)))
 
-(define-public python2-pastedeploy
-  (package-with-python2 python-pastedeploy))
-
 (define-public python-webtest
   (package
     (name "python-webtest")
@@ -3322,9 +3281,6 @@ Python.")
     (home-page "https://gitlab.com/sashahart/cookies")
     (license license:expat)))
 
-(define-public python2-cookies
-  (package-with-python2 python-cookies))
-
 (define-public python-responses
   (package
     (name "python-responses")
@@ -3350,9 +3306,6 @@ Python.")
 library.")
     (license license:asl2.0)))
 
-(define-public python2-responses
-  (package-with-python2 python-responses))
-
 (define-public python-grequests
   (package
     (name "python-grequests")
@@ -3558,9 +3511,6 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
 replay them during future tests.  It is designed to work with python-requests.")
     (license license:expat)))
 
-(define-public python2-betamax
-  (package-with-python2 python-betamax))
-
 (define-public python-betamax-matchers
   (package
     (name "python-betamax-matchers")
@@ -3901,9 +3851,6 @@ users' sessions over extended periods of time.")
 library for Python")
     (license license:asl2.0)))
 
-(define-public python2-oauth2client
-  (package-with-python2 python-oauth2client))
-
 (define-public python-flask-oidc
   (package
     (name "python-flask-oidc")
@@ -4075,9 +4022,6 @@ of components for parsing, generating, and processing HTML, XML or other
 textual content for output generation on the web.")
     (license license:bsd-3)))
 
-(define-public python2-genshi
-  (package-with-python2 python-genshi))
-
 (define-public python-flask-principal
   (package
     (name "python-flask-principal")
@@ -4265,9 +4209,6 @@ addon modules.")
     (description "@code{python-bottle} is a WSGI framework for small web-applications.")
     (license license:expat)))
 
-(define-public python2-bottle
-  (package-with-python2 python-bottle))
-
 (define-public python-wtforms
   (package
     (name "python-wtforms")
@@ -7390,3 +7331,140 @@ scraping framework, used to crawl websites and extract structured data
 from their pages.  It can be used for a wide range of purposes, from data
 mining to monitoring and automated testing.")
     (license license:bsd-3)))
+
+(define-public python-jstyleson
+  (package
+    (name "python-jstyleson")
+    (version "0.0.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "jstyleson" version))
+       (sha256
+        (base32 "13ihw6jqwkg3ai4xb83kw39pvh73b2wg6ld3wvj5jaasn7rh6038"))))
+    (build-system python-build-system)
+    (arguments (list #:tests? #f))      ;no tests in pypi release
+    (home-page "https://github.com/linjackson78/jstyleson")
+    (synopsis "JSON parser supporting js-style comments")
+    (description "@code{jstyleson} is a Python library to parse JSON.
+Contrary to the standard Python @code{json} library, it understands js-style
+comments.  Trailing comma is also supported.")
+    (license license:expat)))
+
+(define-public python-html-text
+  (package
+    (name "python-html-text")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "html_text" version))
+       (sha256
+        (base32 "1v9x171l3bmyayc1144nrkn9410lp4lhlrrjii54j7b5f2xipmmg"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest))
+    (propagated-inputs (list python-lxml))
+    (home-page "https://github.com/TeamHG-Memex/html-text")
+    (synopsis "Extract text from HTML")
+    (description "HTML to Text is a Python library for extract text from HTML.
+Contrary to other solution such as LXML or Beautiful Soup, the text extracted
+with @code{html_text} does not contain elements such as JavaScript or inline
+styles not normally visible to users.  It also normalizes white space
+characters in a smarter, more visually pleasing style.")
+    (license license:expat)))
+
+(define-public python-mf2py
+  (package
+    (name "python-mf2py")
+    (version "1.1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/microformats/mf2py")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "00pzfc5sl6ywlcr6f2k37n3f2bb7w488p2k95ixzjwx6w3yh747n"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv" "test")))))))
+    (native-inputs (list python-pytest))
+    (propagated-inputs
+     (list python-beautifulsoup4 python-html5lib python-requests))
+    (home-page "https://github.com/microformats/mf2py")
+    (synopsis "Python Microformats2 parser")
+    (description "This Python library provides a Microformats2 parser
+implementing the full Microformats2 (mf2) specification, including backward
+compatibility with Microformats1 (mf1).")
+    (license license:expat)))
+
+(define-public python-extruct
+  (package
+    (name "python-extruct")
+    (version "0.13.0")
+    (source (origin
+              (method git-fetch)        ;for tests
+              (uri (git-reference
+                    (url "https://github.com/scrapinghub/extruct")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "075zldf3dqcc429z1vk2ngbmv034bnlyk6arh3rh30jbsvz9pzl5"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv" "tests")))))))
+    (native-inputs (list python-pytest))
+    (propagated-inputs
+     (list python-html-text
+           python-jstyleson
+           python-lxml
+           python-mf2py
+           python-pyrdfa3
+           python-rdflib
+           python-rdflib-jsonld
+           python-w3lib))
+    (home-page "https://github.com/scrapinghub/extruct")
+    (synopsis "Extract embedded metadata from HTML markup")
+    (description "@code{extruct} is a Python library for extracting embedded
+metadata from HTML markup.  Currently, extruct supports:
+@itemize
+@item W3C's HTML Microdata
+@item embedded JSON-LD
+@item Microformat via mf2py
+@item Facebook's Open Graph
+@item (experimental) RDFa via rdflib
+@item Dublin Core Metadata (DC-HTML-2003)
+@end itemize")
+    (license license:bsd-3)))
+
+(define-public python-wadllib
+  (package
+    (name "python-wadllib")
+    (version "1.3.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "wadllib" version))
+       (sha256
+        (base32 "1z65crvdsjxh9nahz1g6q021ijmv85ixmq88l96d61qh5imavndc"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-lazr-uri))
+    (home-page "https://launchpad.net/wadllib")
+    (synopsis "Web Application Description Language (WADL) navigation library")
+    (description "The @code{wadllib} Python library allows navigating HTTP
+resources using Web Application Description Language (WADL) files as guides.")
+    (license license:lgpl3)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index f41114207b..a4c8c0bc29 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -61,7 +61,7 @@
 ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
 ;;; Copyright © 2019, 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
 ;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019, 2020, 2021, 2022 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
 ;;; Copyright © 2019, 2020, 2021 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
@@ -107,7 +107,7 @@
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
 ;;; Copyright © 2021 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
-;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
+;;; Copyright © 2021, 2022 Pradana Aumars <paumars@courrier.dev>
 ;;; Copyright © 2021, 2022 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Sébastien Lerique <sl@eauchat.org>
 ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be>
@@ -505,21 +505,6 @@ remembers the order in which the items were inserted and supports almost all the
 features of the Python's built-in dict.")
     (license license:unlicense)))
 
-(define-public python2-twodict
-  (package
-    (inherit python-twodict)
-    (name "python2-twodict")
-    (version "1.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "twodict" version))
-       (sha256
-        (base32 "0ifv7dv18jn2lg0a3l6zdlvmmlda2ivixfjbsda58a2ay6kxznr0"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))))
-
 (define-public python-argopt
   (package
    (name "python-argopt")
@@ -1118,16 +1103,8 @@ profiling and limiting process resources and management of running processes.
 It implements many functionalities offered by command line tools such as: ps,
 top, lsof, netstat, ifconfig, who, df, kill, free, nice, ionice, iostat,
 iotop, uptime, pidof, tty, taskset, pmap.")
-    (properties `((python2-variant . ,(delay python2-psutil))))
     (license license:bsd-3)))
 
-(define-public python2-psutil
-  (let ((base (package-with-python2 (strip-python2-variant python-psutil))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)         ;optional
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-shapely
   (package
     (name "python-shapely")
@@ -1250,9 +1227,6 @@ and function call return values in a human-readable way.")
 by @code{binstar}, @code{binstar-build}, and @code{chalmers}.")
     (license license:bsd-3)))
 
-(define-public python2-clyent
-  (package-with-python2 python-clyent))
-
 (define-public python-babel
   (package
     (name "python-babel")
@@ -1285,63 +1259,6 @@ access to various locale display names, localized number and date formatting,
 etc.")
     (license license:bsd-3)))
 
-(define-public python2-babel
-  (package
-    (name "python2-babel")
-    (version "2.9.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "Babel" version))
-       (sha256
-        (base32
-         "018yg7g2pa6vjixx1nx41cfispgfi0azzp0a1chlycbj8jsil0ys"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python2-freezegun python2-pytest tzdata-for-tests))
-    (propagated-inputs
-     (list python2-pytz))
-    (arguments
-     `(#:python ,python-2
-       #:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      (invoke "pytest" "-vv"))))))
-    (home-page "https://babel.pocoo.org/")
-    (synopsis
-     "Tools for internationalizing Python applications")
-    (description
-     "Babel is composed of two major parts:
-- tools to build and work with gettext message catalogs
-- a Python interface to the CLDR (Common Locale Data Repository), providing
-access to various locale display names, localized number and date formatting,
-etc.")
-    (license license:bsd-3)))
-
-(define-public python2-backport-ssl-match-hostname
-  (package
-    (name "python2-backport-ssl-match-hostname")
-    (version "3.5.0.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (pypi-uri "backports.ssl_match_hostname" version))
-      (sha256
-       (base32
-        "1wndipik52cyqy0677zdgp90i435pmvwd89cz98lm7ri0y3xjajh"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f)) ; no test target
-    (home-page "https://bitbucket.org/brandon/backports.ssl_match_hostname")
-    (synopsis "Backport of ssl.match_hostname() function from Python 3.5")
-    (description
-     "This backport brings the ssl.match_hostname() function to users of
-earlier versions of Python.  The function checks the hostname in the
-certificate returned by the server to which a connection has been established,
-and verifies that it matches the intended target hostname.")
-    (license license:psfl)))
-
 (define-public python-bidict
   (package
     (name "python-bidict")
@@ -1523,21 +1440,7 @@ HDF5 library from Python.  The low-level interface is intended to be a
 complete wrapping of the HDF5 API, while the high-level component supports
 access to HDF5 files, datasets and groups using established Python and NumPy
 concepts.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-h5py))))))
-
-(define-public python2-h5py
-  (let ((base (package-with-python2 (strip-python2-variant python-h5py))))
-    (package
-      (inherit base)
-      (version "2.10.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "h5py" version))
-         (sha256
-          (base32
-           "0baipzv8n93m0dq0riyi8rfhzrjrfrfh8zqhszzp1j2xjac2fhc4")))))))
+    (license license:bsd-3)))
 
 (define-public python-hnswlib
   (package
@@ -1877,9 +1780,6 @@ the version levels, and check whether any given string is a proper semantic
 version identifier.")
     (license license:bsd-3)))
 
-(define-public python2-semantic-version
-  (package-with-python2 python-semantic-version))
-
 (define-public python-serpent
   (package
     (name "python-serpent")
@@ -1903,16 +1803,8 @@ to rebuild the original object tree.
 
 Because only safe literals are encoded, it is safe to send serpent data to
 other machines, such as over the network.")
-    (properties `((python2-variant . ,(delay python2-serpent))))
     (license license:expat)))
 
-(define-public python2-serpent
-  (let ((base (package-with-python2 (strip-python2-variant python-serpent))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-setuptools
   (package
     (name "python-setuptools")
@@ -1951,63 +1843,6 @@ facilitate packaging Python projects, where packaging includes:
     (license (list license:psfl         ;setuptools itself
                    license:expat        ;six, appdirs, pyparsing
                    license:asl2.0       ;packaging is dual ASL2/BSD-2
-                   license:bsd-2))
-    (properties `((python2-variant . ,(delay python2-setuptools))))))
-
-;; Newer versions of setuptools no longer support Python 2.
-(define-public python2-setuptools
-  (package
-    (name "python2-setuptools")
-    (version "41.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "setuptools" version ".zip"))
-       (sha256
-        (base32
-         "04sns22y2hhsrwfy1mha2lgslvpjsjsz8xws7h2rh5a7ylkd28m2"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; Remove included binaries which are used to build self-extracting
-           ;; installers for Windows.
-           ;; TODO: Find some way to build them ourself so we can include them.
-           (for-each delete-file (find-files "setuptools" "^(cli|gui).*\\.exe$"))
-           #t))))
-    (build-system python-build-system)
-    ;; FIXME: Tests require pytest, which itself relies on setuptools.
-    ;; One could bootstrap with an internal untested setuptools.
-    (arguments
-     `(#:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'compatibility-fixes
-           (lambda _
-             ;; HTMLParser no longer exists.
-             (substitute* "setuptools/py33compat.py"
-               (("html_parser.HTMLParser\\(\\).unescape")
-                "html.unescape"))
-             ;; This needs distutils.msvc9compiler
-             (delete-file "setuptools/tests/test_msvc.py"))))))
-    (native-inputs
-     (list unzip))
-    (home-page "https://pypi.org/project/setuptools/")
-    (synopsis
-     "Library designed to facilitate packaging Python projects")
-    (description
-     "Setuptools is a fully-featured, stable library designed to facilitate
-packaging Python projects, where packaging includes:
-Python package and module definitions,
-distribution package metadata,
-test hooks,
-project installation,
-platform-specific details,
-Python 3 support.")
-    ;; TODO: setuptools now bundles the following libraries:
-    ;; packaging, pyparsing, six and appdirs. How to unbundle?
-    (license (list license:psfl         ; setuptools itself
-                   license:expat        ; six, appdirs, pyparsing
-                   license:asl2.0       ; packaging is dual ASL2/BSD-2
                    license:bsd-2))))
 
 (define-public python-setuptools-declarative-requirements
@@ -2096,9 +1931,6 @@ multiple Unicode code points, e.g. \"G\" + acute-accent)
 @end enumerate")
     (license license:expat)))
 
-(define-public python2-uniseg
-  (package-with-python2 python-uniseg))
-
 (define-public python-humanfriendly
   (package
     (name "python-humanfriendly")
@@ -2122,17 +1954,8 @@ text interfaces more user-friendly.  It includes tools to parse and format
 numbers, file sizes, and timespans, timers for long-running operations, menus
 to allow the user to choose from a list of options, and terminal interaction
 helpers.")
-    (properties `((python2-variant . ,(delay python2-humanfriendly))))
     (license license:expat)))
 
-(define-public python2-humanfriendly
-  (let ((base (package-with-python2
-                (strip-python2-variant python-humanfriendly))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-monotonic" ,python2-monotonic)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-textparser
   (package
     (name "python-textparser")
@@ -2427,9 +2250,6 @@ to the terminal in real time but is also available to the Python program
 for additional processing.")
     (license license:expat)))
 
-(define-public python2-capturer
-  (package-with-python2 python-capturer))
-
 (define-public python-case
   (package
     (name "python-case")
@@ -2483,9 +2303,6 @@ some helpful Python 2 compatibility convenience methods.")
 add the log levels NOTICE, SPAM, SUCCESS and VERBOSE.")
     (license license:expat)))
 
-(define-public python2-verboselogs
-  (package-with-python2 python-verboselogs))
-
 (define-public python-coloredlogs
   (package
     (name "python-coloredlogs")
@@ -2512,9 +2329,6 @@ Python's logging module.  The @code{ColoredFormatter} class inherits from
 messages in color.")
     (license license:expat)))
 
-(define-public python2-coloredlogs
-  (package-with-python2 python-coloredlogs))
-
 (define-public python-editorconfig
   (package
     (name "python-editorconfig")
@@ -2549,9 +2363,7 @@ files are easily readable and they work nicely with version control systems.")
          "0vmxgn9wd3j80hp4gr5iq06jrl4gryz5zgfdd2ah30d12sfcfig0"))))
     (build-system python-build-system)
     (propagated-inputs
-     (list python2-backports-functools-lru-cache
-           python2-backports-shutil-get-terminal-size
-           python-cached-property
+     (list python-cached-property
            python-colorama
            python-imagesize
            python-importlib-metadata
@@ -2595,9 +2407,6 @@ from @code{lxml}.  It aims to provide a low memory, compatible implementation
 of @code{xmlfile}.")
     (license license:expat)))
 
-(define-public python2-et-xmlfile
-  (package-with-python2 python-et-xmlfile))
-
 (define-public python-openpyxl
   (package
     (name "python-openpyxl")
@@ -2619,37 +2428,16 @@ of @code{xmlfile}.")
                   (replace 'check
                     (lambda _
                       (invoke "pytest"))))))
-    (native-inputs
-     ;; For the test suite.
-     (list python-lxml python-pillow python-pytest))
-    (propagated-inputs
-     (list python-et-xmlfile python-jdcal))
+    (native-inputs (list python-lxml python-pillow python-pytest))
+    (propagated-inputs (list python-et-xmlfile python-jdcal))
     (home-page "https://openpyxl.readthedocs.io")
     (synopsis "Python library to read/write Excel 2010 XLSX/XLSM files")
-    (description "This Python library allows reading and writing to the Excel XLSX, XLSM,
+    (description
+     "This Python library allows reading and writing to the Excel XLSX, XLSM,
 XLTX and XLTM file formats that are defined by the Office Open XML (OOXML)
 standard.")
-    (properties  `((python2-variant . ,(delay python2-openpyxl))))
     (license license:expat)))
 
-(define-public python2-openpyxl
-  (let ((base (package-with-python2
-               (strip-python2-variant python-openpyxl))))
-    (package
-      (inherit base)
-      ;; This is the latest version that has python2 support
-      (version "2.6.4")
-      (source
-        (origin
-          (method url-fetch)
-          (uri (pypi-uri "openpyxl" version))
-          (sha256
-           (base32
-            "1qzjj8nwj4dn0mhq1j64f136afiqqb81lvqiikipz3g1g0b80lqx"))))
-      (arguments
-       `(#:python ,python-2
-         #:tests? #f)))))     ; No test suite.
-
 (define-public python-eventlet
   (package
     (name "python-eventlet")
@@ -2728,7 +2516,16 @@ in the current session, Python, and the OS.")
      `(("python-pytest" ,python-pytest-bootstrap)))))
 
 (define-public python2-six
-  (package-with-python2 python-six))
+  (let ((base (package-with-python2 python-six)))
+    (package
+      (inherit base)
+      ;; Reduce Python 2 closure by disabling tests and removing the native
+      ;; inputs.
+      (arguments (substitute-keyword-arguments (package-arguments base)
+                   ((#:phases phases)
+                    `(modify-phases ,phases
+                       (delete 'check)))))
+      (native-inputs '()))))
 
 (define-public python-schedule
   (package
@@ -2753,9 +2550,6 @@ any other callable) periodically at pre-determined intervals using a simple,
 human-friendly syntax.")
     (license license:expat)))
 
-(define-public python2-schedule
-  (package-with-python2 python-schedule))
-
 (define-public python-scour
   (package
     (name "python-scour")
@@ -2804,9 +2598,6 @@ lossless but can be tweaked for more aggressive cleaning.")
 after Andy Lester’s Perl module WWW::Mechanize.")
     (license license:bsd-3)))
 
-(define-public python2-mechanize
-  (package-with-python2 python-mechanize))
-
 (define-public python-simpleaudio
   (package
     (name "python-simpleaudio")
@@ -2861,9 +2652,6 @@ the optional C extension for speedups.  Simplejson is also supported on
 Python 3.3+.")
     (license license:x11)))
 
-(define-public python2-simplejson
-  (package-with-python2 python-simplejson))
-
 
 (define-public python-pyicu
   (package
@@ -2887,9 +2675,6 @@ Python 3.3+.")
      "PyICU is a python extension wrapping the ICU C++ API.")
     (license license:x11)))
 
-(define-public python2-pyicu
-  (package-with-python2 python-pyicu))
-
 (define-public python-dogtail
   (package
     (name "python-dogtail")
@@ -2934,9 +2719,6 @@ applications. dogtail scripts are written in Python and executed like any
 other Python program.")
     (license license:gpl2+)))
 
-(define-public python2-dogtail
-  (package-with-python2 python-dogtail))
-
 (define-public python-empy
   (package
     (name "python-empy")
@@ -2967,80 +2749,6 @@ system is highly configurable via command line options and embedded
 commands.")
     (license license:lgpl2.1+)))
 
-(define-public python2-element-tree
-  (package
-    (name "python2-element-tree")
-    (version "1.2.6")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://effbot.org/media/downloads/elementtree-"
-                    version "-20050316.tar.gz"))
-              (sha256
-               (base32
-                "016bphqnlg0l4vslahhw4r0aanw95bpypy65r1i1acyb2wj5z7dj"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2                       ; seems to be part of Python 3
-       #:tests? #f))                            ; no 'test' sub-command
-    (synopsis "Toolkit for XML processing in Python")
-    (description
-     "ElementTree is a Python library supporting lightweight XML processing.")
-    (home-page "https://effbot.org/zone/element-index.htm")
-    (license (license:x11-style
-              "http://docs.python.org/2/license.html"
-              "Like \"CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2\"."))))
-
-(define-public python2-pybugz
-  (package
-    (name "python2-pybugz")
-    (version "0.6.11")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://bits.liquidx.net/projects/pybugz/pybugz-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd"))
-              (patches (search-patches "pybugz-stty.patch"
-                                       "pybugz-encode-error.patch"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2                         ; SyntaxError with Python 3
-       #:tests? #f))                              ; no 'test' sub-command
-    (propagated-inputs
-     `(("element-tree" ,python2-element-tree)))
-    (synopsis "Python and command-line interface to Bugzilla")
-    (description
-     "PyBugz is a Python library and command-line tool to query the Bugzilla
-bug tracking system.  It is meant as an aid to speed up interaction with the
-bug tracker.")
-    (home-page "http://www.liquidx.net/pybugz/")
-    (license license:gpl2)))
-
-(define-public python2-enum
-  (package
-    (name "python2-enum")
-    (version "0.4.6")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "enum" version))
-              (sha256
-               (base32
-                "13lk3yrwj42vl30kw3c194f739nrfrdg64s6i0v2p636n4k8brsl"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://pypi.org/project/enum/")
-    (synopsis "Robust enumerated type support in Python")
-    (description
-     "This provides a module for robust enumerations in Python.  It has
-been superseded by the Python standard library and is provided only for
-compatibility.")
-    ;; Choice of either license.
-    (license (list license:gpl3+ license:psfl))))
-
 (define-public python-enum34
   (package
     (name "python-enum34")
@@ -3060,9 +2768,6 @@ compatibility.")
 backported for previous versions of Python from 2.4 to 3.3.")
     (license license:bsd-3)))
 
-(define-public python2-enum34
-  (package-with-python2 python-enum34))
-
 (define-public python-parse-type
   (package
     (name "python-parse-type")
@@ -3086,20 +2791,9 @@ backported for previous versions of Python from 2.4 to 3.3.")
     (native-inputs (list python-pytest))
     (home-page "https://github.com/jenisys/parse_type")
     (synopsis "Extended parse module")
-    (description
-     "Parse_type extends the python parse module.")
-    (properties
-     `((python2-variant . ,(delay python2-parse-type))))
+    (description "Parse_type extends the python parse module.")
     (license license:bsd-3)))
 
-(define-public python2-parse-type
-  (let ((base (package-with-python2
-                (strip-python2-variant python-parse-type))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-parse
   (package
     (name "python-parse")
@@ -3142,13 +2836,6 @@ files.  It can be used to create po files from scratch or to modify
 existing ones.")
     (license license:expat)))
 
-(define-public python2-polib
-  (let ((base (package-with-python2 (strip-python2-variant python-polib))))
-    (package/inherit base
-      (arguments `(,@(package-arguments base)
-                   ;; Tests don't work with python2.
-                   #:tests? #f)))))
-
 (define-public python-polling2
   (package
     (name "python-polling2")
@@ -3278,9 +2965,6 @@ documentation-related tools used by the Astropy project.")
      "Extras is a set of extensions to the Python standard library.")
     (license license:expat)))
 
-(define-public python2-extras
-  (package-with-python2 python-extras))
-
 (define-public python-mimeparse
   (package
     (name "python-mimeparse")
@@ -3307,9 +2991,6 @@ documentation-related tools used by the Astropy project.")
 matching them against a list of media-ranges.")
     (license license:expat)))
 
-(define-public python2-mimeparse
-  (package-with-python2 python-mimeparse))
-
 (define-public python-miniboa
   (package
     (name "python-miniboa")
@@ -3329,9 +3010,6 @@ matching them against a list of media-ranges.")
 server.")
     (license license:asl2.0)))
 
-(define-public python2-miniboa
-  (package-with-python2 python-miniboa))
-
 (define-public python-pafy
   (package
     (name "python-pafy")
@@ -3391,36 +3069,6 @@ port forwards using @acronym{UPnP, Universal Plug and Play}.")
     (home-page "http://miniupnp.free.fr")
     (license license:bsd-3)))
 
-(define-public python2-funcsigs
-  (package
-    (name "python2-funcsigs")
-    (version "1.0.2")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "funcsigs" version))
-              (sha256
-               (base32
-                "0l4g5818ffyfmfs1a924811azhjj8ax9xd1cffr1mzd3ycn0zfx7"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (native-inputs
-     (list python2-unittest2))
-    (home-page "http://funcsigs.readthedocs.org")
-    (synopsis "Python function signatures from PEP362")
-    (description
-     "Backport of @code{funcsigs} which was introduced in Python 3.3.")
-    (license license:asl2.0)))
-
-(define-public python2-funcsigs-bootstrap
-  (package
-    (inherit python2-funcsigs)
-    (name "python2-funcsigs-bootstrap")
-    (native-inputs `())
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-funcsigs)))))
-
 (define-public python-py
   (package
     (name "python-py")
@@ -3448,9 +3096,6 @@ port forwards using @acronym{UPnP, Universal Plug and Play}.")
 code introspection, and logging.")
     (license license:expat)))
 
-(define-public python2-py
-  (package-with-python2 python-py))
-
 ;; Recent versions of python-fixtures and python-testrepository need
 ;; python-pbr for packaging, which itself needs these two packages for
 ;; testing.
@@ -3544,9 +3189,6 @@ new copy of the structure containing the requested updates.  The original
 structure is left untouched.")
     (license license:expat)))
 
-(define-public python2-pyrsistent
-  (package-with-python2 python-pyrsistent))
-
 (define-public python-exif-read
   (package
     (name "python-exif-read")
@@ -3566,9 +3208,6 @@ structure is left untouched.")
 files.")
     (license license:bsd-3)))
 
-(define-public python2-exif-read
-  (package-with-python2 python-exif-read))
-
 (define-public python-pyld
   (package
     (name "python-pyld")
@@ -3586,9 +3225,6 @@ files.")
      "PyLD is an implementation of the JSON-LD specification.")
     (license license:bsd-3)))
 
-(define-public python2-pyld
-  (package-with-python2 python-pyld))
-
 (define-public python-cli-helpers
   (package
     (name "python-cli-helpers")
@@ -3645,28 +3281,28 @@ composable way with as little code as necessary.  Its name stands for
 with sensible defaults out of the box.")
     (license license:bsd-3)))
 
-(define-public python-click-5
+(define-public python-click-7
   (package (inherit python-click)
     (name "python-click")
-    (version "5.1")
+    (version "7.1.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "click" version))
        (sha256
-        (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337"))))
+        (base32 "06kbzd6sjfkqan3miwj9wqyddfxc2b6hi7p5s4dvqjb3gif2bdfj"))))
     (arguments `())))
 
-(define-public python-click-8
+(define-public python-click-5
   (package (inherit python-click)
     (name "python-click")
-    (version "8.1.2")
+    (version "5.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "click" version))
        (sha256
-        (base32 "0whs38a2i0561kwbgigs6vic9r0a1887m2v1aw3rmv6r2kz0g5s7"))))
+        (base32 "0njsm0wn31l21bi118g5825ma5sa3rwn7v2x4wjd7yiiahkri337"))))
     (arguments `())))
 
 (define-public python-cligj
@@ -3712,9 +3348,6 @@ version numbers.")
     (home-page "https://github.com/habnabit/vcversioner")
     (license license:isc)))
 
-(define-public python2-vcversioner
-  (package-with-python2 python-vcversioner))
-
 (define-public python-jdcal
   (package
     (name "python-jdcal")
@@ -3740,9 +3373,6 @@ version numbers.")
 between Julian dates and Gregorian dates.")
     (license license:bsd-2)))
 
-(define-public python2-jdcal
-  (package-with-python2 python-jdcal))
-
 (define-public python-jsondiff
   (package
    (name "python-jsondiff")
@@ -3817,9 +3447,6 @@ services or command-line parsing, converted from JSON/YAML (or
 something else) to Python data-types.")
     (license license:psfl)))
 
-(define-public python2-schema
-  (package-with-python2 python-schema))
-
 (define-public python-schema-0.5
   (package (inherit python-schema)
     (version "0.5.0")
@@ -3831,9 +3458,6 @@ something else) to Python data-types.")
         (base32
          "10zqvpaky51kgb8nd42bk7jwl8cn2zvayxjpdc1wwmpybj92x67s"))))))
 
-(define-public python2-schema-0.5
-  (package-with-python2 python-schema-0.5))
-
 (define-public python-kitchen
   (package
     (name "python-kitchen")
@@ -3859,9 +3483,6 @@ cutting and pasting that code over and over.")
                    ;; kitchen/pycompat25/defaultdict.py:
                    license:psfl))))
 
-(define-public python2-kitchen
-  (package-with-python2 python-kitchen))
-
 (define-public python-roman
   (package
     (name "python-roman")
@@ -3902,9 +3523,6 @@ machine identifiers from human-readable Unicode strings that should still be
 somewhat intelligible.")
     (license license:gpl2+)))
 
-(define-public python2-unidecode
-  (package-with-python2 python-unidecode))
-
 (define-public python-text-unidecode
   (package
     (name "python-text-unidecode")
@@ -3933,9 +3551,6 @@ memory usage and transliteration quality.")
     ;; The user can choose either license.
     (license (list license:clarified-artistic license:gpl2+))))
 
-(define-public python2-text-unidecode
-  (package-with-python2 python-text-unidecode))
-
 (define-public python-pyjwt
   (package
     (name "python-pyjwt")
@@ -3973,9 +3588,6 @@ memory usage and transliteration quality.")
      "PyJWT is a JSON Web Token implementation written in Python.")
     (license license:expat)))
 
-(define-public python2-pyjwt
-  (package-with-python2 python-pyjwt))
-
 (define-public python-pymsgbox
   (package
     (name "python-pymsgbox")
@@ -4043,9 +3655,6 @@ A web profiling frontend exposes process statistics, garbage
 visualisation and class tracker statistics.")
     (license license:asl2.0)))
 
-(define-public python2-pympler
-  (package-with-python2 python-pympler))
-
 (define-public python-itsdangerous
   (package
     (name "python-itsdangerous")
@@ -4086,8 +3695,7 @@ environments and back.")
 complete YAML 1.1 parser, Unicode support, pickle support, capable extension
 API, and sensible error messages.  PyYAML supports standard YAML tags and
 provides Python-specific tags that represent an arbitrary Python object.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pyyaml))))))
+    (license license:expat)))
 
 (define-public python-pyyaml-5
   (package
@@ -4101,19 +3709,6 @@ provides Python-specific tags that represent an arbitrary Python object.")
         (base32
          "0pm440pmpvgv5rbbnm8hk4qga5a292kvlm1bh3x2nwr8pb5p8xv0"))))))
 
-(define-public python2-pyyaml
-  (let ((base (package-with-python2 (strip-python2-variant python-pyyaml))))
-    (package
-      (inherit base)
-      (version "5.4.1")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "PyYAML" version))
-         (sha256
-          (base32
-           "0pm440pmpvgv5rbbnm8hk4qga5a292kvlm1bh3x2nwr8pb5p8xv0")))))))
-
 (define-public python-vine
   (package
     (name "python-vine")
@@ -4158,14 +3753,6 @@ e.g. filters, callbacks and errbacks can all be promises.")
      "Virtualenv is a tool to create isolated Python environments.")
     (license license:expat)))
 
-(define-public python2-virtualenv
-  (let ((base (package-with-python2 (strip-python2-variant python-virtualenv))))
-    (package
-      (inherit base)
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs base)
-         (prepend python2-contextlib2))))))
-
 (define-public python-markupsafe
   (package
     (name "python-markupsafe")
@@ -4191,22 +3778,8 @@ e.g. filters, callbacks and errbacks can all be promises.")
     (description
      "Markupsafe provides an XML/HTML/XHTML markup safe string implementation
 for Python.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-markupsafe))))))
+    (license license:bsd-3)))
 
-;; Version 1.1.1 is the last to support Python 2.
-(define-public python2-markupsafe
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-markupsafe)))
-    (version "1.1.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "MarkupSafe" version))
-       (sha256
-        (base32
-         "0sqipg4fk7xbixqd8kq6rlkxj664d157bdwbh93farcphf92x1r9"))))))
 
 (define-public python-jinja2
   (package
@@ -4234,22 +3807,8 @@ for Python.")
     (description
      "Jinja2 is a small but fast and easy to use stand-alone template engine
 written in pure Python.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-jinja2))))))
+    (license license:bsd-3)))
 
-;; Version 2.11.3 is the last to support Python 2.
-(define-public python2-jinja2
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-jinja2)))
-    (version "2.11.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "Jinja2" version))
-       (sha256
-        (base32
-         "1iiklf3wns67y5lfcacxma5vxfpb7h2a67xbghs01s0avqrq9md6"))))))
 
 (define-public python-jinja2-time
   (package
@@ -4292,20 +3851,7 @@ templates.  A format string can be provided to control the output.")
     (description
      "Pystache is a Python implementation of the framework agnostic,
 logic-free templating system Mustache.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-pystache))))))
-
-(define-public python2-pystache
-  (let ((base (package-with-python2
-               (strip-python2-variant python-pystache))))
-    (package/inherit base
-      (arguments
-       `(#:python ,python-2
-         #:phases
-         (modify-phases %standard-phases
-           (replace 'check
-             (lambda _
-               (invoke "python" "test_pystache.py")))))))))
+    (license license:expat)))
 
 (define-public python-pystitcher
   (package
@@ -4366,17 +3912,6 @@ and lazy re-evaluation (memoize pattern), easy simple parallel computing
 logging and tracing of the execution.")
     (license license:bsd-3)))
 
-;; Newer versions of joblib don't support Python 2.
-(define-public python2-joblib
-  (package
-    (inherit (package-with-python2 python-joblib))
-    (version "0.14.1")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "joblib" version))
-              (sha256
-               (base32
-                "1j464w137w6s367gl697j1l63g52akydrxgv4czlck36ynjfwc06"))))))
 
 (define-public python-daemon
   (package
@@ -4563,9 +4098,6 @@ via commands such as @command{rst2man}, as well as supporting Python code.")
     ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses.
     (license (list license:public-domain license:psfl license:bsd-2 license:gpl3+))))
 
-(define-public python2-docutils
-  (package-with-python2 python-docutils))
-
 ;; awscli refuses to be built with docutils < 0.16.
 (define-public python-docutils-0.15
   (package
@@ -4580,18 +4112,6 @@ via commands such as @command{rst2man}, as well as supporting Python code.")
     ;; tests contain Python 2 syntax.
     (arguments '(#:tests? #false))))
 
-;; python2-sphinx fails its test suite with newer versions.
-(define-public python2-docutils-0.14
-  (package
-    (inherit python2-docutils)
-    (version "0.14")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "docutils" version))
-              (sha256
-               (base32
-                "0x22fs3pdmr42kvz6c654756wja305qv6cx1zbhwlagvxgr4xrji"))))))
-
 (define-public python-restructuredtext-lint
   (package
     (name "python-restructuredtext-lint")
@@ -4709,21 +4229,7 @@ text styles of documentation.")
     (synopsis "Syntax highlighting")
     (description
      "Pygments is a syntax highlighting package written in Python.")
-    (license license:bsd-2)
-    (properties `((python2-variant . ,(delay python2-pygments))))))
-
-;; Pygments 2.6 and later does not support Python 2.
-(define-public python2-pygments
-  (let ((base (package-with-python2 (strip-python2-variant python-pygments))))
-    (package
-      (inherit base)
-      (version "2.5.2")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "Pygments" version))
-                (sha256
-                 (base32
-                  "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))))))
+    (license license:bsd-2)))
 
 (define-public python-pygments-github-lexers
   (package
@@ -5317,9 +4823,6 @@ reStructuredText external reference or timestamps.  It's primary purpose is to
 augment the changelog, but it can be used for other documents, too.")
     (license license:expat)))
 
-(define-public python2-rst.linker
-  (package-with-python2 python-rst.linker))
-
 (define-public python-sshpubkeys
   (package
     (name "python-sshpubkeys")
@@ -5373,9 +4876,6 @@ public key files.")
 which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
     (license license:bsd-3)))
 
-(define-public python2-feedgenerator
-  (package-with-python2 python-feedgenerator))
-
 (define-public python-lsp-jsonrpc
   (package
     (name "python-lsp-jsonrpc")
@@ -5637,9 +5137,6 @@ enable formatting of partial files.")
 interested parties to subscribe to events, or \"signals\".")
     (license license:expat)))
 
-(define-public python2-blinker
-  (package-with-python2 python-blinker))
-
 (define-public pelican
   (package
     (name "pelican")
@@ -5751,42 +5248,7 @@ provides additional functionality on the produced Mallard documents.")
     (description "Cython is an optimising static compiler for both the Python
 programming language and the extended Cython programming language.  It makes
 writing C extensions for Python as easy as Python itself.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-cython))))))
-
-(define-public python2-cython
-  (let ((base (package-with-python2 (strip-python2-variant python-cython))))
-    (package/inherit base
-      (name "python2-cython")
-      (inputs
-       `(("python-2" ,python-2)))       ;this is not automatically changed
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'check 'adjust-test_embed
-               (lambda _
-                 (substitute* "runtests.py"
-                   ;; test_embed goes great lengths to find the static libpythonX.Y.a
-                   ;; so it can give the right -L flag to GCC when embedding static
-                   ;; builds of Python.  It is unaware that the Python "config"
-                   ;; directory (where the static library lives) was renamed in
-                   ;; Python 3, and falls back to sysconfig.get_config_var('LIBDIR'),
-                   ;; which works fine, because that is where the shared library is.
-                   ;;
-                   ;; It also appears to be unaware that the Makefile in Demos/embed
-                   ;; already unconditionally pass the static library location to GCC,
-                   ;; after checking sysconfig.get_config_var('LIBPL).
-                   ;;
-                   ;; The effect is that the linker is unable to resolve libexpat
-                   ;; symbols when building for Python 2, because neither the Python 2
-                   ;; shared library nor Expat is available.   To fix it, we can either
-                   ;; add Expat as an input and make it visible to the linker, or just
-                   ;; prevent it from overriding the Python shared library location.
-                   ;; The end result is identical, so we take the easy route.
-                   ((" or libname not in os\\.listdir\\(libdir\\)")
-                    ""))
-                 #t)))))))))
+    (license license:asl2.0)))
 
 (define-public python-cython-3
   (package
@@ -5876,7 +5338,6 @@ with Python.  It contains among other things: a powerful N-dimensional array
 object, sophisticated (broadcasting) functions, tools for integrating C/C++
 and Fortran code, useful linear algebra, Fourier transform, and random number
 capabilities.")
-    (properties `((python2-variant . ,(delay python2-numpy))))
     (license license:bsd-3)))
 
 (define-public python-numpy-next
@@ -5988,74 +5449,6 @@ capabilities.")
     (description "This package provides the complete NumPy documentation in
 the Texinfo, HTML, and PDF formats.")))
 
-;; Numpy 1.16.x are the last versions that support Python 2.
-(define-public python2-numpy
-  (let ((numpy (package-with-python2
-                (strip-python2-variant python-numpy))))
-    (package
-      (inherit numpy)
-      (name "python2-numpy")
-      (version "1.16.5")
-      (source (origin
-                (method url-fetch)
-                (uri (string-append
-                      "https://github.com/numpy/numpy/releases/download/v"
-                      version "/numpy-" version ".tar.gz"))
-                (sha256
-                 (base32
-                  "0lg1cycxzi4rvvrd5zxinpdz0ni792fpx6xjd75z1923zcac8qrb"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments numpy)
-         ((#:phases phases)
-          #~(modify-phases #$phases
-              (add-after 'unpack 'delete-failing-tests
-                (lambda _
-                  ;; There's just one failing test here.
-                  (delete-file "numpy/linalg/tests/test_linalg.py")
-                  ;; ...and this one depends on the previous one.
-                  (delete-file "numpy/matrixlib/tests/test_matrix_linalg.py")))
-              (replace 'check
-                ;; Older versions don't cope well with the extra Pytest
-                ;; options, so remove them.
-                (lambda* (#:key tests? outputs inputs #:allow-other-keys)
-                  (when tests?
-                    (invoke "./runtests.py" "-vv" "--no-build" "--mode=fast"
-                            "-j" (number->string (parallel-job-count))))))))))
-      (native-inputs
-       (list python2-cython python2-pytest gfortran)))))
-
-;; NOTE: NumPy 1.8 is packaged only for Python 2 because it is of
-;; interest only for legacy code going back to NumPy's predecessor
-;; Numeric.
-(define-public python2-numpy-1.8
-  (package
-    (inherit python2-numpy)
-    (version "1.8.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/numpy/numpy")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name "numpy" version))
-       (sha256
-        (base32
-         "0ikgi15rsqwbkfsjjxrwh40lqyal2wvyp3923y6w6ch3dcr82sfk"))))
-    (arguments (substitute-keyword-arguments (package-arguments python2-numpy)
-                 ((#:tests? _ #f) #f)   ;disable tests
-                 ((#:phases phases)
-                  #~(modify-phases #$phases
-                      (delete 'delete-failing-tests)))))
-    (native-inputs '())
-    (description "NumPy is the fundamental package for scientific computing
-with Python.  It contains among other things: a powerful N-dimensional array
-object, sophisticated (broadcasting) functions, tools for integrating C/C++
-and Fortran code, useful linear algebra, Fourier transform, and random number
-capabilities.  Version 1.8 is the last one to contain the numpy.oldnumeric API
-that includes the compatibility layer numpy.oldnumeric with NumPy's predecessor
-Numeric.")
-    (license license:bsd-3)))
-
 (define-public python-munch
   (package
     (name "python-munch")
@@ -6074,9 +5467,6 @@ Numeric.")
 objects.")
     (license license:expat)))
 
-(define-public python2-munch
-  (package-with-python2 python-munch))
-
 (define-public python-colormath
   (package
     (name "python-colormath")
@@ -6504,25 +5894,7 @@ parse and apply unified diffs.  It has features such as:
     (home-page "https://pypi.org/project/numpydoc/")
     (synopsis "Numpy's Sphinx extensions")
     (description "Sphinx extension to support docstrings in Numpy format.")
-    (license license:bsd-2)
-    (properties `((python2-variant . ,(delay python2-numpydoc))))))
-
-(define-public python2-numpydoc
-  (let ((base (package-with-python2
-               (strip-python2-variant python-numpydoc))))
-    (package/inherit base
-      ;; This is the last version to support Python 2
-      (version "0.9.1")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "numpydoc" version))
-         (sha256
-          (base32
-           "09x6l1a4dcvj7001bvcmcayg1nwqwhaxlwbp6kzj9qrk57lqx3z0"))))
-      (propagated-inputs
-       `(("python2-jinja2" ,python2-jinja2)
-         ,@(package-propagated-inputs base))))))
+    (license license:bsd-2)))
 
 (define-public python-numexpr
   (package
@@ -6550,9 +5922,6 @@ computations, most specially if they are not memory-bounded (e.g. those using
 transcendental functions).")
     (license license:expat)))
 
-(define-public python2-numexpr
-  (package-with-python2 python-numexpr))
-
 (define-public python-cycler
   (package
     (name "python-cycler")
@@ -6580,9 +5949,6 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the
 @code{Cycler} class was developed.")
     (license license:bsd-3)))
 
-(define-public python2-cycler
-  (package-with-python2 python-cycler))
-
 (define-public python-colorspacious
   (package
     (name "python-colorspacious")
@@ -6613,9 +5979,6 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the
 convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.")
     (license license:expat)))
 
-(define-public python2-colorspacious
-  (package-with-python2 python-colorspacious))
-
 (define-public python-proto-matcher
   (package
     (name "python-proto-matcher")
@@ -6789,53 +6152,7 @@ quality figures in a variety of hardcopy formats and interactive environments
 across platforms.  Matplotlib can be used in Python scripts, the python and
 ipython shell, web application servers, and six graphical user interface
 toolkits.")
-    (license license:psfl)
-    (properties `((python2-variant . ,(delay python2-matplotlib))))))
-
-(define-public python2-matplotlib
-  (let ((matplotlib (package-with-python2
-                     (strip-python2-variant python-matplotlib))))
-    (package/inherit matplotlib
-      (version "2.2.5")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "matplotlib" version))
-         (sha256
-          (base32
-           "1sk05fdai9rw35l983rw2ymvz0nafs7szs7yz4nxrpyr1j27l0x3"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments matplotlib)
-         ((#:phases phases)
-          #~(modify-phases #$phases
-              (add-after 'install 'create-init-file
-                (lambda _
-                  (with-output-to-file
-                      (string-append
-                       #$output
-                       "/lib/python2.7/site-packages/mpl_toolkits/__init__.py")
-                    (lambda _ (display "")))))
-              (delete 'fix-and-disable-failing-tests)
-              (delete 'check)))))      ; These tests weren't run the the past.
-      (native-inputs
-       `(("pkg-config" ,pkg-config)))
-      (propagated-inputs
-       `(("gobject-introspection" ,gobject-introspection)
-         ("python2-backports-functools-lru-cache" ,python2-backports-functools-lru-cache)
-         ("python2-certifi" ,python2-certifi)
-         ("python2-cycler" ,python2-cycler)
-         ("python2-dateutil" ,python2-dateutil)
-         ("python2-functools32" ,python2-functools32)
-         ("python2-kiwisolver" ,python2-kiwisolver)
-         ("python2-numpy" ,python2-numpy)
-         ("python2-pillow" ,python2-pillow)
-         ("python2-pycairo" ,python2-pycairo)
-         ("python2-pygobject-2" ,python2-pygobject-2)
-         ("python2-pyparsing" ,python2-pyparsing)
-         ("python2-pytz" ,python2-pytz)
-         ("python2-six" ,python2-six)
-         ("python2-subprocess32" ,python2-subprocess32)
-         ("python2-tkinter" ,python-2 "tk"))))))
+    (license license:psfl)))
 
 (define-public python-matplotlib-documentation
   (package
@@ -6987,9 +6304,6 @@ those files.  It can also efficiently manipulate ranges of integers using set
 operators such as union, intersection, and difference.")
     (license license:asl2.0)))
 
-(define-public python2-pysnptools
-  (package-with-python2 python-pysnptools))
-
 (define-public python-pykdtree
   (package
     (name "python-pykdtree")
@@ -7064,9 +6378,6 @@ branch created by Mario Vilas to address some open issues,
 as the original project seems to have been abandoned circa 2007.")
     (license license:bsd-3)))
 
-(define-public python2-socksipy-branch
-  (package-with-python2 python-socksipy-branch))
-
 (define-public python-socksipychain
   (package
     (name "python-socksipychain")
@@ -7120,9 +6431,6 @@ Python code against some of the style conventions in
 @url{http://www.python.org/dev/peps/pep-0008/,PEP 8}.")
     (license license:expat)))
 
-(define-public python2-pycodestyle
-  (package-with-python2 python-pycodestyle))
-
 (define-public python-pycodestyle-2.6
   (package
     (inherit python-pycodestyle)
@@ -7240,9 +6548,6 @@ by pycodestyle.")
     (license (license:non-copyleft
               "https://github.com/hhatto/autopep8/blob/master/LICENSE"))))
 
-(define-public python2-autopep8
-  (package-with-python2 python-autopep8))
-
 (define-public python-distlib
   (package
     (name "python-distlib")
@@ -7299,37 +6604,6 @@ gettext support, themed icons, and scrollkeeper-based documentation into
 Python's distutils.")
     (license license:gpl2)))
 
-(define-public python2-distutils-extra
-  (package-with-python2 python-distutils-extra))
-
-(define-public python2-elib.intl
-  (package
-    (name "python2-elib.intl")
-    (version "0.0.3")
-    (source
-     (origin
-       ;; This project doesn't tag releases or publish tarballs, so we take
-       ;; source from a (semi-arbitrary, i.e. latest as of now) git commit.
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/dieterv/elib.intl")
-             (commit "d09997cfef")))
-       (file-name (string-append name "-" version "-checkout"))
-       (sha256
-        (base32
-         "0y7vzff9xgbnaay7m0va1arl6g68ncwrvbgwl7jqlclsahzzb09d"))))
-    (build-system python-build-system)
-    (arguments
-     ;; incompatible with Python 3 (exception syntax)
-     `(#:python ,python-2
-       #:tests? #f))
-    (home-page "https://github.com/dieterv/elib.intl")
-    (synopsis "Enhanced internationalization for Python")
-    (description
-     "The elib.intl module provides enhanced internationalization (I18N)
-services for your Python modules and applications.")
-    (license license:lgpl3+)))
-
 (define-public python-olefile
   (package
     (name "python-olefile")
@@ -7352,9 +6626,6 @@ Storage or Compound Document, Microsoft Office).  It is an improved version of
 the OleFileIO module from PIL, the Python Image Library.")
     (license license:bsd-3)))
 
-(define-public python2-olefile
-  (package-with-python2 python-olefile))
-
 (define-public python-pypdf3
   (package
     (name "python-pypdf3")
@@ -7410,45 +6681,39 @@ retrieve text and metadata from PDFs as well as merge entire files together.")
   (package
     (name "python-pillow")
     (version "9.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "Pillow" version))
-       (sha256
-        (base32
-         "0gjry0yqryd2678sm47jhdnbghzxn5wk8pgyaqwr4qi7x5ijjvpf"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           (delete-file-recursively "src/thirdparty")))))
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "Pillow" version))
+              (sha256
+               (base32
+                "0gjry0yqryd2678sm47jhdnbghzxn5wk8pgyaqwr4qi7x5ijjvpf"))
+              (modules '((guix build utils)))
+              (snippet '(begin
+                          (delete-file-recursively "src/thirdparty")))))
     (build-system python-build-system)
-    (native-inputs
-     (list python-pytest))
-    (inputs
-     (list freetype
-           lcms
-           libjpeg-turbo
-           libtiff
-           libwebp
-           openjpeg
-           zlib))
-    (propagated-inputs
-     (list python-olefile))
+    (native-inputs (list python-pytest))
+    (inputs (list freetype
+                  lcms
+                  libjpeg-turbo
+                  libtiff
+                  libwebp
+                  openjpeg
+                  zlib))
+    (propagated-inputs (list python-olefile))
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-ldconfig
-           (lambda _
-             (substitute* "setup.py"
-               (("\\['/sbin/ldconfig', '-p'\\]") "['true']"))))
-         (replace 'check
-           (lambda* (#:key outputs inputs tests? #:allow-other-keys)
-             (when tests?
-               (setenv "HOME" (getcwd))
-               ;; Make installed package available for running the tests.
-               (add-installed-pythonpath inputs outputs)
-               (invoke "python" "selftest.py" "--installed")
-               (invoke "python" "-m" "pytest" "-vv")))))))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-ldconfig
+                    (lambda _
+                      (substitute* "setup.py"
+                        (("\\['/sbin/ldconfig', '-p'\\]") "['true']"))))
+                  (replace 'check
+                    (lambda* (#:key outputs inputs tests? #:allow-other-keys)
+                      (when tests?
+                        (setenv "HOME"
+                                (getcwd))
+                        (add-installed-pythonpath inputs outputs)
+                        (invoke "python" "selftest.py" "--installed")
+                        (invoke "python" "-m" "pytest" "-vv")))))))
     (home-page "https://python-pillow.org")
     (synopsis "Fork of the Python Imaging Library")
     (description
@@ -7458,30 +6723,11 @@ efficient internal representation, and fairly powerful image processing
 capabilities.  The core image library is designed for fast access to data
 stored in a few basic pixel formats.  It should provide a solid foundation for
 a general image processing tool.")
-    (properties `((python2-variant . ,(delay python2-pillow))
-                  (cpe-name . "pillow")))
+    (properties `((cpe-name . "pillow")))
     (license (license:x11-style
               "http://www.pythonware.com/products/pil/license.htm"
               "The PIL Software License"))))
 
-(define-public python2-pillow
-  (package-with-python2
-   (package
-     (inherit (strip-python2-variant python-pillow))
-     ;; Version 6 is the last series with Python 2 support.
-     (version "6.2.2")
-     (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "Pillow" version))
-        (sha256
-         (base32
-          "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv"))))
-     (arguments
-      (substitute-keyword-arguments (package-arguments python-pillow)
-        ;; FIXME: One of the tests is failing.
-        ((#:tests? _ #f) #f))))))
-
 (define-public python-pillow-2.9
   (package
     (inherit python-pillow)
@@ -8037,9 +7283,6 @@ any machine that can run Python.")
 support for Python 3 and PyPy.  It is based on cffi.")
     (license license:expat)))
 
-(define-public python2-xcffib
-  (package-with-python2 python-xcffib))
-
 (define-public python-cairocffi
   (package
     (name "python-cairocffi")
@@ -8143,21 +7386,8 @@ PNG, PostScript, PDF, and SVG file output.")
 for the average programmer, and to popularize decorators usage giving examples
 of useful decorators, such as memoize, tracing, redirecting_stdout, locked,
 etc.  The core of this module is a decorator factory.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-decorator))))))
+    (license license:expat)))
 
-;; Version 5 does not support Python 2
-(define-public python2-decorator
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-decorator)))
-    (version "4.3.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "decorator" version))
-       (sha256
-        (base32 "0308djallnh00v112y5b7nadl657ysmkp6vc8xn51d6yzc9zm7n3"))))))
 
 (define-public python-drmaa
   (package
@@ -8187,9 +7417,6 @@ submission and control.  This package is an implementation of the DRMAA 1.0
 Python language binding specification.")
     (license license:bsd-3)))
 
-(define-public python2-drmaa
-  (package-with-python2 python-drmaa))
-
 (define-public python-grako
   (package
     (name "python-grako")
@@ -8213,9 +7440,6 @@ Python language binding specification.")
 memoizing PEG/Packrat parser in Python.")
     (license license:bsd-3)))
 
-(define-public python2-grako
-  (package-with-python2 python-grako))
-
 (define-public python-grandalf
   (package
     (name "python-grandalf")
@@ -8414,9 +7638,6 @@ Pexpect works like Don Libes’ Expect.  Pexpect allows your script to spawn a
 child application and control it as if a human were typing commands.")
     (license license:isc)))
 
-(define-public python2-pexpect
-  (package-with-python2 python-pexpect))
-
 (define-public python-setuptools-scm
   (package
     (name "python-setuptools-scm")
@@ -8436,21 +7657,7 @@ child application and control it as if a human were typing commands.")
      "Setuptools_scm handles managing your Python package versions in
 @dfn{software configuration management} (SCM) metadata instead of declaring
 them as the version argument or in a SCM managed file.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-setuptools-scm))))))
-
-(define-public python2-setuptools-scm
-  (let ((base (package-with-python2
-               (strip-python2-variant python-setuptools-scm))))
-    (package/inherit base
-      (version "5.0.2")                  ;no python 2 support in version 6
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "setuptools_scm" version))
-                (sha256
-                 (base32
-                  "1j75i8avp9fhrkpbabsa8vyvbi49kmxlq6l10xir9qs96kfwx843"))))
-      (propagated-inputs '()))))
+    (license license:expat)))
 
 (define-public python-sexpdata
   (package
@@ -8497,66 +7704,21 @@ older Python versions.")
   (package
     (name "python-importlib-resources")
     (version "3.0.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "importlib_resources" version))
-        (sha256
-         (base32
-          "1hq626mx5jl9zfl0wdrjkxsnh8qd98fqv322n68b9251xjk4bxqr"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python-setuptools-scm python-toml))
-    (home-page "http://importlib-resources.readthedocs.io/")
-    (synopsis "Read resources from Python packages")
-    (description
-     "@code{importlib_resources} is a backport of Python 3's standard library
-@code{importlib.resources} module for Python 2.7, and Python 3.")
-    (properties `((python2-variant . ,(delay python2-importlib-resources))))
-    (license license:asl2.0)))
-
-(define-public python2-importlib-resources
-  (package
-    (name "python2-importlib-resources")
-    (version "1.0.2")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "importlib_resources" version))
               (sha256
                (base32
-                "0y3hg12iby1qyaspnbisz4s4vxax7syikk3skznwqizqyv89y9yk"))))
+                "1hq626mx5jl9zfl0wdrjkxsnh8qd98fqv322n68b9251xjk4bxqr"))))
     (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases (modify-phases %standard-phases
-                  ;; The build system tests for python-wheel, but it is
-                  ;; not required for Guix nor the test suite.  Just drop
-                  ;; it to make bootstrapping pytest easier.
-                  (add-after 'unpack 'drop-wheel-dependency
-                    (lambda _
-                      (substitute* "setup.cfg"
-                        (("^[[:blank:]]+wheel")
-                         ""))
-                      #t)))))
-    (propagated-inputs
-     (list python2-pathlib2 python2-typing))
-    (home-page "https://gitlab.com/python-devs/importlib_resources")
-    (synopsis "Backport of @code{importlib.resources} from Python 3.7")
+    (native-inputs (list python-setuptools-scm python-toml))
+    (home-page "http://importlib-resources.readthedocs.io/")
+    (synopsis "Read resources from Python packages")
     (description
-     "This package provides an implementation of @code{importlib.resources}
-for older versions of Python.")
+     "@code{importlib_resources} is a backport of Python 3's standard library
+@code{importlib.resources} module for Python 2.7, and Python 3.")
     (license license:asl2.0)))
 
-;; For importlib-metadata-bootstrap below.
-(define-public python2-importlib-resources-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-importlib-resources
-    (name "python2-importlib-resources-bootstrap")
-    (propagated-inputs
-     `(("python-pathlib2-bootstrap" ,python2-pathlib2-bootstrap)
-       ("python-typing" ,python2-typing))))))
-
 (define-public python-importlib-metadata
   (package
     (name "python-importlib-metadata")
@@ -8604,52 +7766,8 @@ its top-level name.  This functionality intends to replace most uses of
 @code{pkg_resources} entry point API and metadata API.  Along with
 @code{importlib.resources} in Python 3.7 and newer, this can eliminate the
 need to use the older and less efficient @code{pkg_resources} package.")
-    (properties `((python2-variant . ,(delay python2-importlib-metadata))))
     (license license:asl2.0)))
 
-(define-public python2-importlib-metadata
-  (let ((base (package-with-python2 (strip-python2-variant
-                                     python-importlib-metadata))))
-    (package/inherit base
-      (name "python2-importlib-metadata")
-      (version "1.5.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "importlib_metadata" version))
-         (sha256
-          (base32
-           "00ikdj4gjhankdljnz7g5ggak4k9lql2926x0x117ir9j2lv7x86"))))
-      (arguments (substitute-keyword-arguments (package-arguments base)
-                   ((#:phases phases)   ;reset standard phases
-                    #~%standard-phases)))
-      (native-inputs
-       `(("python-setuptools-scm" ,python2-setuptools-scm)
-         ("python-pyfakefs" ,python2-pyfakefs-bootstrap)
-         ("python-packaging" ,python2-packaging-bootstrap)))
-      (propagated-inputs
-       `(("python-configparser" ,python2-configparser)
-         ("python-contextlib2" ,python2-contextlib2)
-         ("python-importlib-resources" ,python2-importlib-resources)
-         ("python-pathlib2" ,python2-pathlib2)
-         ,@(package-propagated-inputs base))))))
-
-;; This package is used by python2-pytest, and thus must not depend on it.
-(define-public python2-importlib-metadata-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-importlib-metadata
-    (name "python2-importlib-metadata-bootstrap")
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-importlib-metadata)))
-    (propagated-inputs
-     `(("python-zipp" ,python2-zipp-bootstrap)
-       ("python-pathlib2" ,python2-pathlib2-bootstrap)
-       ("python-configparser" ,python2-configparser)
-       ("python-contextlib2" ,python2-contextlib2-bootstrap)
-       ("python-importlib-resources" ,python2-importlib-resources-bootstrap))))))
-
 (define-public python-importmagic
   (package
     (name "python-importmagic")
@@ -8891,9 +8009,6 @@ e.g. @code{pickle.dump()} and other generic functions found in the Python
 standard library.")
     (license license:zpl2.1)))
 
-(define-public python2-simplegeneric
-  (package-with-python2 python-simplegeneric))
-
 (define-public python-ipython-genutils
   ;; TODO: This package is retired, check if can be removed, see description.
   (package
@@ -8919,9 +8034,6 @@ packages will remove their dependency on this, and this package will go
 away.")
     (license license:bsd-3)))
 
-(define-public python2-ipython-genutils
-  (package-with-python2 python-ipython-genutils))
-
 ;;; Variant used to break a cycle with python-ipykernel.
 (define-public python-ipyparallel-bootstrap
   (hidden-package
@@ -9625,27 +8737,12 @@ computing.")
     (description
      "Urwid is a curses-based UI/widget library for Python.  It includes many
 features useful for text console applications.")
-    (properties `((python2-variant . ,(delay python2-urwid))))
     (license license:lgpl2.1+)))
 
-(define-public python2-urwid
-  (let ((base (package-with-python2
-               (strip-python2-variant python-urwid))))
-    (package
-      (inherit base)
-      (version "2.1.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "urwid" version))
-         (sha256
-          (base32
-           "11ndnhxd41m13darf5s0c6bafdpkzq1l6mfb04wbzdmyc1hg75h8")))))))
-
 (define-public python-urwid-readline
   (package
     (name "python-urwid-readline")
-    (version "0.12")
+    (version "0.13")
     (source
      (origin
        (method git-fetch)
@@ -9655,7 +8752,7 @@ features useful for text console applications.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0sq5qgxj7gcfww3ww7idr87isnmp0hi36n241b3q395x1zafdv22"))))
+         "0y9k86p31mlr9rwnrbljvfgl183r5j60yaj0r3scljn1m0mlg8qg"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -9663,12 +8760,9 @@ features useful for text console applications.")
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
-               (invoke "python" "-m" "pytest"))
-             #t)))))
-    (propagated-inputs
-     (list python-urwid))
-    (native-inputs
-     (list python-pytest))
+               (invoke "pytest" "-vv")))))))
+    (propagated-inputs (list python-urwid))
+    (native-inputs (list python-pytest))
     (home-page "https://github.com/rr-/urwid_readline")
     (synopsis "Text input widget for urwid that supports readline shortcuts")
     (description
@@ -9740,20 +8834,17 @@ distance between two or more sequences by many algorithms.")
 toolkit.  Use it to build trees of widgets.")
     (license license:gpl3+)))
 
-(define-public python2-urwidtrees
-  (package-with-python2 python-urwidtrees))
-
 (define-public python-ua-parser
   (package
     (name "python-ua-parser")
-    (version "0.8.0")
+    (version "0.10.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "ua-parser" version))
        (sha256
         (base32
-         "1jwdf58rhchjzzrad405pviv0iq24xa2xmmmdgcm2c8s6b4wzfwp"))))
+         "0csh307zfz666kkk5idrw3crj1x8q8vsqgwqil0r1n1hs4p7ica7"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                    ;no test suite in release
@@ -9765,20 +8856,17 @@ toolkit.  Use it to build trees of widgets.")
      "@code{ua-parser} is a Python port of Browserscope's user agent parser.")
     (license license:asl2.0)))
 
-(define-public python2-ua-parser
-  (package-with-python2 python-ua-parser))
-
 (define-public python-user-agents
   (package
     (name "python-user-agents")
-    (version "1.1.0")
+    (version "2.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "user-agents" version))
        (sha256
         (base32
-         "0fc00cd3j8dahq1zzn8pkgfgd7lq37bp2scmdma2n1c049vicgb4"))))
+         "09mddriffm9rkwr30081fy9n3cn976ms8pwc8p8hhlxnilbjavfk"))))
     (build-system python-build-system)
     (arguments
      `(#:tests? #f))                  ;missing devices.json test file in release
@@ -9791,9 +8879,6 @@ toolkit.  Use it to build trees of widgets.")
 parsing (browser/HTTP) user agent strings.")
   (license license:expat)))
 
-(define-public python2-user-agents
-  (package-with-python2 python-user-agents))
-
 (define-public python-pydbus
   (package
     (name "python-pydbus")
@@ -9896,9 +8981,6 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
     (license (list license:bsd-2
                    license:lgpl2.1+))))
 
-(define-public python2-notify2
-  (package-with-python2 python-notify2))
-
 ;; beautifulsoup4 has a totally different namespace than 3.x,
 ;; and pypi seems to put it under its own name, so I guess we should too
 (define-public python-beautifulsoup4
@@ -9925,22 +9007,7 @@ screen-scraping projects.  It offers Pythonic idioms for navigating,
 searching, and modifying a parse tree, providing a toolkit for
 dissecting a document and extracting what you need.  It automatically
 converts incoming documents to Unicode and outgoing documents to UTF-8.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-beautifulsoup4))))))
-
-(define-public python2-beautifulsoup4
-  (let ((base (package-with-python2
-               (strip-python2-variant python-beautifulsoup4))))
-    (package/inherit base
-      (version "4.9.3")                 ;last version to support Python 2
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "beautifulsoup4" version))
-         (sha256
-          (base32
-           "09gbd49mwz86k572r1231x2rdp82p42zlnw0bz9b9mfi58r9wwl4"))))
-      (arguments `(#:python ,python-2)))))
+    (license license:expat)))
 
 (define-public python-soupsieve
   (package
@@ -9971,25 +9038,8 @@ Soup 4.  It aims to provide selecting, matching, and filtering using modern
 CSS selectors.  Soup Sieve currently provides selectors from the CSS level 1
 specifications up through the latest CSS level 4 drafts and beyond (though
 some are not yet implemented).")
-    (properties `((python2-variant . ,(delay python2-soupsieve))))
     (license license:expat)))
 
-;; This is the last version that supports python-2
-(define-public python2-soupsieve
-  (let ((base (package-with-python2 (strip-python2-variant python-soupsieve))))
-    (package
-      (inherit base)
-      (version "1.9.6")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "soupsieve" version))
-         (sha256
-          (base32
-           "1apgqxngi1216h1cyvrvj9gy3wf45mh1lz4n76j26jf3k36bm1br"))))
-      (propagated-inputs
-       (modify-inputs (package-propagated-inputs base)
-         (prepend python2-backports-functools-lru-cache))))))
 
 (define-public python-netifaces
   (package
@@ -10011,9 +9061,6 @@ some are not yet implemented).")
 interfaces in an easy and portable manner.")
     (license license:expat)))
 
-(define-public python2-netifaces
-  (package-with-python2 python-netifaces))
-
 (define-public python-networkx
   (package
     (name "python-networkx")
@@ -10031,37 +9078,17 @@ interfaces in an easy and portable manner.")
                     (lambda* (#:key tests? #:allow-other-keys)
                       (if tests?
                           (invoke "pytest" "-vv" "--pyargs" "networkx")
-                          (format #t "test suite not run~%"))
-                      #t)))))
-    ;; python-decorator is needed at runtime.
-    (propagated-inputs
-     (list python-decorator))
-    (native-inputs
-     (list python-pytest))
+                          (format #t "test suite not run~%")) #t)))))
+    (propagated-inputs (list python-decorator))
+    (native-inputs (list python-pytest))
     (home-page "https://networkx.github.io/")
-    (synopsis "Python module for creating and manipulating graphs and networks")
+    (synopsis
+     "Python module for creating and manipulating graphs and networks")
     (description
-      "NetworkX is a Python package for the creation, manipulation, and study
+     "NetworkX is a Python package for the creation, manipulation, and study
 of the structure, dynamics, and functions of complex networks.")
-    (properties `((python2-variant . ,(delay python2-networkx))))
     (license license:bsd-3)))
 
-;; NetworkX 2.2 is the last version with support for Python 2.
-(define-public python2-networkx
-  (let ((base (package-with-python2 (strip-python2-variant python-networkx))))
-    (package
-      (inherit base)
-      (version "2.2")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "networkx" version ".zip"))
-                (sha256
-                 (base32
-                  "12swxb15299v9vqjsq4z8rgh5sdhvpx497xwnhpnb0gynrx6zra5"))))
-      (arguments
-       `(#:python ,python-2))
-      (native-inputs
-       (list python2-nose unzip)))))
 
 (define-public python-datrie
   (package
@@ -10415,48 +9442,39 @@ SVG, EPS, PNG and terminal output.")
   (package
     (name "python-seaborn")
     (version "0.11.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "seaborn" version))
-       (sha256
-        (base32 "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
-       (patches (search-patches "python-seaborn-kde-test.patch"
-                                "python-seaborn-2690.patch"))))
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "seaborn" version))
+              (sha256
+               (base32
+                "1xpl3zb945sihsiwm9q1yyx84sakk1phcg0fprj6i0j0dllfjifg"))
+              (patches (search-patches "python-seaborn-kde-test.patch"
+                                       "python-seaborn-2690.patch"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-more-tests
-           (lambda _
-             (substitute* "seaborn/tests/test_distributions.py"
-               (("get_contour_color\\(ax\\.collections\\[0\\]\\)")
-                "get_contour_color(ax.collections[0])")
-               (("c\\.get_color\\(\\)") "get_contour_color(c)")
-
-               ;; These three are borked and have been fixed upstream, but
-               ;; there's no simple patch we could apply here, so we just
-               ;; disable them.
-               (("def test_hue_ignores_cmap")
-                "def skip_test_hue_ignores_cmap")
-               (("def test_fill_artists")
-                "def skip_test_fill_artists")
-               (("def test_with_rug")
-                "def skip_test_with_rug"))))
-         (add-before 'check 'start-xserver
-           (lambda _
-             ;; There must be a running X server and make check doesn't
-             ;; start one.  Therefore we must do it.
-             (system "Xvfb :1 &")
-             (setenv "DISPLAY" ":1")))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (invoke "pytest" "seaborn")))))))
-    (propagated-inputs
-     (list python-pandas python-matplotlib python-numpy python-scipy))
-    (native-inputs
-     (list python-pytest xorg-server-for-tests))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-more-tests
+                    (lambda _
+                      (substitute* "seaborn/tests/test_distributions.py"
+                        (("get_contour_color\\(ax\\.collections\\[0\\]\\)")
+                         "get_contour_color(ax.collections[0])")
+                        (("c\\.get_color\\(\\)") "get_contour_color(c)")
+                        (("def test_hue_ignores_cmap")
+                         "def skip_test_hue_ignores_cmap")
+                        (("def test_fill_artists")
+                         "def skip_test_fill_artists")
+                        (("def test_with_rug") "def skip_test_with_rug"))))
+                  (add-before 'check 'start-xserver
+                    (lambda _
+                      (system "Xvfb :1 &")
+                      (setenv "DISPLAY" ":1")))
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (when tests?
+                        (invoke "pytest" "seaborn")))))))
+    (propagated-inputs (list python-pandas python-matplotlib python-numpy
+                             python-scipy))
+    (native-inputs (list python-pytest xorg-server-for-tests))
     (home-page "https://seaborn.pydata.org/")
     (synopsis "Statistical data visualization")
     (description
@@ -10464,21 +9482,27 @@ SVG, EPS, PNG and terminal output.")
 graphics in Python.  It is built on top of matplotlib and tightly integrated
 with the PyData stack, including support for numpy and pandas data structures
 and statistical routines from scipy and statsmodels.")
-    (properties `((python2-variant . ,(delay python2-seaborn))))
     (license license:bsd-3)))
 
-;; 0.9.1 is the last release with support for Python 2.
-(define-public python2-seaborn
-  (let ((base (package-with-python2 (strip-python2-variant python-seaborn))))
-    (package
-      (inherit base)
-      (version "0.9.1")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "seaborn" version))
-                (sha256
-                 (base32
-                  "1bjnshjz4d6z3vrwfwall1a3yh8h3a1h47c3fg7458x9426alcys")))))))
+
+(define-public python-session-info
+  (package
+    (name "python-session-info")
+    (version "1.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "session_info" version))
+              (sha256
+               (base32
+                "1dxnrgaxd2nb44n423mnrx119hmnh2yxdnzaw8mg60x7rh1mxniw"))))
+    (build-system python-build-system)
+    (propagated-inputs (list python-stdlib-list))
+    (home-page "https://gitlab.com/joelostblom/session_info")
+    (synopsis "Output version information for modules currently loaded")
+    (description
+     "This package outputs version information for modules loaded in the current
+session, Python, and the OS.")
+    (license license:bsd-3)))
 
 (define-public python-mpmath
   (package
@@ -10517,9 +9541,6 @@ Python's float/complex types and math/cmath modules, but also does much
 more advanced mathematics.")
     (license license:bsd-3)))
 
-(define-public python2-mpmath
-  (package-with-python2 python-mpmath))
-
 (define-public python-bigfloat
   (package
     (name "python-bigfloat")
@@ -10621,17 +9642,6 @@ full-featured computer algebra system (CAS) while keeping the code as simple
 as possible in order to be comprehensible and easily extensible.")
     (license license:bsd-3)))
 
-(define-public python2-sympy
-  (package
-    (inherit (package-with-python2 python-sympy))
-    (version "1.5.1")  ; last release for python2
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "sympy" version))
-       (sha256
-        (base32 "0zjfbxlkazzh9z22gf62azrkipb2xw7mpzjz3wl1az9893bh2yfp"))))))
-
 (define-public python-q
   (package
     (name "python-q")
@@ -10652,9 +9662,6 @@ provides convenient short API for print out of values, tracebacks, and
 falling into the Python interpreter.")
     (license license:asl2.0)))
 
-(define-public python2-q
-  (package-with-python2 python-q))
-
 (define-public python-xlib
   (package
     (name "python-xlib")
@@ -10692,9 +9699,6 @@ X client library for Python programs.  It is useful to implement
 low-level X clients.  It is written entirely in Python.")
     (license license:gpl2+)))
 
-(define-public python2-xlib
-  (package-with-python2 python-xlib))
-
 (define-public python-singledispatch
   (package
     (name "python-singledispatch")
@@ -10717,9 +9721,6 @@ low-level X clients.  It is written entirely in Python.")
 2.6-3.3.")
     (license license:expat)))
 
-(define-public python2-singledispatch
-  (package-with-python2 python-singledispatch))
-
 ;; the python- version can be removed with python-3.5
 (define-public python-backports-abc
   (package
@@ -10740,9 +9741,6 @@ low-level X clients.  It is written entirely in Python.")
 @code{collections.abc} module in Python-3.5.")
     (license license:psfl)))
 
-(define-public python2-backports-abc
-  (package-with-python2 python-backports-abc))
-
 (define-public python-backports-csv
   (package
     (name "python-backports-csv")
@@ -10764,46 +9762,6 @@ This is due, for the most part, to the difference between str in
 Python 2 and Python 3.")
     (license license:psfl)))
 
-(define-public python2-backports-csv
-  (package
-    (inherit (package-with-python2 python-backports-csv))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ;; The sanity-check attempts attempts to import the non-existent
-         ;; module "backports".
-         (delete 'sanity-check))))))
-
-(define-public python2-backports-shutil-get-terminal-size
-  (package
-    (name "python2-backports-shutil-get-terminal-size")
-    (version "1.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "backports.shutil_get_terminal_size" version))
-       (sha256
-        (base32
-         "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "py.test" "-v"))))))
-    (native-inputs
-     (list python2-pytest))
-    (home-page "https://github.com/chrippa/backports.shutil_get_terminal_size")
-    (synopsis "Backport of Python 3.3's @code{shutil.get_terminal_size}")
-    (description
-     "This package provides a backport of the @code{get_terminal_size
-function} from Python 3.3's @code{shutil}.
-Unlike the original version it is written in pure Python rather than C,
-so it might be a tiny bit slower.")
-    (license license:expat)))
-
 (define-public python-waf
   (package
     (name "python-waf")
@@ -10844,9 +9802,6 @@ so it might be a tiny bit slower.")
 applications.")
     (license license:bsd-3)))
 
-(define-public python2-waf
-  (package-with-python2 python-waf))
-
 (define-public python-pyzmq
   (package
     (name "python-pyzmq")
@@ -11057,9 +10012,6 @@ application monitoring and error tracking software.")
 PEP 8.")
     (license license:expat)))
 
-(define-public python2-pep8
-  (package-with-python2 python-pep8))
-
 (define-public python-pep8-naming
   (package
     (name "python-pep8-naming")
@@ -11086,30 +10038,15 @@ plugin for flake8 to check PEP-8 naming conventions.")
     (inherit python-pep517-bootstrap)
     (name "python-pep517")
     (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (delete-file "pytest.ini")
-             ;; This test tries to connect to the internet
-             (delete-file "tests/test_meta.py")
-             (if tests?
-               (invoke "pytest")
-               #t))))))
-    (native-inputs
-     (list python-mock python-pytest python-testpath))
-    (properties `((python2-variant . ,(delay python2-pep517))))))
+     '(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key tests? #:allow-other-keys)
+                      (delete-file "pytest.ini")
+                      (delete-file "tests/test_meta.py")
+                      (if tests?
+                          (invoke "pytest") #t))))))
+    (native-inputs (list python-mock python-pytest python-testpath))))
 
-;; Skip the tests so we don't create a cyclical dependency with pytest.
-(define-public python2-pep517
-  (let ((base (package-with-python2
-                (strip-python2-variant python-pep517))))
-    (package/inherit base
-      (name "python2-pep517")
-      (arguments
-       `(#:tests? #f
-         ,@(package-arguments base)))
-      (native-inputs `()))))
 
 (define-public python-pep621
   (package
@@ -11179,9 +10116,6 @@ file (e.g. @file{PKG-INFO}).")
       "Pyflakes statically checks Python source code for common errors.")
     (license license:expat)))
 
-(define-public python2-pyflakes
-  (package-with-python2 python-pyflakes))
-
 (define-public python-pyflakes-2.2
   (package
     (inherit python-pyflakes)
@@ -11215,9 +10149,6 @@ file (e.g. @file{PKG-INFO}).")
 cyclomatic complexity of Python source code.")
     (license license:expat)))
 
-(define-public python2-mccabe
-  (package-with-python2 python-mccabe))
-
 (define-public python-flake8
   (package
     (name "python-flake8")
@@ -11230,35 +10161,20 @@ cyclomatic complexity of Python source code.")
                 "0y732h02n2aih8gzyfj4bbhg4jgahyv84mjwfindk2g6w45rka0s"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "pytest" "-v"))))))
-    (propagated-inputs
-     (list python-pycodestyle python-entrypoints python-pyflakes
-           python-mccabe))
-    (native-inputs
-     (list python-mock python-pytest))
+     `(#:phases (modify-phases %standard-phases
+                  (replace 'check
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (add-installed-pythonpath inputs outputs)
+                      (invoke "pytest" "-v"))))))
+    (propagated-inputs (list python-pycodestyle python-entrypoints
+                             python-pyflakes python-mccabe))
+    (native-inputs (list python-mock python-pytest))
     (home-page "https://gitlab.com/pycqa/flake8")
-    (synopsis
-      "The modular source code checker: pep8, pyflakes and co")
+    (synopsis "The modular source code checker: pep8, pyflakes and co")
     (description
-      "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
-    (properties `((python2-variant . ,(delay python2-flake8))))
+     "Flake8 is a wrapper around PyFlakes, pep8 and python-mccabe.")
     (license license:expat)))
 
-(define-public python2-flake8
-  (let ((base (package-with-python2 (strip-python2-variant python-flake8))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-configparser" ,python2-configparser)
-         ("python2-enum34" ,python2-enum34)
-         ("python2-functools32" ,python2-functools32)
-         ("python2-typing" ,python2-typing)
-          ,@(package-propagated-inputs base))))))
-
 (define-public python-flake8-3.8
   (package
     (inherit python-flake8)
@@ -11399,9 +10315,6 @@ unnecessary plus operators for explicit string literal concatenation.")
 plugins that intend to support Flake8 2.x and 3.x simultaneously.")
     (license license:expat)))
 
-(define-public python2-flake8-polyfill
-  (package-with-python2 python-flake8-polyfill))
-
 (define-public python-flake8-print
   (package
     (name "python-flake8-print")
@@ -11580,9 +10493,6 @@ It also removes useless @code{pass} statements.")
 Python.")
     (license license:bsd-3)))
 
-(define-public python2-mistune
-  (package-with-python2 python-mistune))
-
 ;; 2.0 is not released yet, but some packages have started using it.
 (define-public python-mistune-next
   (package
@@ -11618,21 +10528,8 @@ Python.")
 Markdown.  The library features international input, various Markdown
 extensions, and several HTML output formats.  A command line wrapper
 markdown_py is also provided to convert Markdown files to HTML.")
-    (properties `((python2-variant . ,(delay python2-markdown))))
     (license license:bsd-3)))
 
-;; Markdown 3.2 dropped support for Python 2.
-(define-public python2-markdown
-  (let ((base (package-with-python2 (strip-python2-variant python-markdown))))
-    (package
-      (inherit base)
-     (version "3.1.1")
-     (source (origin
-               (method url-fetch)
-               (uri (pypi-uri "Markdown" version))
-               (sha256
-                (base32
-                 "0yhylk4ffqqs7x086fav4pnfsl1021v7lghznzkififprmmqfl1f")))))))
 
 (define-public python-ptyprocess
   (package
@@ -11660,9 +10557,6 @@ markdown_py is also provided to convert Markdown files to HTML.")
 pseudo terminal (pty), and interact with both the process and its pty.")
     (license license:isc)))
 
-(define-public python2-ptyprocess
-  (package-with-python2 python-ptyprocess))
-
 (define-public python-cram
   (package
     (name "python-cram")
@@ -11722,9 +10616,6 @@ command and compares the command output in the test with the command’s actual
 output.")
     (license license:gpl2+)))
 
-(define-public python2-cram
-  (package-with-python2 python-cram))
-
 (define-public python-crccheck
   (package
     (name "python-crccheck")
@@ -11826,9 +10717,6 @@ almost any existing Python modules, and an easy way for outside developers to
 add functionality and customization to your projects with their own plugins.")
     (license license:expat)))
 
-(define-public python2-straight-plugin
-  (package-with-python2 python-straight-plugin))
-
 (define-public python-pysendfile
   (package
     (name "python-pysendfile")
@@ -11970,8 +10858,7 @@ supports reading and writing of TrueType/OpenType fonts, reading and writing
 of AFM files, reading (and partially writing) of PS Type 1 fonts.  The package
 also contains a tool called “TTX” which converts TrueType/OpenType fonts to and
 from an XML-based format.")
-     (license license:expat)
-     (properties `((python2-variant . ,(delay python2-fonttools)))))))
+     (license license:expat))))
 
 ;;; Rename 'python-fonttools' in next cycle, renaming the current
 ;;; 'python-fonttools' to 'python-fonttools-minimal'.
@@ -12011,19 +10898,6 @@ from an XML-based format.")
            python-zopfli))
     (properties (alist-delete 'hidden? (package-properties python-fonttools)))))
 
-;; Fonttools 4.x dropped support for Python 2, so stick with 3.x here.
-(define-public python2-fonttools
-  (let ((base (package-with-python2 (strip-python2-variant python-fonttools))))
-    (package
-      (inherit base)
-     (version "3.44.0")
-     (source (origin
-               (method url-fetch)
-               (uri (pypi-uri "fonttools" version ".zip"))
-               (sha256
-                (base32
-                 "0v6399g755f2hn1ry62i5b6gdinf2fpx2966v3bxh6bjw1accb5p")))))))
-
 (define-public python-fonttools-next
   (package
     (inherit python-fonttools-full)
@@ -12078,9 +10952,6 @@ provided that can be used to do various manipulations with LilyPond files.")
 should be stored on various operating systems.")
     (license license:expat)))
 
-(define-public python2-appdirs
-  (package-with-python2 python-appdirs))
-
 (define-public python-gorilla
   (package
     (name "python-gorilla")
@@ -12195,9 +11066,6 @@ reading and writing MessagePack data.")
                  ((".fromstring\\(") ".frombytes("))
                #t))))))))
 
-(define-public python2-msgpack
-  (package-with-python2 python-msgpack))
-
 (define-public python-netaddr
   (package
     (name "python-netaddr")
@@ -12218,44 +11086,6 @@ reading and writing MessagePack data.")
 and MAC network addresses.")
     (license license:bsd-3)))
 
-(define-public python2-netaddr
-  (package-with-python2 python-netaddr))
-
-(define-public python2-pyroute2
-  (package
-    (name "python2-pyroute2")
-    (version "0.5.6")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "pyroute2" version))
-       (sha256
-        (base32
-         "1gmz4r1w0yzj6fjjypnalmfyy0lnfznydyn62gi3wk50j5hhxbny"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))                       ;Python 3.x is not supported
-    (home-page "https://github.com/svinota/pyroute2")
-    (synopsis "Python netlink library")
-    (description
-     "Pyroute2 is a pure Python netlink library with minimal dependencies.
-Supported netlink families and protocols include:
-@itemize
-@item rtnl, network settings - addresses, routes, traffic controls
-@item nfnetlink - netfilter API: ipset, nftables, ...
-@item ipq - simplest userspace packet filtering, iptables QUEUE target
-@item devlink - manage and monitor devlink-enabled hardware
-@item generic - generic netlink families
-  @itemize
-  @item nl80211 - wireless functions API (basic support)
-  @item taskstats - extended process statistics
-  @item acpi_events - ACPI events monitoring
-  @item thermal_events - thermal events monitoring
-  @item VFS_DQUOT - disk quota events monitoring
-  @end itemize
-@end itemize")
-    (license license:gpl2+)))
-
 (define-public python-wrapt
   (package
     (name "python-wrapt")
@@ -12280,9 +11110,6 @@ Supported netlink families and protocols include:
   wrappers and decorator functions.")
     (license license:bsd-2)))
 
-(define-public python2-wrapt
-  (package-with-python2 python-wrapt))
-
 (define-public python-commentjson
   (package
     (name "python-commentjson")
@@ -12436,9 +11263,6 @@ spreadsheets using Microsoft Excel proprietary file formats @samp{.xls} and
 Unicode-aware.  It is not intended as an end-user tool.")
     (license license:bsd-3)))
 
-(define-public python2-xlrd
-  (package-with-python2 python-xlrd))
-
 ;;; Note: this package is unmaintained since 2018 (archived on GitHub).
 (define-public python-xlwt
   (package
@@ -12511,9 +11335,6 @@ independent alignment of columns (left or right justified or centred) and
 printing of sub-tables by specifying a row range.")
     (license license:bsd-3)))
 
-(define-public python2-prettytable
-  (package-with-python2 python-prettytable))
-
 (define-public python-curio
   (package
     (name "python-curio")
@@ -12908,9 +11729,6 @@ primary use case is APIs defined before keyword-only parameters existed.")
 suitable for a wide range of protocols based on the ASN.1 specification.")
     (license license:bsd-2)))
 
-(define-public python2-pyasn1
-  (package-with-python2 python-pyasn1))
-
 (define-public python-pyasn1-modules
   (package
     (name "python-pyasn1-modules")
@@ -12932,9 +11750,6 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
 implementations of ASN.1-based codecs and protocols.")
     (license license:bsd-3)))
 
-(define-public python2-pyasn1-modules
-  (package-with-python2 python-pyasn1-modules))
-
 (define-public python-ipaddress
   (package
     (name "python-ipaddress")
@@ -12954,9 +11769,6 @@ implementations of ASN.1-based codecs and protocols.")
  IPv6 addresses and networks.")
     (license license:psfl)))
 
-(define-public python2-ipaddress
-  (package-with-python2 python-ipaddress))
-
 (define-public python-asn1tools
   (package
     (name "python-asn1tools")
@@ -12979,34 +11791,6 @@ codecs (e.g. BER, PER, UPER, XER) as well as limited C source code generating
 for OER and UPER.")
     (license license:expat)))
 
-(define-public python2-ipaddr
-  (package
-    (name "python2-ipaddr")
-    (version "2.1.11")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "ipaddr" version))
-       (sha256
-        (base32 "1dwq3ngsapjc93fw61rp17fvzggmab5x1drjzvd4y4q0i255nm8v"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2                         ;version 2 only
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _ (invoke "python" "ipaddr_test.py"))))))
-    (home-page "https://github.com/google/ipaddr-py")
-    (synopsis "IP address manipulation library")
-    (description
-     "Ipaddr is a Python@tie{}2 library for creating and manupilating IPv4 and
-IPv6 addresses and networks.
-
-For new implementations you may prefer to use the standard module
-@code{ipaddress}, which was introduced in Python 3.3 and backported to older
-versions of Python.")
-    (license license:asl2.0)))
-
 (define-public python-idna
   (package
     (name "python-idna")
@@ -13029,21 +11813,8 @@ from the earlier standard from 2003.  The library is also intended to act as a
 suitable drop-in replacement for the “encodings.idna” module that comes with
 the Python standard library but currently only supports the older 2003
 specification.")
-    (properties `((python2-variant . ,(delay python2-idna))))
     (license license:bsd-4)))
 
-(define-public python2-idna
-  (let ((base (package-with-python2 (strip-python2-variant python-idna))))
-    (package
-      (inherit base)
-      (version "2.10")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "idna" version))
-                (sha256
-                 (base32
-                  "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))))))
-
 (define-public python-libsass
   (package
     (name "python-libsass")
@@ -13213,9 +11984,6 @@ fakes, or doubles.  Basically, a stub is an object that returns pre-canned
 responses, rather than doing any computation.")
     (license license:bsd-3)))
 
-(define-public python2-pretend
-  (package-with-python2 python-pretend))
-
 (define-public python-pip
   (package
     (name "python-pip")
@@ -13237,9 +12005,6 @@ responses, rather than doing any computation.")
 Python Package Index (PyPI).")
     (license license:expat)))
 
-(define-public python2-pip
-  (package-with-python2 python-pip))
-
 ;;; Variant used to break a dependency cycle with
 ;;; python-pytest-perf-bootstrap.
 (define-public python-pip-run-bootstrap
@@ -13361,11 +12126,6 @@ of complexity; for example, a byte stream of identical bytes will not generate
 a hash value.")
     (license license:asl2.0)))
 
-(define-public python2-tlsh
-  (package/inherit python-tlsh
-    (name "python2-tlsh")
-    (inputs `(("python" ,python-2)))))
-
 (define-public python-termcolor
   (package
     (name "python-termcolor")
@@ -13387,9 +12147,6 @@ a hash value.")
      "This package provides ANSII Color formatting for output in terminals.")
     (license license:expat)))
 
-(define-public python2-termcolor
-  (package-with-python2 python-termcolor))
-
 (define-public python-terminaltables
   (package
     (name "python-terminaltables")
@@ -13446,9 +12203,6 @@ access possibly compressed archives in many different formats.  It uses
 Python's @code{ctypes} foreign function interface (FFI).")
     (license license:lgpl2.0+)))
 
-(define-public python2-libarchive-c
-  (package-with-python2 python-libarchive-c))
-
 (define-public python-file
   (package/inherit file
     (name "python-file")
@@ -13481,9 +12235,6 @@ Note that this module and the @code{python-magic} module both provide a
 developed separately, both serve the same purpose: provide Python bindings for
 libmagic.")))
 
-(define-public python2-file
-  (package-with-python2 python-file))
-
 (define-public python-pydevd
   ;; Use the latest commit, which includes cleanups that removes Python 2
   ;; syntax that would fail to build.
@@ -13737,9 +12488,13 @@ JSON Reference and JSON Pointer.")
      (origin
        (method url-fetch)
        (uri (pypi-uri "fastbencode" version))
+       (modules '((guix build utils)))
+       ;; Delete pre-generated Cython C files.
+       (snippet '(for-each delete-file (find-files "." "\\.c$")))
        (sha256
         (base32 "1r66w3vpmvfmssshjpgqaj2m14c8p94nymr96mwn61idajz9mg5n"))))
     (build-system python-build-system)
+    (native-inputs (list python-cython))
     (home-page "https://github.com/breezy-team/fastbencode")
     (synopsis "Python Bencode (de)serializer with optional fast C extensions")
     (description
@@ -13905,15 +12660,7 @@ objects with some common interface.  The most common examples are
 @code{console_scripts} entry points, which define shell commands by
 identifying a Python function to run.  The @code{entrypoints} module contains
 functions to find and load entry points.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-entrypoints))))))
-
-(define-public python2-entrypoints
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-entrypoints)))
-    (propagated-inputs
-     (list python2-configparser))))
+    (license license:expat)))
 
 (define-public python-epc
   (package
@@ -14440,9 +13187,6 @@ simulation, statistical modeling, machine learning and much more.")
 automatically detect a wide range of file encodings.")
     (license license:lgpl2.1+)))
 
-(define-public python2-chardet
-  (package-with-python2 python-chardet))
-
 (define-public python-charset-normalizer
   (package
     (name "python-charset-normalizer")
@@ -14518,9 +13262,6 @@ programmatically with command-line parsers like @code{getopt} and
 @code{argparse}.")
     (license license:expat)))
 
-(define-public python2-docopt
-  (package-with-python2 python-docopt))
-
 (define-public python-pythonanywhere
   (package
     (name "python-pythonanywhere")
@@ -14573,48 +13314,33 @@ tasks.  It includes single-command deployment for the Django Girls tutorial.")
   (package
     (name "python-pythondialog")
     (version "3.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "pythondialog" version))
-       (sha256
-        (base32
-         "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pythondialog" version))
+              (sha256
+               (base32
+                "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
     (build-system python-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((dialog (assoc-ref inputs "dialog")))
-               ;; Since this library really wants to grovel the search path, we
-               ;; must hardcode dialog's store path into it.
-               (substitute* "dialog.py"
-                 (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)")
-                  (string-append "os.getenv(\"PATH\")  + \":" dialog "/bin\"")))
-               #t))))
-       #:tests? #f)) ; no test suite
-    (propagated-inputs
-     (list dialog))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-path
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (let* ((dialog (assoc-ref inputs "dialog")))
+                        (substitute* "dialog.py"
+                          (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)") (string-append
+                                                                            "os.getenv(\"PATH\")  + \":"
+                                                                            dialog
+                                                                            "/bin\"")))
+                        #t))))
+       #:tests? #f))
+    (propagated-inputs (list dialog))
     (home-page "http://pythondialog.sourceforge.net/")
     (synopsis "Python interface to the UNIX dialog utility")
-    (description "A Python wrapper for the dialog utility.  Its purpose is to
+    (description
+     "A Python wrapper for the dialog utility.  Its purpose is to
 provide an easy to use, pythonic and comprehensive Python interface to dialog.
 This allows one to make simple text-mode user interfaces on Unix-like systems")
-    (license license:lgpl2.1)
-    (properties `((python2-variant . ,(delay python2-pythondialog))))))
-
-(define-public python2-pythondialog
-  (let ((base (package-with-python2 (strip-python2-variant python-pythondialog))))
-    (package
-      (inherit base)
-      (version (package-version python-pythondialog))
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "python2-pythondialog" version))
-                (sha256
-                 (base32
-                  "0d8k7lxk50imdyx85lv8j98i4c93a71iwpapnl1506rpkbm9qvd9")))))))
+    (license license:lgpl2.1)))
 
 (define-public python-configobj
   (package
@@ -14640,9 +13366,6 @@ config files.")
     (home-page "https://github.com/DiffSK/configobj")
     (license license:bsd-3)))
 
-(define-public python2-configobj
-  (package-with-python2 python-configobj))
-
 (define-public python-configargparse
   (package
     (name "python-configargparse")
@@ -14729,34 +13452,8 @@ connection pool.")
 provides utilities for common tasks involving decorators and context
 managers.  It also contains additional features that are not part of
 the standard library.")
-    (properties `((python2-variant . ,(delay python2-contextlib2))))
     (license license:psfl)))
 
-(define-public python2-contextlib2
-  (let ((base (package-with-python2
-               (strip-python2-variant python-contextlib2))))
-    (package/inherit base
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-           (replace 'check
-             (lambda _ (invoke "python" "test_contextlib2.py" "-v")))))))
-      (native-inputs
-       `(("python2-unittest2" ,python2-unittest2))))))
-
-;; This package is used by python2-pytest via python2-importlib-metadata,
-;; and thus can not depend on python-unittest2 (which depends on pytest).
-(define-public python2-contextlib2-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-contextlib2
-    (name "python2-contextlib2-bootstrap")
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-contextlib2)))
-    (native-inputs '()))))
-
 (define-public python-texttable
   (package
     (name "python-texttable")
@@ -14783,9 +13480,6 @@ the standard library.")
 tables.")
     (license license:expat)))
 
-(define-public python2-texttable
-  (package-with-python2 python-texttable))
-
 (define-public python-atomicwrites
   (package
     (name "python-atomicwrites")
@@ -14804,9 +13498,6 @@ for atomic file system operations.")
     (home-page "https://github.com/untitaker/python-atomicwrites")
     (license license:expat)))
 
-(define-public python2-atomicwrites
-  (package-with-python2 python-atomicwrites))
-
 (define-public python-atomicwrites-1.4
   (package
     (inherit python-atomicwrites)
@@ -15009,9 +13700,6 @@ minimal and fast API targeting the following uses:
     (home-page "https://codespeak.net/execnet/")
     (license license:expat)))
 
-(define-public python2-execnet
-  (package-with-python2 python-execnet))
-
 (define-public python-icalendar
   (package
     (name "python-icalendar")
@@ -15048,9 +13736,6 @@ files for use with Python.")
      "This library provides a Python module to parse command-line arguments.")
     (license license:bsd-3)))
 
-(define-public python2-args
-  (package-with-python2 python-args))
-
 (define-public python-clint
   (package
     (name "python-clint")
@@ -15079,9 +13764,6 @@ command-line applications, including tools for colored and indented
 output, progress bar display, and pipes.")
     (license license:isc)))
 
-(define-public python2-clint
-  (package-with-python2 python-clint))
-
 (define-public python-rply
   (package
     (name "python-rply")
@@ -15103,9 +13785,6 @@ works with RPython.  It is a more-or-less direct port of David Bazzley's PLY,
 with a new public API, and RPython support.")
     (license license:bsd-3)))
 
-(define-public python2-rply
-  (package-with-python2 python-rply))
-
 (define-public python-hy
   (package
     (name "python-hy")
@@ -15162,95 +13841,6 @@ functional subset of Python—Syntactic macro metaprogramming with full access
 to the Python ecosystem.")
     (license license:asl2.0)))
 
-(define-public python2-functools32
-  (package
-    (name "python2-functools32")
-    (version "3.2.3-2")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "functools32" version))
-        (sha256
-         (base32
-          "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f)) ; no test target
-    (home-page "https://github.com/MiCHiLU/python-functools32")
-    (synopsis
-     "Backport of the functools module from Python 3.2.3")
-    (description
-     "This package is a backport of the @code{functools} module from Python
-3.2.3 for use with older versions of Python and PyPy.")
-    (license license:expat)))
-
-(define-public python2-subprocess32
-  (package
-    (name "python2-subprocess32")
-    (version "3.2.7")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "subprocess32" version))
-              (sha256
-               (base32
-                "14350dhhlhyz5gqzi3lihn9m6lvskx5mcb20srx1kgsk9i50li8y"))
-              (patches
-               (search-patches "python2-subprocess32-disable-input-test.patch"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       ;; The test suite fails with Python > 2.7.13:
-       ;;     import test.support
-       ;; ImportError: No module named support
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-/bin/sh
-           (lambda _
-             (substitute* '("subprocess32.py"
-                            "test_subprocess32.py")
-               (("/bin/sh") (which "sh")))
-             #t)))))
-    (home-page "https://github.com/google/python-subprocess32")
-    (synopsis "Backport of the subprocess module from Python 3.2")
-    (description
-     "This is a backport of the @code{subprocess} standard library module
-from Python 3.2 and 3.3 for use on Python 2.  It includes bugfixes and some
-new features.  On POSIX systems it is guaranteed to be reliable when used
-in threaded applications.  It includes timeout support from Python 3.3 but
-otherwise matches 3.2’s API.")
-    (license license:psfl)))
-
-(define-public python2-futures
-  (package
-    (name "python2-futures")
-    (version "3.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (pypi-uri "futures" version))
-        (sha256
-         (base32
-          "0rdjmmsab550kxsssdq49jcniz77zlkpw4pvi9hvib3lsskjmh4y"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "python" "test_futures.py")
-             #t)))))
-    (home-page "https://github.com/agronholm/pythonfutures")
-    (synopsis
-     "Backport of the concurrent.futures package from Python 3.2")
-    (description
-     "The concurrent.futures module provides a high-level interface for
-asynchronously executing callables.  This package backports the
-concurrent.futures package from Python 3.2")
-    (license license:bsd-3)))
-
 (define-public python-promise
   (package
     (name "python-promise")
@@ -15342,9 +13932,6 @@ text.")
    (home-page "https://pypi.org/project/colorama/")
    (license license:bsd-3)))
 
-(define-public python2-colorama
-  (package-with-python2 python-colorama))
-
 ;; awscli and botocore do not accept version 0.4.4
 (define-public python-colorama-for-awscli
   (package
@@ -15455,9 +14042,6 @@ library as well as on the command line.")
    (home-page "https://stuvel.eu/rsa")
    (license license:asl2.0)))
 
-(define-public python2-rsa
-  (package-with-python2 python-rsa))
-
 (define-public python-pluggy
   (package
    (name "python-pluggy")
@@ -15476,31 +14060,8 @@ library as well as on the command line.")
    (description "Pluggy is an extraction of the plugin manager as used by
 Pytest but stripped of Pytest specific details.")
    (home-page "https://pypi.org/project/pluggy/")
-   (properties `((python2-variant . ,(delay python2-pluggy))))
    (license license:expat)))
 
-(define-public python2-pluggy
-  (let ((base (package-with-python2 (strip-python2-variant
-                                     python-pluggy))))
-    (package/inherit
-     base
-     (propagated-inputs
-      `(("python-importlib-metadata" ,python2-importlib-metadata))))))
-
-;; This package requires python2-importlib-metadata, but that package
-;; ends up needing python2-pluggy via python2-pytest, so we need this
-;; variant to solve the circular dependency.
-(define-public python2-pluggy-bootstrap
-  (hidden-package
-   (package/inherit
-    python2-pluggy
-    (name "python2-pluggy-bootstrap")
-    (arguments
-     `(#:tests? #f
-       ,@(package-arguments python2-pluggy)))
-    (propagated-inputs
-     `(("python-importlib-metadata" ,python2-importlib-metadata-bootstrap))))))
-
 (define-public python-plumbum
   (package
     (name "python-plumbum")
@@ -15775,9 +14336,6 @@ This software is unmaintained, and new projects should use @code{boto3} instead.
 interface to the Amazon Web Services (AWS) API.")
     (license license:asl2.0)))
 
-(define-public python2-botocore
-  (package-with-python2 python-botocore))
-
 (define-public python-boto3
   (package
     (name "python-boto3")
@@ -15874,9 +14432,6 @@ input.  (Note that this is mostly a legacy library; you may wish to look at
 python-xdo for newer bindings.)")
     (license license:bsd-3)))
 
-(define-public python2-xdo
-  (package-with-python2 python-xdo))
-
 (define-public python-xdoctest
   (package
     (name "python-xdoctest")
@@ -15937,9 +14492,6 @@ of @acronym{REGEXPs, regular expressions}.")
 templates into Python modules.")
     (license license:expat)))
 
-(define-public python2-mako
-  (package-with-python2 python-mako))
-
 (define-public python-waitress
   (package
     (name "python-waitress")
@@ -15959,9 +14511,6 @@ templates into Python modules.")
 server with very acceptable performance.")
     (license license:zpl2.1)))
 
-(define-public python2-waitress
-  (package-with-python2 python-waitress))
-
 (define-public python-whichcraft
   (package
     (name "python-whichcraft")
@@ -16066,17 +14615,7 @@ fast xml and html manipulation.")
     (description
      "Anyjson loads whichever is the fastest JSON module installed
 and provides a uniform API regardless of which JSON implementation is used.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-anyjson))))))
-
-(define-public python2-anyjson
-  (let ((anyjson (package-with-python2
-                  (strip-python2-variant python-anyjson))))
-    (package/inherit anyjson
-      (arguments `(;; Unlike the python 3 variant, we do run tests.  See above!
-                   #:tests? #t
-                   ,@(package-arguments anyjson)))
-      (native-inputs `(("python2-nose" ,python2-nose))))))
+    (license license:bsd-3)))
 
 (define-public python-amqp
   (package
@@ -16312,9 +14851,6 @@ best-effort representations using smaller coded character sets (ASCII,
 ISO 8859, etc.).")
     (license license:expat)))
 
-(define-public python2-translitcodec
-  (package-with-python2 python-translitcodec))
-
 (define-public python-anyqt
   (package
     (name "python-anyqt")
@@ -16446,9 +14982,6 @@ by providing an implementation of the PEP 3156 event-loop.")
 programmatically interfacing with your system's $EDITOR.")
   (license license:asl2.0)))
 
-(define-public python2-editor
-  (package-with-python2 python-editor))
-
 (define-public python-multiprocessing-logging
   (package
     (name "python-multiprocessing-logging")
@@ -16496,9 +15029,6 @@ way.")
     (home-page "https://eventable.github.io/vobject/")
     (license license:asl2.0)))
 
-(define-public python2-vobject
-  (package-with-python2 python-vobject))
-
 (define-public python-munkres
   (package
     (name "python-munkres")
@@ -16540,14 +15070,6 @@ useful for solving the Assignment Problem.")
 checking library.")
     (license license:bsd-2)))
 
-(define-public python2-whoosh
-  (let ((whoosh (package-with-python2 (strip-python2-variant python-whoosh))))
-    (package/inherit whoosh
-      (propagated-inputs
-       `(("python2-backport-ssl-match-hostname"
-          ,python2-backport-ssl-match-hostname)
-          ,@(package-propagated-inputs whoosh))))))
-
 (define-public python-codespell
   (package
     (name "python-codespell")
@@ -16626,56 +15148,6 @@ standard library module.  This module (python-pathlib) isn't maintained
 anymore.")
     (license license:expat)))
 
-(define-public python2-pathlib
-  (package-with-python2 python-pathlib))
-
-(define-public python2-pathlib2
-  (package
-    (name "python2-pathlib2")
-    (version "2.3.5")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "pathlib2" version))
-              (sha256
-               (base32
-                "0s4qa8c082fdkb17izh4mfgwrjd1n5pya18wvrbwqdvvb5xs9nbc"))))
-    (build-system python-build-system)
-    ;; We only need the the Python 2 variant, since for Python 3 our minimum
-    ;; version is 3.4 which already includes this package as part of the
-    ;; standard library.
-    (arguments
-     `(#:python ,python-2))
-    (propagated-inputs
-     (list python2-scandir python2-six))
-    (home-page "https://pypi.org/project/pathlib2/")
-    (synopsis "Object-oriented file system paths - backport of standard
-pathlib module")
-    (description "The goal of pathlib2 is to provide a backport of standard
-pathlib module which tracks the standard library module, so all the newest
-features of the standard pathlib can be used also on older Python versions.
-
-Pathlib offers a set of classes to handle file system paths.  It offers the
-following advantages over using string objects:
-
-@enumerate
-@item No more cumbersome use of os and os.path functions.  Everything can
-be done easily through operators, attribute accesses, and method calls.
-@item Embodies the semantics of different path types.  For example,
-comparing Windows paths ignores casing.
-@item Well-defined semantics, eliminating any inconsistencies or
-ambiguities (forward vs. backward slashes, etc.).
-@end enumerate")
-    (license license:expat)))
-
-(define-public python2-pathlib2-bootstrap
-  (hidden-package
-   (package
-     (inherit python2-pathlib2)
-     (name "python2-pathlib2-bootstrap")
-     (propagated-inputs
-      `(("python2-scandir" ,python2-scandir)
-        ("python2-six" ,python2-six-bootstrap))))))
-
 (define-public python-jellyfish
   (package
     (name "python-jellyfish")
@@ -16704,33 +15176,6 @@ ambiguities (forward vs. backward slashes, etc.).
 encoding algorithms to do fuzzy string matching.")
     (license license:bsd-2)))
 
-(define-public python2-unicodecsv
-  (package
-    (name "python2-unicodecsv")
-    (version "0.14.1")
-    (source (origin
-             (method git-fetch)
-             ;; The test suite is not included in the PyPi release.
-             ;; https://github.com/jdunck/python-unicodecsv/issues/19
-             (uri (git-reference
-                    (url "https://github.com/jdunck/python-unicodecsv")
-                    (commit version)))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "15hx2k41a2lpv4hcml9zp4cvlx1171mnb5s4s13xc1pxkq3vgdjy"))))
-    (build-system python-build-system)
-    (arguments
-     `(;; It supports Python 3, but Python 3 can already do Unicode CSV.
-       #:python ,python-2))
-    (native-inputs
-     (list python2-unittest2))
-    (home-page "https://github.com/jdunck/python-unicodecsv")
-    (synopsis "Unicode CSV module for Python 2")
-    (description "Unicodecsv is a drop-in replacement for Python 2.7's CSV
-module, adding support for Unicode strings.")
-    (license license:bsd-2)))
-
 (define-public python-pdfminer-six
   (package
     (name "python-pdfminer-six")
@@ -16907,46 +15352,6 @@ modules, which are different and were developed separately, both serve
 the same purpose: to provide Python bindings for libmagic.")
     (license license:expat)))
 
-(define-public python2-magic
-  (package-with-python2 python-magic))
-
-(define-public python2-s3cmd
-  (package
-    (name "python2-s3cmd")
-    (version "1.6.1")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://sourceforge/s3tools/s3cmd/" version "/"
-                            "s3cmd-" version ".tar.gz"))
-        (sha256
-          (base32
-            "0ki1rzhm5icvi9ry5jswi4b22yqwyj0d2wsqsgilwx6qhi7pjxa6"))))
-    (build-system python-build-system)
-    (arguments
-     ;; s3cmd is written for python2 only and contains no tests.
-     `(#:python ,python-2
-       #:tests? #f))
-    (propagated-inputs
-     (list python2-dateutil
-           ;; The python-file package also provides a magic.py module.
-           ;; This is an unfortunate state of affairs; however, s3cmd
-           ;; fails to install if it cannot find specifically the
-           ;; python-magic package.  Thus we include it, instead of using
-           ;; python-file.  Ironically, s3cmd sometimes works better
-           ;; without libmagic bindings at all:
-           ;; https://github.com/s3tools/s3cmd/issues/198
-           python2-magic))
-    (home-page "https://s3tools.org/s3cmd")
-    (synopsis "Command line tool for S3-compatible storage services")
-    (description
-     "S3cmd is a command line tool for uploading, retrieving and managing data
-in storage services that are compatible with the Amazon Simple Storage
-Service (S3) protocol, including S3 itself.  It supports rsync-like backup,
-GnuPG encryption, and more.  It also supports management of Amazon's
-CloudFront content delivery network.")
-    (license license:gpl2+)))
-
 (define-public python-pkgconfig
   (package
     (name "python-pkgconfig")
@@ -16983,9 +15388,6 @@ check if a package meets certain version requirements, query CFLAGS and
 LDFLAGS and parse the output to build extensions with setup.py.")
     (license license:expat)))
 
-(define-public python2-pkgconfig
-  (package-with-python2 python-pkgconfig))
-
 (define-public python-bz2file
   (package
     (name "python-bz2file")
@@ -17009,9 +15411,6 @@ standard library's @code{bz2} module, including features from the latest
 development version of CPython that are not available in older releases.")
     (license license:asl2.0)))
 
-(define-public python2-bz2file
-  (package-with-python2 python-bz2file))
-
 (define-public python-future
   (package
     (name "python-future")
@@ -17053,9 +15452,6 @@ Python 3.  It allows you to use a single, clean Python 3.x-compatible codebase
 to support both Python 2 and Python 3 with minimal overhead.")
     (license license:expat)))
 
-(define-public python2-future
-  (package-with-python2 python-future))
-
 (define-public python-cysignals
   (package
     (name "python-cysignals")
@@ -17096,47 +15492,6 @@ for mixed Cython/Python code or external C libraries and pure Cython code,
 respectively.")
     (license license:lgpl3+)))
 
-(define-public python2-cysignals
-  (package-with-python2 python-cysignals))
-
-(define-public python2-shedskin
- (package
-  (name "python2-shedskin")
-  (version "0.9.4")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "https://github.com/shedskin/shedskin/"
-                          "releases/download/v" version
-                          "/shedskin-" version ".tgz"))
-      (sha256
-        (base32
-          "0nzwrzgw1ga8rw6f0ryq7zr9kkiavd1cqz5hzxkcbicl1dk7kz41"))))
-  (build-system python-build-system)
-  (arguments
-   `(#:python ,python-2
-     #:phases (modify-phases %standard-phases
-               (add-after 'unpack 'fix-resulting-include-libs
-                (lambda* (#:key inputs #:allow-other-keys)
-                 (let ((libgc (assoc-ref inputs "libgc"))
-                       (pcre (assoc-ref inputs "pcre")))
-                  (substitute* "shedskin/makefile.py"
-                   (("variable == 'CCFLAGS':[ ]*")
-                    (string-append "variable == 'CCFLAGS':\n"
-                                   "            line += ' -I " pcre "/include"
-                                   " -I " libgc "/include'"))
-                   (("variable == 'LFLAGS':[ ]*")
-                    (string-append "variable == 'LFLAGS':\n"
-                                   "            line += ' -L" pcre "/lib"
-                                   " -L " libgc "/lib'")))
-                  #t))))))
-  (inputs (list pcre libgc))
-  (home-page "https://shedskin.github.io/")
-  (synopsis "Experimental Python-2 to C++ Compiler")
-  (description (string-append "This is an experimental compiler for a subset of
-Python.  It generates C++ code and a Makefile."))
-  (license (list license:gpl3 license:bsd-3 license:expat))))
-
 (define-public python-rope
   (package
     (name "python-rope")
@@ -17223,9 +15578,6 @@ multiple processes (imagine multiprocessing, billiard, futures, celery etc).
 @end enumerate\n")
     (license license:bsd-3)))
 
-(define-public python2-tblib
-  (package-with-python2 python-tblib))
-
 (define-public python-tftpy
   (package
     (name "python-tftpy")
@@ -17300,9 +15652,6 @@ are synchronized with data exchanges on \"channels\".")
 graphviz.")
     (license license:expat)))
 
-(define-public python2-objgraph
-  (package-with-python2 python-objgraph))
-
 (define-public python-gevent
   (package
     (name "python-gevent")
@@ -17555,9 +15904,6 @@ It uses LR parsing and does extensive error checking.")
 data in Python.")
     (license license:expat)))
 
-(define-public python2-tabulate
-  (package-with-python2 python-tabulate))
-
 (define-public python-kazoo
   (package
     (name "python-kazoo")
@@ -17581,9 +15927,6 @@ application service.  It is designed to be easy to use and to avoid common
 programming errors.")
     (license license:asl2.0)))
 
-(define-public python2-kazoo
-  (package-with-python2 python-kazoo))
-
 (define-public python-pykafka
   (package
     (name "python-pykafka")
@@ -17628,32 +15971,6 @@ Python implementation of the @code{wcwidth} and @code{wcswidth} C functions
 specified in POSIX.1-2001 and POSIX.1-2008.")
     (license license:expat)))
 
-(define-public python2-wcwidth
-  (package-with-python2 python-wcwidth))
-
-(define-public python2-jsonrpclib
-  (package
-    (name "python2-jsonrpclib")
-    (version "0.1.7")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "jsonrpclib" version))
-              (sha256
-               (base32
-                "02vgirw2bcgvpcxhv5hf3yvvb4h5wzd1lpjx8na5psdmaffj6l3z"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f
-       #:python ,python-2))
-    (home-page "https://github.com/joshmarshall/jsonrpclib/")
-    (synopsis "Implementation of JSON-RPC specification for Python")
-    (description
-     "This library is an implementation of the JSON-RPC specification.
-It supports both the original 1.0 specification, as well as the
-new (proposed) 2.0 spec, which includes batch submission, keyword arguments,
-etc.")
-    (license license:asl2.0)))
-
 (define-public python-chai
   (package
     (name "python-chai")
@@ -17694,9 +16011,6 @@ and pluralizes English words, and transforms strings from CamelCase to
 underscored string.")
     (license license:expat)))
 
-(define-public python2-inflection
-  (package-with-python2 python-inflection))
-
 (define-public python-pylev
   (package
     (name "python-pylev")
@@ -17715,9 +16029,6 @@ Wikipedia code samples at
 @url{http://en.wikipedia.org/wiki/Levenshtein_distance}.")
     (license license:bsd-3)))
 
-(define-public python2-pylev
-  (package-with-python2 python-pylev))
-
 (define-public python-cleo
   (package
     (name "python-cleo")
@@ -17741,9 +16052,6 @@ Wikipedia code samples at
 docstring and colored output.")
     (license license:expat)))
 
-(define-public python2-cleo
-  (package-with-python2 python-cleo))
-
 (define-public python-tomlkit
   (package
     (name "python-tomlkit")
@@ -17861,18 +16169,8 @@ useful to combine multiple data objects as one.")
     (description
      "CliKit is a group of utilities to build testable command line
 interfaces.")
-    (properties `((python2-variant . ,(delay python2-clikit))))
     (license license:expat)))
 
-(define-public python2-clikit
-  (let ((base (package-with-python2 (strip-python2-variant python-clikit))))
-    (package/inherit
-     base
-     (propagated-inputs
-      `(("python-enum34" ,python2-enum34)
-        ("python-typing" ,python2-typing)
-        ,@(package-propagated-inputs base))))))
-
 (define-public python-msgpack-python
   (package
     (name "python-msgpack-python")
@@ -18096,9 +16394,6 @@ inspection of types defined in the Python standard typing module.")
 until the object is actually required, and caches the result of said call.")
     (license license:bsd-2)))
 
-(define-public python2-lazy-object-proxy
-  (package-with-python2 python-lazy-object-proxy))
-
 (define-public python-dnspython
   (package
     (name "python-dnspython")
@@ -18146,9 +16441,6 @@ It supports TSIG authenticated messages and EDNS0.")
                 "1yaw7irazy42n0kdhlk7wyg8ki34rxcnc5xbc1wfwy245b0wbxab"))))
     (native-inputs '())))
 
-(define-public python2-dnspython-1.16
-  (package-with-python2 python-dnspython-1.16))
-
 (define-public python-py3dns
   (package
     (name "python-py3dns")
@@ -18207,9 +16499,6 @@ simple, lightweight implementation.")
      "This library validates email address syntax and deliverability.")
     (license license:cc0)))
 
-(define-public python2-email-validator
-  (package-with-python2 python-email-validator))
-
 (define-public python-ukpostcodeparser
   (package
     (name "python-ukpostcodeparser")
@@ -18243,9 +16532,6 @@ simple, lightweight implementation.")
 parsing UK postcodes.")
     (license license:expat)))
 
-(define-public python2-ukpostcodeparser
-  (package-with-python2 python-ukpostcodeparser))
-
 (define-public python-faker
   (package
     (name "python-faker")
@@ -18300,9 +16586,6 @@ addresses, and phone numbers.")
 YAML-serialized data.")
     (license license:wtfpl2)))
 
-(define-public python2-pyaml
-  (package-with-python2 python-pyaml))
-
 (define-public python-pyyaml-env-tag
   (package
     (name "python-pyyaml-env-tag")
@@ -18343,9 +16626,6 @@ environment variables in YAML files.")
 collections of data.")
     (license license:expat)))
 
-(define-public python2-backpack
-  (package-with-python2 python-backpack))
-
 (define-public python-prompt-toolkit
   (package
     (name "python-prompt-toolkit")
@@ -18379,8 +16659,7 @@ interfaces in Python.  It's like GNU Readline but it also features syntax
 highlighting while typing, out-of-the-box multi-line input editing, advanced
 code completion, incremental search, support for Chinese double-width
 characters, mouse support, and auto suggestions.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python-prompt-toolkit-2))))))
+    (license license:bsd-3)))
 
 (define-public python-proselint
   (package
@@ -18402,45 +16681,13 @@ characters, mouse support, and auto suggestions.")
            (lambda _
              (setenv "HOME" "/tmp"))))))
     (propagated-inputs
-     (list python-click-8 python-future python-six))
+     (list python-click python-future python-six))
     (home-page "https://github.com/amperser/proselint")
     (synopsis "Linter for prose")
     (description "@code{python-proselint} is a linter for English prose, that
 scans through a file and detects issues.")
     (license license:bsd-3)))
 
-(define-public python-prompt-toolkit-2
-  (package (inherit python-prompt-toolkit)
-    (name "python-prompt-toolkit")
-    (version "2.0.7")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "prompt_toolkit" version))
-       (sha256
-        (base32
-         "0fgacqk73w7s932vy46pan2yp8rvjmlkag20xvaydh9mhf6h85zx"))))
-    (propagated-inputs
-     (list python-wcwidth python-six python-pygments))
-    (properties '())))
-
-(define-public python2-prompt-toolkit
-  (package-with-python2 python-prompt-toolkit-2))
-
-(define-public python-prompt-toolkit-1
-  (package (inherit python-prompt-toolkit-2)
-    (version "1.0.15")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "prompt_toolkit" version ".tar.gz"))
-       (sha256
-        (base32
-         "05v9h5nydljwpj5nm8n804ms0glajwfy1zagrzqrg91wk3qqi1c5"))))))
-
-(define-public python2-prompt-toolkit-1
-  (package-with-python2 python-prompt-toolkit-1))
-
 (define-public python-jedi
   (package
     (name "python-jedi")
@@ -18504,13 +16751,7 @@ as well.")
      It supports syntax highlighting, multiline editing, autocompletion, mouse,
      color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters
      etc.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay ptpython-2))))))
-
-(define-public ptpython-2
-  (let ((base (package-with-python2 (strip-python2-variant ptpython))))
-    (package/inherit base
-      (name "ptpython2"))))
+    (license license:bsd-3)))
 
 (define-public python-easyprocess
   (package
@@ -18644,9 +16885,6 @@ as well.")
      and/or Xon/Xoff.  The port is accessed in RAW mode.")
     (license license:bsd-3)))
 
-(define-public python2-pyserial
-  (package-with-python2 python-pyserial))
-
 (define-public python-pyserial-asyncio
   (package
     (name "python-pyserial-asyncio")
@@ -18834,9 +17072,6 @@ multitouch applications.")
 Design spec without sacrificing ease of use or application performance.")
     (license license:expat)))
 
-(define-public python2-kivy
-  (package-with-python2 python-kivy))
-
 (define-public python-binaryornot
   (package
     (name "python-binaryornot")
@@ -18864,15 +17099,7 @@ Design spec without sacrificing ease of use or application performance.")
     (synopsis "Package to check if a file is binary or text")
     (description "Ultra-lightweight pure Python package to check if a file is
      binary or text.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-binaryornot))))))
-
-(define-public python2-binaryornot
-  (let ((base (package-with-python2 (strip-python2-variant python-binaryornot))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python2-enum34" ,python2-enum34)
-         ,@(package-propagated-inputs base))))))
+    (license license:bsd-3)))
 
 (define-public binwalk
   (package
@@ -19016,9 +17243,6 @@ JSON) codec.")
      discovery, monitoring and configuration.")
     (license license:expat)))
 
-(define-public python2-consul
-  (package-with-python2 python-consul))
-
 (define-public python-schematics
   (package
     (name "python-schematics")
@@ -19044,9 +17268,6 @@ JSON) codec.")
     (description "Python Data Structures for Humans.")
     (license license:bsd-3)))
 
-(define-public python2-schematics
-  (package-with-python2 python-schematics))
-
 (define-public python-odfpy
   (package
     (name "python-odfpy")
@@ -19265,9 +17486,6 @@ JSON) codec.")
      between the different Python versions.")
     (license license:psfl)))
 
-(define-public python2-random2
-  (package-with-python2 python-random2))
-
 (define-public python-snowballstemmer
   (package
     (name "python-snowballstemmer")
@@ -19289,9 +17507,6 @@ JSON) codec.")
      English stemmer.")
     (license license:bsd-3)))
 
-(define-public python2-snowballstemmer
-  (package-with-python2 python-snowballstemmer))
-
 (define-public python-setproctitle
   (package
     (name "python-setproctitle")
@@ -19307,17 +17522,6 @@ JSON) codec.")
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-before 'check 'patch-Makefile
-           ;; Stricly this is only required for the python2 variant.
-           ;; But adding a phase in an inherited package seems to be
-           ;; cumbersum. So we patch even for python3.
-           (lambda _
-             (let ((nose (assoc-ref %build-inputs "python2-nose")))
-               (when nose
-                 (substitute* "Makefile"
-                   (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ")
-                    (string-append nose "/bin/nosetests "))))
-               #t)))
          (replace 'check
            (lambda _
              (setenv "PYTHON" (or (which "python3") (which "python")))
@@ -19340,15 +17544,7 @@ JSON) codec.")
      example when a master process is forked: changing the children's title
      allows identifying the task each process is busy with.  The technique
      is used by PostgreSQL and the OpenSSH Server for example.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-setproctitle))))))
-
-(define-public python2-setproctitle
-  (let ((base (package-with-python2
-               (strip-python2-variant python-setproctitle))))
-    (package/inherit base
-      (native-inputs `(("python2-nose" ,python2-nose)
-                       ,@(package-native-inputs base))))))
+    (license license:bsd-3)))
 
 (define-public python-validictory
   (package
@@ -19386,9 +17582,6 @@ JSON) codec.")
      useful as a validator for JSON data.")
   (license license:expat)))
 
-(define-public python2-validictory
-  (package-with-python2 python-validictory))
-
 (define-public python-pyelftools
   (package
     (name "python-pyelftools")
@@ -19452,9 +17645,6 @@ JSON) codec.")
     (description "Pyev provides a Python interface to libev.")
     (license license:gpl3)))
 
-(define-public python2-pyev
-  (package-with-python2 python-pyev))
-
 (define-public python-imagesize
   (package
     (name "python-imagesize")
@@ -19474,9 +17664,6 @@ JSON) codec.")
      PNG, JPEG, JPEG2000 and GIF files in pure Python.")
     (license license:expat)))
 
-(define-public python2-imagesize
- (package-with-python2 python-imagesize))
-
 (define-public python-termstyle
   (package
     (name "python-termstyle")
@@ -19528,22 +17715,7 @@ JSON) codec.")
      particularly useful for programs with many options or sub-parsers that can
      dynamically suggest completions ; for example, when browsing resources over the
      network.")
-    (license license:asl2.0)
-    (properties `((python2-variant . ,(delay python2-argcomplete))))))
-
-(define-public python2-argcomplete
-  (let ((variant (package-with-python2
-                  (strip-python2-variant python-argcomplete))))
-    (package/inherit variant
-      (arguments
-       (substitute-keyword-arguments (package-arguments variant)
-         ((#:phases phases '%standard-phases)
-          `(modify-phases ,phases
-             (add-after 'unpack 'set-my-HOME
-               (lambda _ (setenv "HOME" "/tmp")))))))
-      (native-inputs
-       `(("python2-importlib-metadata" ,python2-importlib-metadata)
-         ,@(package-native-inputs variant))))))
+    (license license:asl2.0)))
 
 (define-public python-csscompressor
   (package
@@ -19655,13 +17827,6 @@ JSON) codec.")
      possible on all supported Python versions.")
     (license license:expat)))
 
-(define-public python2-xopen
-  (let ((base (package-with-python2
-               (strip-python2-variant python-xopen))))
-    (package/inherit base
-      (propagated-inputs `(("python2-bz2file" ,python2-bz2file)
-                           ,@(package-propagated-inputs base))))))
-
 (define-public python-cheetah
   (package
     (name "python-cheetah")
@@ -19724,9 +17889,6 @@ JSON) codec.")
      @end enumerate")
     (license (license:x11-style "file://LICENSE"))))
 
-(define-public python2-cheetah
-  (package-with-python2 python-cheetah))
-
 (define-public python-dulwich
   (package
     (name "python-dulwich")
@@ -19796,9 +17958,6 @@ JSON) codec.")
      a file-like object from which an arbitrarily-sized key can be read.")
     (license license:expat)))
 
-(define-public python2-pbkdf2
-  (package-with-python2 python-pbkdf2))
-
 (define-public python-qrcode
   (package
     (name "python-qrcode")
@@ -19828,9 +17987,6 @@ JSON) codec.")
      console.")
     (license license:bsd-3)))
 
-(define-public python2-qrcode
-  (package-with-python2 python-qrcode))
-
 (define-public python-rst2ansi
   (package
     (name "python-rst2ansi")
@@ -19875,9 +18031,6 @@ JSON) codec.")
      converting text with ANSI color codes to HTML or LaTeX.")
     (license license:gpl3+)))
 
-(define-public python2-ansi2html
-  (package-with-python2 python-ansi2html))
-
 (define-public python-easy-ansi
   (package
     (name "python-easy-ansi")
@@ -19954,9 +18107,6 @@ JSON) codec.")
      through a Python API.")
     (license license:lgpl2.1+)))
 
-(define-public python2-pycountry
-  (package-with-python2 python-pycountry))
-
 (define-public python-pycosat
   (package
     (name "python-pycosat")
@@ -19981,43 +18131,6 @@ JSON) codec.")
                                                                      Problem} (SAT) solver.")
     (license license:expat)))
 
-(define-public python2-pycosat
-  (package-with-python2 python-pycosat))
-
-(define-public python2-ruamel.ordereddict
-  (package
-    (name "python2-ruamel.ordereddict")
-    (version "0.4.9")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "ruamel.ordereddict" version))
-       (sha256
-        (base32
-         "1xmkl8v9l9inm2pyxgc1fm5005yxm7fkd5gv74q7lj1iy5qc8n3h"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (add-installed-pythonpath inputs outputs)
-             (invoke "python" "test/testordereddict.py"))))))
-    (home-page "https://bitbucket.org/ruamel/ordereddict")
-    (synopsis "Version of dict that keeps keys in insertion order")
-    (description
-     "This is an implementation of an ordered dictionary with @dfn{Key
-                                                                     Insertion Order} (KIO: updates of values do not affect the position of the
-                                                                     key), @dfn{Key Value Insertion Order} (KVIO, an existing key's position is
-                                                                     removed and put at the back).  The standard library module @code{OrderedDict},
-     implemented later, implements a subset of @code{ordereddict} functionality.
-     Sorted dictionaries are also provided.  Currently only with @dfn{Key Sorted
-                                                                          Order} (KSO, no sorting function can be specified, but a transform can be
-                                                                          specified to apply on the key before comparison (e.g. @code{string.lower})).")
-    (license license:expat)))
-
 (define-public python-pypeg2
   (package
     (name "python-pypeg2")
@@ -20059,9 +18172,6 @@ JSON) codec.")
      projects.")
     (license license:expat)))
 
-(define-public python2-incremental
-  (package-with-python2 python-incremental))
-
 (define-public python-invoke
   (package
     (name "python-invoke")
@@ -20098,19 +18208,6 @@ JSON) codec.")
      instead of servers and network commands.")
     (license license:bsd-3)))
 
-(define-public python2-invoke
-  (let ((parent (package-with-python2 python-invoke)))
-    (package
-      (inherit parent)
-      (arguments
-       (substitute-keyword-arguments (package-arguments parent)
-         ((#:phases phases #t)
-          `(modify-phases ,phases
-             (delete 'delete-python2-code)
-             (add-after 'unpack 'delete-python3-code
-               (lambda _
-                 (delete-file-recursively "invoke/vendor/yaml3"))))))))))
-
 (define-public python-automat
   (package
     (name "python-automat")
@@ -20146,9 +18243,6 @@ JSON) codec.")
                                                        transducers).")
     (license license:expat)))
 
-(define-public python2-automat
-  (package-with-python2 python-automat))
-
 (define-public python-m2r
   (package
     (name "python-m2r")
@@ -20170,9 +18264,6 @@ JSON) codec.")
      reST format.")
     (license license:expat)))
 
-(define-public python2-m2r
-  (package-with-python2 python-m2r))
-
 (define-public python-constantly
   (package
     (name "python-constantly")
@@ -20191,9 +18282,6 @@ JSON) codec.")
      and bit flag values.")
     (license license:expat)))
 
-(define-public python2-constantly
-  (package-with-python2 python-constantly))
-
 (define-public python-attrs
   (package
     (name "python-attrs")
@@ -20221,9 +18309,6 @@ JSON) codec.")
      protocols.")
     (license license:expat)))
 
-(define-public python2-attrs
-  (package-with-python2 python-attrs))
-
 (define-public python-attrs-bootstrap
   (package
     (inherit python-attrs)
@@ -20231,9 +18316,6 @@ JSON) codec.")
     (native-inputs `())
     (arguments `(#:tests? #f))))
 
-(define-public python2-attrs-bootstrap
-  (package-with-python2 python-attrs-bootstrap))
-
 (define-public python-cliapp
   (package
     (name "python-cliapp")
@@ -20263,9 +18345,6 @@ JSON) codec.")
      as parsing the command line for options, and iterating over input files.")
     (license license:gpl2+)))
 
-(define-public python2-cliapp
-  (package-with-python2 python-cliapp))
-
 (define-public python-ttystatus
   (package
     (name "python-ttystatus")
@@ -20301,35 +18380,6 @@ JSON) codec.")
      if it does not fit, and resized if the terminal size changes.")
     (license license:gpl3+)))
 
-(define-public python2-ttystatus
-  (package-with-python2 python-ttystatus))
-
-(define-public python2-tracing
-  (package
-    (name "python2-tracing")
-    (version "0.10")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append
-             "http://git.liw.fi/cgi-bin/cgit/cgit.cgi/python-tracing/snapshot/tracing-"
-             version ".tar.gz"))
-       (sha256
-        (base32
-         "06cw4zg42fsvqy372vi2whj26w56vzg5axhzwdjc2bgwf03garbw"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://liw.fi/tracing/")
-    (synopsis "Python debug logging helper")
-    (description "@code{python2-tracing} is a python library for
-     logging debug messages.  It provides a way to turn debugging messages
-     on and off, based on the filename they occur in.  It is much faster
-     than using @code{logging.Filter} to accomplish the same thing, which
-     matters when code is run in production mode.  The actual logging still
-     happens using the @code{logging} library.")
-    (license license:gpl3+)))
-
 (define-public python-astroid
   (package
     (name "python-astroid")
@@ -20469,38 +18519,6 @@ builds partial trees by inspecting living objects.")
      imports alphabetically, and automatically separated into sections.  It
      provides a command line utility, a python library and plugins for various
      editors.")
-    (license license:expat)
-    (properties `((python2-variant . ,(delay python2-isort))))))
-
-(define-public python2-isort
-  (let ((base (package-with-python2
-               (strip-python2-variant python-isort))))
-    (package/inherit base
-      (native-inputs
-       `(("python2-futures" ,python2-futures)
-         ,@(package-native-inputs base))))))
-
-(define-public python2-backports-functools-lru-cache
-  (package
-    (name "python2-backports-functools-lru-cache")
-    (version "1.6.1")
-    (source
-     (origin
-       (method url-fetch)
-       ;; only the pypi tarballs contain the necessary metadata
-       (uri (pypi-uri "backports.functools_lru_cache" version))
-       (sha256
-        (base32
-         "0jidrkk2w6bhjm197plxiaxrav64mgcrign0bfyr7md2ilc5zplg"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python2-setuptools-scm))
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://github.com/jaraco/backports.functools_lru_cache")
-    (synopsis "Backport of functools.lru_cache from Python 3.3")
-    (description "@code{python2-backports-functools-lru-cache} is a backport
-     of @code{functools.lru_cache} from python 3.3.")
     (license license:expat)))
 
 (define-public python-configparser
@@ -20524,9 +18542,6 @@ builds partial trees by inspecting living objects.")
      in other versions.")
     (license license:expat)))
 
-(define-public python2-configparser
-  (package-with-python2 python-configparser))
-
 (define-public python-iniconfig
   (package
     (name "python-iniconfig")
@@ -20596,30 +18611,6 @@ builds partial trees by inspecting living objects.")
      applications in seconds while maintaining all the flexibility.")
     (license license:expat)))
 
-(define-public python2-mando
-  (package-with-python2 python-mando))
-
-(define-public python2-argparse
-  (package
-    (name "python2-argparse")
-    (version "1.4.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "argparse" version))
-       (sha256
-        (base32
-         "1r6nznp64j68ih1k537wms7h57nvppq0szmwsaf99n71bfjqkc32"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://github.com/ThomasWaldmann/argparse/")
-    (synopsis "Python command-line parsing library")
-    (description
-     "This package is mostly for people who want to have @code{argparse} on
-     older Pythons because it was not part of the standard library back then.")
-    (license license:psfl)))
-
 (define-public python-mwclient
   (package
     (name "python-mwclient")
@@ -20713,9 +18704,6 @@ point is the point of maximum curvature.")
      perform the operations required for synchronizing plain text.")
     (license license:asl2.0)))
 
-(define-public python2-diff-match-patch
-  (package-with-python2 python-diff-match-patch))
-
 (define-public python-dirsync
   (package
     (name "python-dirsync")
@@ -20735,9 +18723,6 @@ point is the point of maximum curvature.")
     (description "Advanced directory tree synchronisation tool.")
     (license license:expat)))
 
-(define-public python2-dirsync
-  (package-with-python2 python-dirsync))
-
 (define-public python-levenshtein
   (package
     (name "python-levenshtein")
@@ -20763,9 +18748,6 @@ point is the point of maximum curvature.")
      It supports both normal and Unicode strings.")
     (license license:gpl2+)))
 
-(define-public python2-levenshtein
-  (package-with-python2 python-levenshtein))
-
 (define-public python-scandir
   (package
     (name "python-scandir")
@@ -20794,32 +18776,6 @@ point is the point of maximum curvature.")
      This package is part of the Python standard library since version 3.5.")
     (license license:bsd-3)))
 
-(define-public python2-scandir
-  (package-with-python2 python-scandir))
-
-(define-public python2-stemming
-  (package
-    (name "python2-stemming")
-    (version "1.0.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "stemming" version))
-       (sha256
-        (base32 "0ldwa24gnnxhniv0fhygkpc2mwgd93q10ag8rvzayv6hw418frsr"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://bitbucket.org/mchaput/stemming/overview")
-    (synopsis "Python implementations of various stemming algorithms")
-    (description
-     "Python implementations of the Porter, Porter2, Paice-Husk, and Lovins
-     stemming algorithms for English.  These implementations are straightforward and
-     efficient, unlike some Python versions of the same algorithms available on the
-     Web.  This package is an extraction of the stemming code included in the Whoosh
-     search engine.")
-    (license license:public-domain)))
-
 (define-public python-factory-boy
   (package
     (name "python-factory-boy")
@@ -20848,13 +18804,13 @@ while only declaring the test-specific fields.")
 (define-public python-translate-toolkit
   (package
     (name "python-translate-toolkit")
-    (version "3.5.1")
+    (version "3.6.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "translate-toolkit" version ".tar.gz"))
        (sha256
-        (base32 "020pp7pbpnavxd41z90vyzzx06ci57mx9drkgbsb89wxxx4gal9v"))))
+        (base32 "0m4cpsp7x7h5m5agg4ybscf7y86wla46q2lvxpi2myplb6qlgcli"))))
     (build-system python-build-system)
     (native-inputs
      (list python-pytest python-sphinx))
@@ -20886,18 +18842,6 @@ while only declaring the test-specific fields.")
      several utilities, as well as an API for building localization tools.")
     (license license:gpl2+)))
 
-;; Required for virtaal, newer versions do not build with python2
-(define-public python2-translate-toolkit
-  (package-with-python2
-    (package
-      (inherit python-translate-toolkit)
-      (version "2.1.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "translate-toolkit" version ".tar.bz2"))
-         (sha256
-          (base32 "1vlkwrg83vb17jc36pmwh2b7jphwf390lz0jw8hakcg16qhwypvq")))))))
 
 (define-public python-packaging
   (package/inherit python-packaging-bootstrap
@@ -20926,9 +18870,6 @@ while only declaring the test-specific fields.")
     ;; licenses.
     (license (list license:asl2.0 license:bsd-2))))
 
-(define-public python2-packaging
-  (package-with-python2 python-packaging))
-
 ;; TODO(staging): merge with python-packaging-bootstrap.
 (define-public python-packaging-next
   (package
@@ -21003,17 +18944,8 @@ while only declaring the test-specific fields.")
      @item Halstead metrics (all of them)
      @item the Maintainability Index (a Visual Studio metric)
      @end itemize")
-    (properties `((python2-variant . ,(delay python2-radon))))
     (license license:expat)))
 
-(define-public python2-radon
-  (let ((base (package-with-python2 (strip-python2-variant python-radon))))
-    (package/inherit base
-      (propagated-inputs
-       `(("python-configparser" ,python2-configparser)
-         ("python-future" ,python2-future)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-sure
   (package
     (name "python-sure")
@@ -21037,35 +18969,6 @@ while only declaring the test-specific fields.")
      Sure is heavily inspired by @code{RSpec Expectations} and @code{should.js}.")
     (license license:gpl3+)))
 
-(define-public python2-sure
-  (package-with-python2 python-sure))
-
-(define-public python2-couleur
-  ;; This package does not seem to support python3 at all, hence,
-  ;; only the python2 variant definition is provided.
-  (package
-    (name "python2-couleur")
-    (version "0.6.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "couleur" version))
-       (sha256
-        (base32
-         "1qqaxyqz74wvid0cr119dhcwz0h0if5b5by44zl49pd5z65v58k1"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://github.com/gabrielfalcao/couleur")
-    (synopsis
-     "ANSI terminal tool for python, colored shell and other handy fancy features")
-    (description
-     "@code{Couleur} provides python programs a way to use the ANSI features in a unix
-     terminal such as coloured output in the shell, overwriting output, indentation, etc.")
-    ;; README.md says ASL2.0, but all source code headers are LGPL3+.
-    ;; https://github.com/gabrielfalcao/couleur/issues/11
-    (license license:lgpl3+)))
-
 (define-public python-misaka
   (package
     (name "python-misaka")
@@ -21095,46 +18998,6 @@ while only declaring the test-specific fields.")
      renderers (e.g. man pages or LaTeX).")
     (license license:expat)))
 
-(define-public python2-misaka
-  (package-with-python2 python-misaka))
-
-(define-public python2-steadymark
-  ;; This is forced into being a python2 only variant
-  ;; due to its dependence on couleur that has no support
-  ;; for python3
-  (package
-    (name "python2-steadymark")
-    (version "0.7.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "steadymark" version))
-       (sha256
-        (base32
-         "1640i9g8dycql3cc8j0bky0jkzj0q39blfbp4lsgpkprkfgcdk8v"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list python2-couleur python2-sure python2-misaka))
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-setup-py
-           (lambda _
-             ;; Update requirements from dependency==version
-             ;; to dependency>=version
-             (substitute* "setup.py"
-               (("==") ">="))
-             #t)))))
-    (home-page "https://github.com/gabrielfalcao/steadymark")
-    (synopsis "Markdown-based test runner for python")
-    (description
-     "@code{Steadymark} allows documentation to be written in github-flavoured
-     markdown.  The documentation may contain snippets of code surrounded by python
-     code blocks and @code{Steadymark} will find these snippets and run them, making
-     sure that there are no old malfunctional examples in the documentation examples.")
-    (license license:expat)))
-
 (define-public python-jsonpointer
   (package
     (name "python-jsonpointer")
@@ -21153,9 +19016,6 @@ while only declaring the test-specific fields.")
      by path in a JSON document (see RFC 6901).")
   (license license:bsd-3)))
 
-(define-public python2-jsonpointer
-  (package-with-python2 python-jsonpointer))
-
 (define-public python-jsonpatch
   (package
     (name "python-jsonpatch")
@@ -21180,9 +19040,6 @@ while only declaring the test-specific fields.")
      applying JSON Patches according to RFC 6902.")
     (license license:bsd-3)))
 
-(define-public python2-jsonpatch
-  (package-with-python2 python-jsonpatch))
-
 (define-public python-jsonpatch-0.4
   (package (inherit python-jsonpatch)
     (name "python-jsonpatch")
@@ -21198,9 +19055,6 @@ while only declaring the test-specific fields.")
         (base32
          "1fq02y57kinyknxjcav0slcb0k9mwdffqw2hnlhdkpj7palh2mwk"))))))
 
-(define-public python2-jsonpatch-0.4
-  (package-with-python2 python-jsonpatch-0.4))
-
 (define-public python-rfc3986
   (package
     (name "python-rfc3986")
@@ -21228,9 +19082,6 @@ while only declaring the test-specific fields.")
      which adds support for zone identifiers to IPv6 addresses.")
     (license license:asl2.0)))
 
-(define-public python2-rfc3986
-  (package-with-python2 python-rfc3986))
-
 (define-public python-rfc3987
   (package
     (name "python-rfc3987")
@@ -21249,9 +19100,6 @@ while only declaring the test-specific fields.")
      validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
     (license license:gpl3+)))
 
-(define-public python2-rfc3987
-  (package-with-python2 python-rfc3987))
-
 ;; The latest commit contains fixes for building with both python3 and python2.
 (define-public python-rfc6555
   (let ((commit "1a181b432312731f6742a5eb558dae4761d32361")
@@ -21448,9 +19296,6 @@ while only declaring the test-specific fields.")
      address is valid and really exists.")
     (license license:lgpl3+)))
 
-(define-public python2-validate-email
-  (package-with-python2 python-validate-email))
-
 (define-public python-flex
   (package
     (name "python-flex")
@@ -21477,9 +19322,6 @@ while only declaring the test-specific fields.")
     (description "@code{flex} can be used to validate Swagger schemata.")
     (license license:bsd-3)))
 
-(define-public python2-flex
-  (package-with-python2 python-flex))
-
 (define-public python-marshmallow
   (package
     (name "python-marshmallow")
@@ -21690,9 +19532,6 @@ class ShellOutSSHClientTests"))))
      window memory map manager.")
     (license license:bsd-3)))
 
-(define-public python2-smmap
-  (package-with-python2 python-smmap))
-
 (define-public python-regex
   (package
     (name "python-regex")
@@ -21719,9 +19558,6 @@ compatible with the standard @code{re} module, but offers additional
 functionality like full case-folding for case-insensitive matches in Unicode.")
      (license license:psfl)))
 
-(define-public python2-regex
-  (package-with-python2 python-regex))
-
 (define-public python-pyopengl
   (package
     (name "python-pyopengl")
@@ -21823,9 +19659,6 @@ complete rewrite in Cython to attempt to increase the performance over the
 pure Python module.")
    (license license:bsd-3)))
 
-(define-public python2-rencode
-  (package-with-python2 python-rencode))
-
 (define-public python-xenon
   (package
     (name "python-xenon")
@@ -21880,9 +19713,6 @@ requirements is not met.")
 version of @code{SocksiPy} with bug fixes and extra features.")
     (license license:bsd-3)))
 
-(define-public python2-pysocks
-  (package-with-python2 python-pysocks))
-
 (define-public python-pydiff
   (package
     (name "python-pydiff")
@@ -21902,9 +19732,6 @@ version of @code{SocksiPy} with bug fixes and extra features.")
 ignoring formatting changes.")
     (license license:expat)))
 
-(define-public python2-pydiff
-  (package-with-python2 python-pydiff))
-
 (define-public python-pydub
   (package
     (name "python-pydub")
@@ -22004,9 +19831,6 @@ distribution, and the *.egg-info stored in a \"development checkout\" (e.g,
 created by running @code{python setup.py develop}).")
     (license license:expat)))
 
-(define-public python2-pkginfo
-  (package-with-python2 python-pkginfo))
-
 (define-public python-twine
   (package
     (name "python-twine")
@@ -22059,9 +19883,6 @@ attempting to optimize internally, using a cache, the common case where many
 lines are read from a single file.")
     (license license:psfl)))
 
-(define-public python2-linecache2
-  (package-with-python2 python-linecache2))
-
 (define-public python-traceback2
   (package
     (name "python-traceback2")
@@ -22090,9 +19911,6 @@ stack traces of Python programs.  It exactly mimics the behavior of the Python
 interpreter when it prints a stack trace.")
     (license license:psfl)))
 
-(define-public python2-traceback2
-  (package-with-python2 python-traceback2))
-
 (define-public python-ratelimiter
   (package
     (name "python-ratelimiter")
@@ -22114,9 +19932,6 @@ interpreter when it prints a stack trace.")
 executed more than a given number of times during a given period.")
     (license license:asl2.0)))
 
-(define-public python2-ratelimiter
-  (package-with-python2 python-ratelimiter))
-
 (define-public python-jsonrpclib-pelix
   (package
     (name "python-jsonrpclib-pelix")
@@ -22140,9 +19955,6 @@ version is a fork of jsonrpclib by Josh Marshall, usable with Pelix remote
 services.")
     (license license:asl2.0)))
 
-(define-public python2-jsonrpclib-pelix
-  (package-with-python2 python-jsonrpclib-pelix))
-
 (define-public python-setuptools-scm-git-archive
   (package
     (name "python-setuptools-scm-git-archive")
@@ -22177,9 +19989,6 @@ setuptools_scm, which supports obtaining versions from git archives that
 belong to tagged versions.")
     (license license:expat)))
 
-(define-public python2-setuptools-scm-git-archive
-  (package-with-python2 python-setuptools-scm-git-archive))
-
 (define-public python-setuptools-git
   (package
     (name "python-setuptools-git")
@@ -22269,34 +20078,6 @@ Rust Python extensions implemented with @code{PyO3} or @code{rust-cpython}.")
 Angus Johnson's polygon clipping Clipper library (ver. 6.4.2).")
     (license license:expat)))
 
-(define-public python2-pyclipper
-  (package-with-python2 python-pyclipper))
-
-(define-public python2-booleanoperations
-  (package
-    (name "python2-booleanoperations")
-    (version "0.7.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "booleanOperations" version ".zip"))
-       (sha256
-        (base32
-         "1hw42fazdpvsn77glx96hwsj9l17mvx37sc5707s08y5w6fx16mn"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
-    (native-inputs
-     (list unzip python2-pytest python2-pytest-runner))
-    (propagated-inputs
-     (list python2-fonttools python2-pyclipper python2-ufolib))
-    (home-page "https://github.com/typemytype/booleanOperations")
-    (synopsis "Boolean operations on paths")
-    (description
-     "BooleanOperations provides a Python library that enables
-boolean operations on paths.")
-    (license license:expat)))
-
 (define-public python-tempdir
   (package
     (name "python-tempdir")
@@ -22320,9 +20101,6 @@ deleted with all their contents when they are no longer needed.  It is
 particularly convenient for use in tests.")
     (license license:expat)))
 
-(define-public python2-tempdir
-  (package-with-python2 python-tempdir))
-
 (define-public python-tempora
   (package
     (name "python-tempora")
@@ -22427,25 +20205,8 @@ Time} values as well as an event scheduler.")
 combine data, code, and documentation in single-file packages,
 suitable for publication as supplementary material or on repositories
 such as figshare or Zenodo.")
-    (properties `((python2-variant . ,(delay python2-activepapers))))
     (license license:bsd-3)))
 
-(define-public python2-activepapers
-  (let ((base (package-with-python2
-               (strip-python2-variant python-activepapers))))
-    (package/inherit base
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (delete 'delete-python2-code)
-             (add-after 'unpack 'delete-python3-code
-               (lambda _
-                 (for-each delete-file
-                           '("lib/activepapers/builtins3.py"
-                             "lib/activepapers/standardlib3.py"
-                             "lib/activepapers/utility3.py")))))))))))
-
 (define-public python-semver
   (package
     (name "python-semver")
@@ -22472,9 +20233,6 @@ such as figshare or Zenodo.")
 @url{Semantic Versioning, http://semver.org/}.")
     (license license:bsd-3)))
 
-(define-public python2-semver
-  (package-with-python2 python-semver))
-
 (define-public python-pyro4
   (package
     (name "python-pyro4")
@@ -22500,116 +20258,6 @@ other over the network.  You can just use normal Python method calls to call
 objects on other machines, also known as remote procedure calls (RPC).")
     (license license:expat)))
 
-(define-public python2-pyro
-  (package
-    (name "python2-pyro")
-    (version "3.16")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "Pyro" version))
-       (file-name (string-append "Pyro-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0y75wzdqbjy565rpxaxscav4j8xg060sa90lnmb7aypgaf251v8v"))))
-    (build-system python-build-system)
-    (arguments
-     ;; Pyro is not compatible with Python 3
-     `(#:python ,python-2
-       ;; Pyro has no test cases for automatic execution
-       #:tests? #f))
-    (home-page "https://pythonhosted.org/Pyro/")
-    (synopsis "Distributed object manager for Python")
-    (description "Pyro is a Distributed Object Technology system
-written in Python that is designed to be easy to use.  It resembles
-Java's Remote Method Invocation (RMI).  It has less similarity to CORBA,
-which is a system and language independent Distributed Object Technology
-and has much more to offer than Pyro or RMI.  Pyro 3.x is no
-longer maintained.  New projects should use Pyro4 instead, which
-is the new Pyro version that is actively developed.")
-    (license license:expat)))
-
-(define-public python2-scientific
-  (package
-    (name "python2-scientific")
-    (version "2.9.4")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/khinsen/ScientificPython")
-             (commit (string-append "rel" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "16l48aj9fps9r7jyk8gpxppwrv0fqvlc13sayxskz28r5s6sjwbl"))))
-    (build-system python-build-system)
-    (inputs
-     (list netcdf))
-    (propagated-inputs
-     (list python2-numpy-1.8 python2-pyro))
-    (arguments
-     ;; ScientificPython is not compatible with Python 3
-     `(#:python ,python-2
-       #:tests? #f ; No test suite
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'build
-           (lambda* (#:key inputs #:allow-other-keys)
-             (invoke "python" "setup.py" "build"
-                     (string-append "--netcdf_prefix="
-                                    (assoc-ref inputs "netcdf"))))))))
-    (home-page "http://dirac.cnrs-orleans.fr/ScientificPython")
-    (synopsis "Python modules for scientific computing")
-    (description "ScientificPython is a collection of Python modules that are
-useful for scientific computing.  Most modules are rather general (Geometry,
-physical units, automatic derivatives, ...) whereas others are more
-domain-specific (e.g. netCDF and PDB support).  The library is currently
-not actively maintained and works only with Python 2 and NumPy < 1.9.")
-    (license license:cecill-c)))
-
-(define-public python2-mmtk
-  (package
-    (name "python2-mmtk")
-    (version "2.7.12")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/khinsen/MMTK")
-             (commit (string-append "rel" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "1fqwh3ba9jd42nigvn5shndgwb1zy7kh9520ncvqci7n8ffjr6p1"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list netcdf))
-    (propagated-inputs
-     `(("python-scientific" ,python2-scientific)
-       ("python-tkinter" ,python-2 "tk")))
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'includes-from-scientific
-           (lambda* (#:key inputs #:allow-other-keys)
-             (mkdir-p "Include/Scientific")
-             (copy-recursively
-                     (string-append
-                      (assoc-ref inputs "python-scientific")
-                      "/include/python2.7/Scientific")
-                     "Include/Scientific"))))))
-    (home-page "http://dirac.cnrs-orleans.fr/MMTK")
-    (synopsis "Python library for molecular simulation")
-    (description "MMTK is a library for molecular simulations with an emphasis
-on biomolecules.  It provides widely used methods such as Molecular Dynamics
-and normal mode analysis, but also basic routines for implementing new methods
-for simulation and analysis.  The library is currently not actively maintained
-and works only with Python 2 and NumPy < 1.9.")
-    (license license:cecill-c)))
-
 (define-public python-phonenumbers
   (package
     (name "python-phonenumbers")
@@ -22630,9 +20278,6 @@ and works only with Python 2 and NumPy < 1.9.")
      "This package provides a Python port of Google's libphonenumber library.")
     (license license:asl2.0)))
 
-(define-public python2-phonenumbers
-  (package-with-python2 python-phonenumbers))
-
 (define-public python-heapdict
   (package
     (name "python-heapdict")
@@ -22773,9 +20418,6 @@ takes the code and reformats it to the best formatting that conforms to the
 style guide, even if the original code didn't violate the style guide.")
     (license license:asl2.0)))
 
-(define-public python2-yapf
-  (package-with-python2 python-yapf))
-
 (define-public python-yq
   (package
     (name "python-yq")
@@ -22841,9 +20483,6 @@ It can be used to generate XCode projects, Visual Studio projects, Ninja build
 files, and Makefiles.")
       (license license:bsd-3))))
 
-(define-public python2-gyp
-  (package-with-python2 python-gyp))
-
 (define-public python-whatever
   (package
     (name "python-whatever")
@@ -22872,9 +20511,6 @@ files, and Makefiles.")
 functions by partial application of operators.")
     (license license:bsd-3)))
 
-(define-public python2-whatever
-  (package-with-python2 python-whatever))
-
 (define-public python-funcy
   (package
     (name "python-funcy")
@@ -22923,9 +20559,6 @@ Examples are:
 @end enumerate")
     (license license:bsd-3)))
 
-(define-public python2-funcy
-  (package-with-python2 python-funcy))
-
 (define-public python-isoweek
   (package
     (name "python-isoweek")
@@ -22946,9 +20579,6 @@ a notation for identifying weeks; yyyyWww (where the W is a literal).
 Week instances stringify to this form.")
     (license license:bsd-3)))
 
-(define-public python2-isoweek
-  (package-with-python2 python-isoweek))
-
 (define-public python-pyzbar
   (package
     (name "python-pyzbar")
@@ -23162,28 +20792,6 @@ Python 3.6+ type hints.")
 with PEP 484 argument (and return) type annotations.")
     (license license:expat)))
 
-(define-public python2-typing
-  (package
-    (name "python2-typing")
-    (version "3.10.0.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "typing" version))
-       (sha256
-        (base32 "0c5il4d68fd4qrm5k3dps70j0xz0n5krj6lhwn9vzpal3whsvd0k"))))
-    (build-system python-build-system)
-    (arguments (list #:python python-2))
-    (home-page "https://docs.python.org/3/library/typing.html")
-    (synopsis "Type hints for Python")
-    (description "This is a backport of the standard library @code{typing}
-module to Python versions older than 3.5.  Typing defines a standard notation
-for Python function and variable type annotations.  The notation can be used
-for documenting code in a concise, standard format, and it has been designed
-to also be used by static and runtime type checkers, static analyzers, IDEs
-and other tools.")
-    (license license:psfl)))
-
 (define-public python-typing-extensions
   (package
     (name "python-typing-extensions")
@@ -23324,64 +20932,6 @@ interpreter. bpython's main features are
 file system events on Linux.")
     (license license:expat)))
 
-(define-public python2-pyinotify
-  (package-with-python2 python-pyinotify))
-
-;; Ada parser uses this version.
-(define-public python2-quex-0.67.3
-  (package
-    (name "python2-quex")
-    (version "0.67.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://sourceforge/quex/HISTORY/"
-                           (version-major+minor version)
-                           "/quex-" version ".zip"))
-       (sha256
-        (base32
-         "14gv8ll3ipqv4kyc2xiy891nrmjl4ic823zfyx8hassagyclyppw"))))
-    (build-system python-build-system)
-    (native-inputs
-     (list unzip))
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure)
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (share/quex (string-append out "/share/quex"))
-                    (bin (string-append out "/bin")))
-               (copy-recursively "." share/quex)
-               (mkdir-p bin)
-               (symlink (string-append share/quex "/quex-exe.py")
-                        (string-append bin "/quex"))
-               #t))))))
-    (native-search-paths
-     (list (search-path-specification
-            (variable "QUEX_PATH")
-            (files '("share/quex")))))
-    (home-page "http://quex.sourceforge.net/")
-    (synopsis "Lexical analyzer generator in Python")
-    (description "@code{quex} is a lexical analyzer generator in Python.")
-    (license license:lgpl2.1+)))        ; Non-military
-
-(define-public python2-quex
-  (package (inherit python2-quex-0.67.3)
-    (name "python2-quex")
-    (version "0.68.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://sourceforge/quex/DOWNLOAD/quex-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0svc9nla3b9145d6b7fb9dizx412l3difzqw0ilh9lz52nsixw8j"))
-       (file-name (string-append name "-" version ".tar.gz"))))))
 
 (define-public python-more-itertools
   (package
@@ -23401,26 +20951,8 @@ file system events on Linux.")
 number of iterator building blocks inspired by constructs from APL, Haskell,
 and SML.  @code{more-itertools} includes additional building blocks for
 working with iterables.")
-    (properties `((python2-variant . ,(delay python2-more-itertools))))
     (license license:expat)))
 
-;; The 5.x series are the last versions supporting Python 2.7.
-(define-public python2-more-itertools
-  (package
-    (inherit python-more-itertools)
-    (name "python2-more-itertools")
-    (version "5.0.0")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "more-itertools" version))
-              (sha256
-               (base32
-                "1r12cm6mcdwdzz7d47a6g4l437xsvapdlgyhqay3i2nrlv03da9q"))))
-    (arguments
-     `(#:python ,python-2))
-    (propagated-inputs
-     `(("python2-six" ,python2-six-bootstrap)))))
-
 (define-public python-latexcodec
   (package
     (name "python-latexcodec")
@@ -23509,9 +21041,6 @@ round-trip parsing for different Python versions (in multiple Python versions).
 Parso is also able to list multiple syntax errors in your Python file.")
     (license license:expat)))
 
-(define-public python2-parso
-  (package-with-python2 python-parso))
-
 (define-public python-async-generator
   (package
     (name "python-async-generator")
@@ -23584,9 +21113,6 @@ on virtual file systems.
 Glob2 currently based on the glob code from Python 3.3.1.")
     (license license:bsd-2)))
 
-(define-public python2-glob2
-  (package-with-python2 python-glob2))
-
 (define-public python-gipc
   (package
     (name "python-gipc")
@@ -23743,9 +21269,6 @@ commit, but it also includes some other useful statistics.")
 MacFUSE.  The binding is created using the standard @code{ctypes} library.")
     (license license:isc)))
 
-(define-public python2-fusepy
-  (package-with-python2 python-fusepy))
-
 (define-public python-fusepyng
   (package
     (name "python-fusepyng")
@@ -23983,9 +21506,6 @@ and corruption checks.")
 library to allow local file system access via @code{file://} URLs.")
     (license license:asl2.0)))
 
-(define-public python2-requests-file
-  (package-with-python2 python-requests-file))
-
 (define-public python-identify
   (package
     (name "python-identify")
@@ -24049,9 +21569,6 @@ the public ICANN TLDs and their exceptions.  It can optionally support the
 Public Suffix List's private domains as well.")
     (license license:bsd-3)))
 
-(define-public python2-tldextract
-  (package-with-python2 python-tldextract))
-
 (define-public python-tldr
   (package
     (name "python-tldr")
@@ -24144,9 +21661,6 @@ environments.")
      "PyNamecheap is a Namecheap API client in Python.")
     (license license:expat)))
 
-(define-public python2-pynamecheap
-  (package-with-python2 python-pynamecheap))
-
 (define-public python-dns-lexicon
   (package
     (name "python-dns-lexicon")
@@ -24174,9 +21688,6 @@ Python library.  It was designed to be used in automation, specifically with
 Let's Encrypt.")
     (license license:expat)))
 
-(define-public python2-dns-lexicon
-  (package-with-python2 python-dns-lexicon))
-
 (define-public python-cfgv
   (package
     (name "python-cfgv")
@@ -24681,9 +22192,6 @@ that is accessible to other projects developed in Cython.")
 pure-Python.")
     (license license:asl2.0)))
 
-(define-public python2-sortedcontainers
-  (package-with-python2 python-sortedcontainers))
-
 (define python-cloudpickle-testpkg
   (package
     (name "python-cloudpickle-testpkg")
@@ -24740,30 +22248,8 @@ supported by the default pickle module from the Python standard library.  It
 is especially useful for cluster computing where Python expressions are
 shipped over the network to execute on remote hosts, possibly close to the
 data.")
-    (properties `((python2-variant . ,(delay python2-cloudpickle))))
     (license license:bsd-3)))
 
-(define-public python2-cloudpickle
-  (let ((base (package-with-python2 (strip-python2-variant python-cloudpickle))))
-    (package/inherit base
-      (version "1.3.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "cloudpickle" version))
-         (sha256
-          (base32
-           "0lx7gy9clp427qwcm7b23zdsldpr03gy3vxxhyi8fpbhwz859brq"))))
-      (native-inputs
-       `(;; For tests.
-         ("python-mock" ,python2-mock)
-         ("python-psutil" ,python2-psutil)
-         ("python-pytest" ,python2-pytest)
-         ("python-tornado" ,python2-tornado)))
-      (propagated-inputs
-       `(("python-futures" ,python2-futures)
-         ,@(package-propagated-inputs base))))))
-
 (define-public python-locket
   (package
     (name "python-locket")
@@ -24783,9 +22269,6 @@ data.")
 they use the same path.")
     (license license:bsd-2)))
 
-(define-public python2-locket
-  (package-with-python2 python-locket))
-
 (define-public python-blosc
   (package
     (name "python-blosc")
@@ -24817,9 +22300,6 @@ regular-spaced values, etc.
 This Python package wraps the Blosc library.")
     (license license:bsd-3)))
 
-(define-public python2-blosc
-  (package-with-python2 python-blosc))
-
 (define-public python-partd
   (package
     (name "python-partd")
@@ -24848,14 +22328,14 @@ append on old values.  Partd excels at shuffling operations.")
 (define-public python-fsspec
   (package
     (name "python-fsspec")
-    (version "0.6.1")
+    (version "2022.5.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "fsspec" version))
        (sha256
         (base32
-         "1g9ba8v04s1nrh7pvzfm2md7ivl2mrz3hcq3y9d1a44gd62h17zj"))))
+         "1d43qiz8g395042a52yswz6j7q41gvrv3k53wvxn1rs4bk3mjm3s"))))
     (build-system python-build-system)
     (arguments '(#:tests? #f))          ; there are none
     (home-page "https://github.com/intake/filesystem_spec")
@@ -24871,16 +22351,16 @@ decisions with any given backend.")
 (define-public python-dask
   (package
     (name "python-dask")
-    (version "2021.11.2")
+    (version "2022.05.2")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/dask/dask/")
-             (commit "5a8275dd53193b47457cdfadc0e2356ea3eb6ccd")))
+             (commit "8db1597c9745543df3129399bead5fbc95a54571")))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0h8w7c03mn6s2mmwbqd2sqay3k4vaqiwlsbvliziggw28042zfw2"))
+        (base32 "1xfk3wml972z502w5ii5mn03ls3rg5p4hqgl0hkicgpmzlyz9kph"))
        (snippet
         ;; Delete generated copy of python-versioneer.  We recreate it below.
         '(delete-file "versioneer.py"))))
@@ -24966,9 +22446,6 @@ Currently, all stateless Readline commands are implemented.  Yanking and history
 are not supported.")
     (license license:expat)))
 
-(define-public python2-readlike
-  (package-with-python2 python-readlike))
-
 (define-public python-reparser
   (package
     (name "python-reparser")
@@ -24987,14 +22464,6 @@ are not supported.")
 on regular expressions.")
     (license license:expat)))
 
-(define-public python2-reparser
-  (let ((reparser (package-with-python2
-                   (strip-python2-variant python-reparser))))
-    (package/inherit reparser
-             (propagated-inputs
-              `(("python2-enum34" ,python2-enum34)
-                ,@(package-propagated-inputs reparser))))))
-
 (define-public python-retrying
   (package
     (name "python-retrying")
@@ -25119,9 +22588,6 @@ of Python libraries for building Python applications.")
 source via the Abstract Syntax Tree.")
     (license license:bsd-3)))
 
-(define-public python2-astor
-  (package-with-python2 python-astor))
-
 (define-public python-astunparse
   (package
     (name "python-astunparse")
@@ -25580,9 +23046,6 @@ access the system cron automatically and simply using a direct API.")
 by Igor Pavlov.")
     (license license:lgpl2.1+)))
 
-(define-public python2-pylzma
-  (package-with-python2 python-pylzma))
-
 (define-public python-ifaddr
   (package
     (name "python-ifaddr")
@@ -25647,42 +23110,6 @@ enumeration library in Python.")
 (Bonjour/Avahi compatible).")
     (license license:lgpl2.1+)))
 
-(define-public python2-zeroconf
-  (package
-    (name "python2-zeroconf")
-
-    ;; This is the last version that supports Python 2.x.
-    (version "0.19.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "zeroconf" version))
-       (sha256
-        (base32
-         "0ykzg730n915qbrq9bn5pn06bv6rb5zawal4sqjyfnjjm66snkj3"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-requires
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "setup.py"
-               (("enum-compat")
-                "enum34"))
-             #t)))))
-    (native-inputs
-     `(("python2-six" ,python2-six)
-       ("python2-enum32" ,python2-enum34)
-       ("python2-netifaces" ,python2-netifaces)
-       ("python2-typing" ,python2-typing)))
-    (home-page "https://github.com/jstasiak/python-zeroconf")
-    (synopsis "Pure Python mDNS service discovery")
-    (description
-     "Pure Python multicast DNS (mDNS) service discovery library (Bonjour/Avahi
-compatible).")
-    (license license:lgpl2.1+)))
-
 (define-public python-bsddb3
   (package
     (name "python-bsddb3")
@@ -26954,9 +24381,6 @@ custom PNG processing.")
 sequences.")
     (license license:gpl2)))
 
-(define-public python2-fuzzywuzzy
-  (package-with-python2 python-fuzzywuzzy))
-
 (define-public python-block-tracing
   (package
     (name "python-block-tracing")
@@ -27883,9 +25307,6 @@ be necessary when using @code{cmd}.")
 allows you, from Python code, to “fix” invalid (X)HTML markup.")
     (license license:expat)))
 
-(define-public python2-pytidylib
-  (package-with-python2 python-pytidylib))
-
 (define-public python-mujson
   (package
     (name "python-mujson")
@@ -28642,9 +26063,6 @@ heterogeneous and multi-platform clusters (including clusters running other
 applications with variable CPU loads).")
     (license license:bsd-3)))
 
-(define-public python2-parallel
-  (package-with-python2 python-parallel))
-
 (define-public python-djvulibre
   (package
     (name "python-djvulibre")
@@ -28674,9 +26092,6 @@ applications with variable CPU loads).")
     (home-page "https://jwilk.net/software/python-djvulibre")
     (license license:gpl2)))
 
-(define-public python2-djvulibre
-  (package-with-python2 python-djvulibre))
-
 (define-public python-versioneer
   (package
     (name "python-versioneer")
@@ -28701,17 +26116,17 @@ error-prone \"update the embedded version string\" step from your release
 process.")
     (license license:public-domain)))
 
-(define-public python2-gamera
+(define-public python-gamera
   (package
-    (name "python2-gamera")
-    (version "3.4.4")
+    (name "python-gamera")
+    (version "4.0.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://gamera.informatik.hsnr.de/download/"
                            "gamera-" version ".tar.gz"))
        (sha256
-        (base32 "1g4y1kxk1hmxfsiz682hbxvwryqilnb21ci509m559yp7hcliiyy"))
+        (base32 "0fhlwbvpm3k54n4aa1y6qd348jqrb54ak9p0ic16drx7f07dsq05"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -28721,17 +26136,33 @@ process.")
                        "src/libtiff"
                        "src/zlib-1.2.8"))))))
     (build-system python-build-system)
-    (inputs
-     (list libpng libtiff zlib))
     (arguments
-     `(#:python ,python-2
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-wx-support
            (lambda _
              (substitute* "setup.py"
                (("no_wx = False")
-                "no_wx = True")))))))
+                "no_wx = True"))))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Some tests require a writable HOME directory and test
+               ;; directory.
+               (setenv "HOME" "/tmp")
+               (mkdir "tests/tmp")     ;the code assumes this directory exists
+               ;; (for-each make-file-writable (find-files "tests"))
+               (with-directory-excursion "tests"
+                 (invoke "pytest" "-vv"
+                         ;; This test causes gamera/gendoc.py to be loaded,
+                         ;; which fails due to the missing docutils, pygments
+                         ;; and silvercity (very old, unpackaged) libraries.
+                         "--ignore" "test_plugins.py"
+                         ;; This test triggers a segfault (see:
+                         ;; https://github.com/hsnr-gamera/gamera-4/issues/47).
+                         "--ignore" "test_rle.py"))))))))
+    (native-inputs (list python-pytest))
+    (inputs (list libpng libtiff zlib))
     (synopsis "Framework for building document analysis applications")
     (description
      "Gamera is a toolkit for building document image recognition systems.")
@@ -29660,9 +27091,9 @@ and BMI2).")
 
 (define-public python-peachpy
   ;; There is no tag in this repo.
-  (let ((commit "906d578266dc7188bf61e4cdbc9f8ea7d69edec0")
+  (let ((commit "913d74c35a6b1d330e90bfc055208ce5b06b35a0")
         (version "0.2.0")                         ;from 'peachpy/__init__.py'
-        (revision "1"))
+        (revision "2"))
     (package
       (name "python-peachpy")
       (version (git-version version revision commit))
@@ -29673,7 +27104,7 @@ and BMI2).")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "1yy62k3cjr6556nbp651w6v4hzl7kz4y75wy2dfqgndgbnixskx2"))
+                  "1wnqxspxsacw4556q0b9fbw11nhrkgn6gs8g43jdnpa35f3z9kb6"))
                 (patches (search-patches "python-peachpy-determinism.patch"))))
       (build-system python-build-system)
       (arguments
@@ -31788,3 +29219,99 @@ when the object is garbage collected.")
      "Simple but high performance Cython hash table mapping pre-randomized keys
 to void* values.")
     (license license:expat)))
+
+(define-public python-catalogue
+  (package
+    (name "python-catalogue")
+    (version "2.0.7")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "catalogue" version))
+              (sha256
+               (base32
+                "0srdxiil2xys8q1gpc1nvzhvis3a33d8a7amk2i1rlpbg6p36pak"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest))
+    (inputs (list python python-zipp python-typing-extensions python-mypy))
+    (home-page "https://github.com/explosion/catalogue")
+    (synopsis "Lightweight function registries for your library")
+    (description
+     "\"catalogue\" is a tiny, zero-dependencies library that
+makes it easy to add function (or object) registries to your code.  Function
+registries are helpful when you have objects that need to be both easily
+serializable and fully customizable.  Instead of passing a function into your
+object, you pass in an identifier name, which the object can use to lookup the
+function from the registry.  This makes the object easy to serialize, because the
+name is a simple string.  If you instead saved the function, you'd have to use
+Pickle for serialization, which has many drawbacks.")
+    (license license:expat)))
+
+(define-public python-wasabi
+  (package
+    (name "python-wasabi")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "wasabi" version))
+              (sha256
+               (base32
+                "1kwqfalq7qxs9f7xb2m055g01qpbznyzxl7sjnzjdvvhkczg39md"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/ines/wasabi")
+    (synopsis "Console printing and formatting toolkit")
+    (description
+     "This package provides a lightweight console printing and formatting
+toolkit for Python.")
+    (license license:expat)))
+
+(define-public python-srt
+  (package
+    (name "python-srt")
+    (version "3.5.2")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "srt" version))
+              (sha256
+               (base32
+                "0l24710spxarijmv3h7iicvx0lv6m3d4xg77nd9kyv8jwifav93s"))))
+    (build-system python-build-system)
+    (home-page "https://github.com/cdown/srt")
+    (synopsis "SRT parsing library")
+    (description
+     "This package provides a Python library for parsing, modifying, and
+composing subtitles in the SRT file format.")
+    (license license:expat)))
+
+(define-public python-gatt
+  (package
+    (name "python-gatt")
+    (version "0.2.7")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "gatt" version))
+              (sha256
+               (base32
+                "0fjf066jixk30fr8xwfalwfnhqpr56yv0cccyypnx2qp9bi9svb2"))))
+    (propagated-inputs (list python-dbus python-pygobject))
+    (build-system python-build-system)
+    (home-page "https://github.com/getsenic/gatt-python")
+    (synopsis "Bluetooth GATT SDK for Python")
+    (description "The Bluetooth @acronym{GATT, Generic ATTribute Profile}
+@acronym{SDK, Software Development Kit} for Python helps you implement and
+communicate with any Bluetooth Low Energy device that has a GATT
+profile.  It supports:
+
+@itemize @bullet
+@item Discovering nearby Bluetooth Low Energy devices
+@item Connecting and disconnecting devices
+@item Implementing your custom GATT profile
+@item Accessing all GATT services
+@item Accessing all GATT characteristics
+@item Reading characteristic values
+@item Writing characteristic values
+@item Subscribing for characteristic value change notifications
+@end itemize
+
+Currently, Linux is the only platform supported by this library.")
+    (license license:expat)))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 3bc3346c21..db8bf5d576 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -419,14 +419,6 @@ data types.")
 ;; Current 2.x version.
 (define-public python-2 python-2.7)
 
-(define-public python2-called-python
-  ;; Both 2.x and 3.x used to be called "python".  In commit
-  ;; a7714d42de2c3082f3609d1e63c83d703fb39cf9 (March 2018), we renamed the
-  ;; Python 2.x package to "python2".
-  (package/inherit python-2
-    (name "python")
-    (properties `((superseded . ,python-2)))))
-
 (define-public python-3.9
   (package
     (inherit python-2)
@@ -743,9 +735,9 @@ compatible with normal Python as possible to allow you to transfer code with
 ease from the desktop to a microcontroller or embedded system.")
     (license license:expat)))
 
-(define-public pypy3
+(define-public pypy
   (package
-    (name "pypy3")
+    (name "pypy")
     (version "7.3.5")
     (source (origin
               (method url-fetch)
@@ -755,148 +747,144 @@ ease from the desktop to a microcontroller or embedded system.")
                (base32
                 "18lrdmpcczlbk3cfarkgwqdmilrybz56i1dafk8dkjlyk90gw86r"))))
     (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f                      ;FIXME: 43 out of 364 tests are failing
+      #:modules '((ice-9 ftw) (ice-9 match)
+                  (guix build utils) (guix build gnu-build-system))
+      #:disallowed-references (list nss-certs)
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure)
+          (add-after 'unpack 'patch-source
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* '("rpython/rlib/clibffi.py")
+                ;; find_library does not work for libc
+                (("ctypes\\.util\\.find_library\\('c'\\)") "'libc.so'"))
+              (substitute* '("lib_pypy/cffi/_pycparser/ply/cpp.py")
+                ;; Make reproducible (XXX: unused?)
+                (("time\\.localtime\\(\\)") "time.gmtime(0)"))
+              (substitute* '("pypy/module/sys/version.py")
+                ;; Make reproducible
+                (("t\\.gmtime\\(\\)") "t.gmtime(0)"))
+              (substitute* '("lib_pypy/_tkinter/tklib_build.py")
+                ;; Link to versioned libtcl and libtk
+                (("linklibs = \\['tcl', 'tk'\\]")
+                 "linklibs = ['tcl8.6', 'tk8.6']")
+                (("incdirs = \\[\\]")
+                 (string-append
+                  "incdirs = ['"
+                  #$(this-package-input "tcl") "/include', '"
+                  #$(this-package-input "tk")  "/include']")))
+              (substitute* '("lib_pypy/_curses_build.py")
+                ;; Find curses
+                (("/usr/local")
+                 #$(this-package-input "ncurses")))
+              (substitute* '("lib_pypy/_dbm.py")
+                ;; Use gdbm compat library, so we don’t need to pull
+                ;; in bdb.
+                (("ctypes.util.find_library\\('db'\\)")
+                 (format #f "~s" (search-input-file
+                                  inputs "lib/libgdbm_compat.so"))))
+              (substitute* '("lib_pypy/_sqlite3_build.py")
+                ;; Always use search paths
+                (("sys\\.platform\\.startswith\\('freebsd'\\)") "True")
+                ;; Find sqlite3
+                (("/usr/local") (assoc-ref inputs "sqlite"))
+                (("libname = 'sqlite3'")
+                 (format #f "libname = ~s"
+                         (search-input-file inputs "lib/libsqlite3.so.0"))))
+              (substitute* '("lib-python/3/subprocess.py")
+                ;; Fix shell path
+                (("/bin/sh")
+                 (search-input-file inputs "/bin/sh")))
+              (substitute* '("lib-python/3/distutils/unixccompiler.py")
+                ;; gcc-toolchain does not provide symlink cc -> gcc
+                (("\"cc\"") "\"gcc\""))))
+          (add-after 'unpack 'set-source-file-times-to-1980
+            ;; copied from python package, required by zip testcase
+            (lambda _
+              (let ((circa-1980 (* 10 366 24 60 60)))
+                (ftw "." (lambda (file stat flag)
+                           (utime file circa-1980 circa-1980)
+                           #t)))))
+          (replace 'build
+            (lambda _
+              (with-directory-excursion "pypy/goal"
+                ;; Build with jit optimization.
+                (invoke "python2"
+                        "../../rpython/bin/rpython"
+                        (string-append "--make-jobs="
+                                       (number->string (parallel-job-count)))
+                        "-Ojit"
+                        "targetpypystandalone"
+                        "--allworkingmodules"))
+              ;; Build c modules and package everything, so tests work.
+              (with-directory-excursion "pypy/tool/release"
+                (invoke "python2" "package.py"
+                        "--archive-name" "pypy-dist"
+                        "--builddir" (getcwd)))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (if tests?
+                  (begin
+                    (setenv "HOME" "/tmp") ; test_with_pip tries to
+                                        ; access ~/.cache/pip
+                    ;; Run library tests only (no interpreter unit tests).
+                    ;; This is what Gentoo does.
+                    (invoke "python" "pypy/test_all.py"
+                            "--pypy=pypy/tool/release/pypy-dist/bin/pypy3"
+                            "lib-python"))
+                  (format #t "test suite not run~%"))))
+          (replace 'install
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((bin-pypy3 (string-append #$output "/bin/pypy3"))
+                     (shebang-match-python "#!.+/bin/python")
+                     (shebang-pypy3 (string-append "#!" bin-pypy3))
+                     (dist-dir "pypy/tool/release/pypy-dist"))
+                (with-directory-excursion dist-dir
+                  ;; Delete test data.
+                  (for-each
+                   (lambda (x)
+                     (delete-file-recursively (string-append
+                                               "lib-python/3/" x)))
+                   '("tkinter/test"
+                     "test"
+                     "sqlite3/test"
+                     "lib2to3/tests"
+                     "idlelib/idle_test"
+                     "distutils/tests"
+                     "ctypes/test"
+                     "unittest/test"))
+                  ;; Patch shebang referencing python.
+                  (substitute* '("lib-python/3/cgi.py"
+                                 "lib-python/3/encodings/rot_13.py")
+                    ((shebang-match-python) shebang-pypy3))
+                  (with-fluids ((%default-port-encoding "ISO-8859-1"))
+                    (substitute* '("lib_pypy/_md5.py"
+                                   "lib_pypy/_sha1.py")
+                      ((shebang-match-python) shebang-pypy3))))
+                (copy-recursively dist-dir out)))))))
     (native-inputs
-     `(("python-2" ,python-2)
-       ("pkg-config" ,pkg-config)
-       ("tar" ,tar)                     ; Required for package.py
-       ("python2-pycparser" ,python2-pycparser)
-       ("python2-hypothesis" ,python2-hypothesis)
-       ("nss-certs" ,nss-certs)         ; For ssl tests
-       ("gzip" ,gzip)))
+     (list gzip
+           nss-certs                    ; For ssl tests
+           pkg-config
+           python-2
+           python2-pycparser
+           tar))                        ; Required for package.py
     (inputs
-     (list libffi
-           zlib
+     (list bzip2
+           expat
+           gdbm
+           glibc
+           libffi
            ncurses
            openssl
-           expat
-           bzip2
            sqlite
-           gdbm
            tcl
            tk
-           glibc
-           xz))                     ; liblzma
-    (arguments
-     `(#:tests? #f                     ;FIXME: 43 out of 364 tests are failing
-       #:modules ((ice-9 ftw) (ice-9 match)
-                  (guix build utils) (guix build gnu-build-system))
-       #:disallowed-references (,nss-certs)
-       #:phases (modify-phases %standard-phases
-                  (delete 'configure)
-                  (add-after 'unpack 'patch-source
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (substitute* '("rpython/rlib/clibffi.py")
-                        ;; find_library does not work for libc
-                        (("ctypes\\.util\\.find_library\\('c'\\)") "'libc.so'"))
-                      (substitute* '("lib_pypy/cffi/_pycparser/ply/cpp.py")
-                        ;; Make reproducible (XXX: unused?)
-                        (("time\\.localtime\\(\\)") "time.gmtime(0)"))
-                      (substitute* '("pypy/module/sys/version.py")
-                        ;; Make reproducible
-                        (("t\\.gmtime\\(\\)") "t.gmtime(0)"))
-                      (substitute* '("lib_pypy/_tkinter/tklib_build.py")
-                        ;; Link to versioned libtcl and libtk
-                        (("linklibs = \\['tcl', 'tk'\\]")
-                         "linklibs = ['tcl8.6', 'tk8.6']")
-                        (("incdirs = \\[\\]")
-                         (string-append "incdirs = ['"
-                                        (assoc-ref inputs "tcl")
-                                        "/include', '"
-                                        (assoc-ref inputs "tk")
-                                        "/include']")))
-                      (substitute* '("lib_pypy/_curses_build.py")
-                        ;; Find curses
-                        (("/usr/local") (assoc-ref inputs "ncurses")))
-                      (substitute* '("lib_pypy/_dbm.py")
-                        ;; Use gdbm compat library, so we don’t need to pull
-                        ;; in bdb.
-                        (("ctypes.util.find_library\\('db'\\)")
-                         (format #f "'~a/lib/libgdbm_compat.so'"
-                                 (assoc-ref inputs "gdbm"))))
-                      (substitute* '("lib_pypy/_sqlite3_build.py")
-                        ;; Always use search paths
-                        (("sys\\.platform\\.startswith\\('freebsd'\\)") "True")
-                        ;; Find sqlite3
-                        (("/usr/local") (assoc-ref inputs "sqlite"))
-                        (("libname = 'sqlite3'")
-                         (string-append "libname = '"
-                                        (assoc-ref inputs "sqlite")
-                                        "/lib/libsqlite3.so.0'")))
-                      (substitute* '("lib-python/3/subprocess.py")
-                        ;; Fix shell path
-                        (("/bin/sh")
-                         (search-input-file inputs "/bin/sh")))
-                      (substitute* '("lib-python/3/distutils/unixccompiler.py")
-                        ;; gcc-toolchain does not provide symlink cc -> gcc
-                        (("\"cc\"") "\"gcc\""))))
-                  (add-after
-                      'unpack 'set-source-file-times-to-1980
-                    ;; copied from python package, required by zip testcase
-                    (lambda _
-                      (let ((circa-1980 (* 10 366 24 60 60)))
-                        (ftw "." (lambda (file stat flag)
-                                   (utime file circa-1980 circa-1980)
-                                   #t)))))
-                  (replace 'build
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (with-directory-excursion "pypy/goal"
-                        ;; Build with jit optimization.
-                        (invoke "python2"
-                                "../../rpython/bin/rpython"
-                                (string-append "--make-jobs="
-                                               (number->string (parallel-job-count)))
-                                "-Ojit"
-                                "targetpypystandalone"
-                                "--allworkingmodules"))
-                      ;; Build c modules and package everything, so tests work.
-                      (with-directory-excursion "pypy/tool/release"
-                        (invoke "python2" "package.py"
-                                "--archive-name" "pypy-dist"
-                                "--builddir" (getcwd)))))
-                  (replace 'check
-                    (lambda* (#:key tests? #:allow-other-keys)
-                      (if tests?
-                          (begin
-                            (setenv "HOME" "/tmp") ; test_with_pip tries to
-                                        ; access ~/.cache/pip
-                            ;; Run library tests only (no interpreter unit
-                            ;; tests). This is what Gentoo does.
-                            (invoke
-                             "python2"
-                             "pypy/test_all.py"
-                             "--pypy=pypy/tool/release/pypy-dist/bin/pypy3"
-                             "lib-python"))
-                          (format #t "test suite not run~%"))))
-                  (replace 'install
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (bin-pypy3 (string-append out "/bin/pypy3"))
-                             (shebang-match-python "#!.+/bin/python")
-                             (shebang-pypy3 (string-append "#!" bin-pypy3))
-                             (dist-dir "pypy/tool/release/pypy-dist"))
-                        (with-directory-excursion dist-dir
-                          ;; Delete test data.
-                          (for-each
-                           (lambda (x)
-                             (delete-file-recursively (string-append
-                                                       "lib-python/3/" x)))
-                           '("tkinter/test"
-                             "test"
-                             "sqlite3/test"
-                             "lib2to3/tests"
-                             "idlelib/idle_test"
-                             "distutils/tests"
-                             "ctypes/test"
-                             "unittest/test"))
-                          ;; Patch shebang referencing python2
-                          (substitute* '("lib-python/3/cgi.py"
-                                         "lib-python/3/encodings/rot_13.py")
-                            ((shebang-match-python) shebang-pypy3))
-                          (with-fluids ((%default-port-encoding "ISO-8859-1"))
-                            (substitute* '("lib_pypy/_md5.py"
-                                           "lib_pypy/_sha1.py")
-                              ((shebang-match-python) shebang-pypy3))))
-                        (copy-recursively dist-dir out)))))))
+           xz
+           zlib))
     (home-page "https://www.pypy.org/")
     (synopsis "Python implementation with just-in-time compilation")
     (description "PyPy is a faster, alternative implementation of the Python
@@ -910,3 +898,5 @@ Python code natively, including C extensions.")
                    (license:non-copyleft
                     "http://www.unicode.org/copyright.html")))))
 
+(define-public pypy3
+  (deprecated-package "pypy3" pypy))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index bf2a3e88c2..9920af74fb 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1771,69 +1771,68 @@ using the Enchant spell-checking library.")
              ;; Do not enable support for loading the Widevine DRM plugin.
              (substitute* "src/buildtools/config/common.pri"
                (("enable_widevine=true")
-                "enable_widevine=false"))
-             #t)))))
+                "enable_widevine=false")))))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)
-       ("gperf" ,gperf)
-       ("ninja" ,ninja)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python-2" ,python-2)
-       ("python-six" ,python2-six)
-       ("ruby" ,ruby)))
+     (list bison
+           flex
+           gperf
+           ninja
+           perl
+           pkg-config
+           python2-six
+           python-2
+           ruby))
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("atk" ,atk)
-       ("cups-minimal" ,cups-minimal)
-       ("curl" ,curl)
-       ("dbus" ,dbus)
-       ("ffmpeg" ,ffmpeg)
-       ("fontconfig" ,fontconfig)
-       ("harbuzz" ,harfbuzz)
-       ("icu4c" ,icu4c)
-       ("jsoncpp" ,jsoncpp)
-       ("lcms" ,lcms)
-       ("libcap" ,libcap)
-       ("libevent" ,libevent)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libvpx" ,libvpx)
-       ("libwebp" ,libwebp)
-       ("libx11" ,libx11)
-       ("libxcb" ,libxcb)
-       ("libxcomposite" ,libxcomposite)
-       ("libxcursor" ,libxcursor)
-       ("libxi" ,libxi)
-       ("libxkbcommon" ,libxkbcommon)
-       ;; FIXME: libxml2 needs to built with icu support though it links to
-       ;; libxml2 configure summary still states "Checking for compatible
-       ;; system libxml2... no"
-       ("libxml2" ,libxml2)
-       ("openh264" ,openh264)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxslt" ,libxslt)
-       ("libxtst" ,libxtst)
-       ("mesa" ,mesa)
-       ("minizip" ,minizip)
-       ("nss" ,nss)
-       ("opus" ,opus)
-       ("pciutils" ,pciutils)
-       ("protobuf" ,protobuf)
-       ("pulseaudio" ,pulseaudio)
-       ("qtbase" ,qtbase-5)
-       ("qtdeclarative" ,qtdeclarative)
-       ("qtmultimedia" ,qtmultimedia)
-       ("qtwebchannel" ,qtwebchannel)
-       ("re2" ,re2)
-       ("snappy" ,snappy)
-       ("udev" ,eudev)
-       ("valgrind" ,valgrind)
-       ("vulkan-headers" ,vulkan-headers)
-       ("xcb-util" ,xcb-util)))
+     (list alsa-lib
+           atk
+           cups-minimal
+           curl
+           dbus
+           ffmpeg
+           fontconfig
+           harfbuzz
+           icu4c
+           jsoncpp
+           lcms
+           libcap
+           libevent
+           libgcrypt
+           libjpeg-turbo
+           libvpx
+           libwebp
+           libx11
+           libxcb
+           libxcomposite
+           libxcursor
+           libxi
+           libxkbcommon
+           ;; FIXME: libxml2 needs to built with icu support though it links to
+           ;; libxml2 configure summary still states "Checking for compatible
+           ;; system libxml2... no"
+           libxml2
+           openh264
+           libxrandr
+           libxrender
+           libxslt
+           libxtst
+           mesa
+           minizip
+           nss
+           opus
+           pciutils
+           protobuf
+           pulseaudio
+           qtbase-5
+           qtdeclarative
+           qtmultimedia
+           qtwebchannel
+           re2
+           snappy
+           eudev
+           valgrind
+           vulkan-headers
+           xcb-util))
     (arguments
      (substitute-keyword-arguments (package-arguments qtsvg)
        ((#:modules modules '())
@@ -1844,13 +1843,12 @@ using the Enchant spell-checking library.")
         `(modify-phases ,phases
            (add-before 'configure 'substitute-source
              (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out"))
-                     (nss (assoc-ref inputs "nss"))
-                     (udev (assoc-ref inputs "udev")))
-                 (with-atomic-file-replacement "src/buildtools/config/linux.pri"
-                   (lambda (in out)
-                     (display (get-string-all in) out)
-                     (display "\ngn_args += use_system_openh264=true\n" out)))
+               (let ((out (assoc-ref outputs "out")))
+                 (with-atomic-file-replacement
+                  "src/buildtools/config/linux.pri"
+                  (lambda (in out)
+                    (display (get-string-all in) out)
+                    (display "\ngn_args += use_system_openh264=true\n" out)))
                  ;; Qtwebengine is not installed into the same prefix as
                  ;; qtbase.  Some qtbase QTLibraryInfo constants will not
                  ;; work.  Replace with the full path to the qtwebengine
@@ -1863,12 +1861,11 @@ using the Enchant spell-checking library.")
                  ;; Substitute full dynamic library path for nss.
                  (substitute* "src/3rdparty/chromium/crypto/nss_util.cc"
                    (("libnssckbi.so")
-                    (string-append nss "/lib/nss/libnssckbi.so")))
+                    (search-input-file inputs "lib/nss/libnssckbi.so")))
                  ;; Substitute full dynamic library path for udev.
                  (substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
                    (("libudev.so.1")
-                    (string-append udev "/lib/libudev.so.1")))
-                 #t)))
+                    (search-input-file inputs "lib/libudev.so.1"))))))
            (add-before 'configure 'set-env
              (lambda _
                ;; Avoids potential race conditions.
@@ -1876,8 +1873,7 @@ using the Enchant spell-checking library.")
                (setenv "NINJAFLAGS"
                        (string-append "-k1" ;less verbose build output
                                       ;; Respect the '--cores' option of 'guix build'.
-                                      " -j" (number->string (parallel-job-count))))
-               #t))
+                                      " -j" (number->string (parallel-job-count))))))
            (replace 'configure
              (lambda _
                ;; Valid QT_BUILD_PARTS variables are:
@@ -2000,7 +1996,7 @@ module provides support functions to the automatically generated code.")
   (package
     (inherit python-sip)
     (name "python-sip")
-    (version "4.19.24")
+    (version "4.19.25")
     (source
       (origin
         (method url-fetch)
@@ -2010,7 +2006,7 @@ module provides support functions to the automatically generated code.")
                                   "/sip-" version ".tar.gz")))
         (sha256
          (base32
-          "1ra15vb5i9gkg2vdvh16cq9x2mmzw1yi3xphxs8q34q1pf83gkgd"))))
+          "04a23cgsnx150xq86w1z44b6vr2zyazysy9mqax0fy346zlr77dk"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("python" ,python-wrapper)))
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index ac81d337a3..dfae252f0a 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -430,30 +430,6 @@ controls for certain tuners which may be paired with an audio device.")
      "This package provides RTL-SDR devices support to the SoapySDR library.")
     (license license:expat)))
 
-(define-public chirp
-  (package
-    (name "chirp")
-    (version "20220118")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
-                           version "/chirp-daily-" version ".tar.gz"))
-       (sha256
-        (base32 "0q2ifmprxqqxnww8fx8fjmm2lv9vdv6xzsk1ysa27fb290vgyawn"))))
-    (build-system python-build-system)
-    (inputs
-     (list python2-libxml2 python2-pygtk python2-pyserial))
-    (arguments
-     `(#:python ,python-2))
-    (home-page "https://chirp.danplanet.com")
-    (synopsis "Cross-radio programming tool")
-    (description "Chirp is a cross-radio programming tool.  It supports a
-growing list of radios across several manufacturers and allows transferring of
-memory contents between them.")
-    (license (list license:gpl3+
-                   license:lgpl3+)))) ; chirp/elib_intl.py
-
 (define-public aptdec
   ;; No release since 2013, use commit directly.
   (let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da")
diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm
index 826330585d..03aecd1ee5 100644
--- a/gnu/packages/rdf.scm
+++ b/gnu/packages/rdf.scm
@@ -399,9 +399,6 @@ powerful language for representing information.")
     ;; and this package is only transitional.
     (arguments '(#:tests? #f))))
 
-(define-public python2-rdflib
-  (package-with-python2 python-rdflib-5))
-
 ;; Note: This package is only needed for rdflib < 6.0; supersede when
 ;; the above are removed.
 (define-public python-rdflib-jsonld
@@ -471,6 +468,43 @@ RDF data that can also be queried for Triple Patterns.  This package provides a
 C++ library as well as various command-line tools to to work with HDT.")
 (license license:lgpl2.1+)))
 
+(define-public python-pyrdfa3
+  (package
+    (name "python-pyrdfa3")
+    (version "3.5.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pyRdfa3" version))
+       (sha256
+        (base32 "1biif5lav3gswkhjzq882s4rgxzmvwsy5gb9dxdk9pw75fln6xhm"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:tests? #f                       ;no test suite
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-python-3-issues
+            (lambda _
+              ;; Delete files that appear to be versions for older Pythons;
+              ;; they fail to byte compile (see:
+              ;; https://github.com/RDFLib/pyrdfa3/issues/41).
+              (with-directory-excursion "pyRdfaExtras/serializers"
+                (for-each delete-file
+                          (list "prettyXMLserializer_3.py"
+                                "prettyXMLserializer_3_2.py")))
+              ;; See https://github.com/RDFLib/pyrdfa3/issues/42.
+              (substitute* "pyRdfaExtras/__init__.py"
+                (("from StringIO import StringIO")
+                 "from io import StringIO")))))))
+    (propagated-inputs (list python-html5lib python-rdflib))
+    (home-page "https://www.w3.org/2012/pyRdfa/")
+    (synopsis "RDFa Python distiller/parser library")
+    (description "This library can extract RDFa 1.1 from (X)HTML, SVG, or XML.
+It can produce serialized versions of the extracted graph, or an RDFLib
+Graph.")
+    (license license:bsd-3)))
+
 (define-public python-sparqlwrapper
   (package
     (name "python-sparqlwrapper")
diff --git a/gnu/packages/rsync.scm b/gnu/packages/rsync.scm
index 13717f0249..2b3673c90c 100644
--- a/gnu/packages/rsync.scm
+++ b/gnu/packages/rsync.scm
@@ -39,14 +39,14 @@
 (define-public rsync
   (package
    (name "rsync")
-   (version "3.2.3")
+   (version "3.2.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://rsync.samba.org/ftp/rsync/src/rsync-"
                                 version ".tar.gz"))
             (sha256
              (base32
-              "03p5dha9g9krq61mdbcrjkpz5nglri0009ks2vs9k97f9i83rk5y"))))
+              "1lgslprbfirl9p9ca16syh0pzr4kgmrzdxwwayvb0ll0s0w1hxkg"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags
diff --git a/gnu/packages/sagemath.scm b/gnu/packages/sagemath.scm
index b603a2f151..7f76f8912b 100644
--- a/gnu/packages/sagemath.scm
+++ b/gnu/packages/sagemath.scm
@@ -69,9 +69,6 @@ PARI/GP.  It has been spun off from the SageMath mathematics software system,
 but it can be used independently.")
     (license license:gpl2+)))
 
-(define-public python2-cypari2
-  (package-with-python2 python-cypari2))
-
 ;; The stable version of the following package is not young enough to be
 ;; used with Sage, since it does not support cython; so we use a beta
 ;; release.
@@ -101,9 +98,6 @@ but it can be used independently.")
 libraries GMO, MPFR and MPC.")
     (license license:lgpl3+)))
 
-(define-public python2-gmpy2
-  (package-with-python2 python-gmpy2))
-
 (define-public cliquer
   (package
     (name "cliquer")
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 2cc1fa38c0..74ea57137f 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -446,9 +446,6 @@ aware applications in Python.  The smart card module is built on top of the
 PCSC API Python wrapper module.")
     (license license:lgpl2.1+)))
 
-(define-public python2-pyscard
-  (package-with-python2 python-pyscard))
-
 (define-public yubikey-oath-dmenu
   (package
     (name "yubikey-oath-dmenu")
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index 93f174217a..1ae6be40ca 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -146,54 +146,7 @@
     (description "Sphinx is a tool that makes it easy to create documentation
 for Python projects or other documents consisting of multiple reStructuredText
 sources.")
-    (license license:bsd-2)
-    (properties `((python2-variant . ,(delay python2-sphinx))))))
-
-;; Sphinx 2 does not support Python 2, so we stick with this older version here.
-(define-public python2-sphinx
-  (let ((base (package-with-python2 (strip-python2-variant python-sphinx))))
-    (package
-      (inherit base)
-      (version "1.7.7")
-      (source (origin
-                (method url-fetch)
-                (uri (pypi-uri "Sphinx" version))
-                (sha256
-                 (base32
-                  "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi"))))
-      (arguments
-       (substitute-keyword-arguments (package-arguments base)
-         ((#:phases phases)
-          `(modify-phases ,phases
-             (add-before 'check 'disable-broken-tests
-               (lambda _
-                 (for-each delete-file
-                           ;; These tests are broken when using Python2:
-                           ;; <https://github.com/sphinx-doc/sphinx/issues/4710>.
-                           '("tests/test_api_translator.py"
-                             "tests/test_setup_command.py"
-                             ;; Websupport is provided by a separate package
-                             "tests/test_websupport.py"
-                             ;; This one fails for unknown reasons.
-                             "tests/test_correct_year.py"))))))))
-      (native-inputs (modify-inputs (package-native-inputs base)
-                       (prepend python2-mock python2-enum34)))
-      ;; Sphinx 2 has some dependencies that do not support Python 2, so
-      ;; we keep our own propagated-inputs here instead of inheriting.
-      (propagated-inputs
-       (list python2-pytz
-             python2-typing
-             python2-imagesize
-             python2-sphinx-alabaster-theme
-             python2-babel
-             python2-snowballstemmer
-             python2-docutils-0.14
-             python2-jinja2
-             python2-packaging
-             python2-pygments
-             python2-requests
-             python2-six
-             python2-sphinxcontrib-websupport)))))
+    (license license:bsd-2)))
 
 (define-public python-sphinxcontrib-apidoc
   (package
@@ -517,32 +470,12 @@ builder does not support SVG images natively (e.g. LaTeX).")
      `(#:tests? #f))
     (home-page "https://sphinx-doc.org/")
     (synopsis "Sphinx API for web applications")
-    (description "This package provides a Python API to easily integrate
+    (description
+     "This package provides a Python API to easily integrate
 Sphinx documentation into your web application.  It provides tools to
 integrate Sphinx documents in web templates and to handle searches.")
-    (license license:bsd-3)
-    (properties `((python2-variant . ,(delay python2-sphinxcontrib-websupport))))))
+    (license license:bsd-3)))
 
-;; 1.1.2 is the last version to support Python 2.
-(define-public python2-sphinxcontrib-websupport
-  (package
-    (inherit (package-with-python2
-              (strip-python2-variant python-sphinxcontrib-websupport)))
-    (version "1.1.2")
-    (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "sphinxcontrib-websupport" version))
-              (sha256
-               (base32
-                "1z7fqra0xm1cdp8vvp80fcvnjlywym7bzz80m0liq7fz1zxvw08m"))))
-    (arguments
-     `(#:tests? #f
-       #:python ,python-2
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'sanity-check))))
-    (propagated-inputs
-     (list python2-six))))
 
 (define-public python-sphinx-gallery
   (package
@@ -678,9 +611,6 @@ introspection of @code{zope.interface} instances in code.")
 theme for the Sphinx documentation system.  It's the default theme of Sphinx.")
     (license license:bsd-3)))
 
-(define-public python2-sphinx-alabaster-theme
-  (package-with-python2 python-sphinx-alabaster-theme))
-
 (define-public python-sphinx-argparse
   (package
     (name "python-sphinx-argparse")
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index aad329400f..6e18fc3f4d 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages java)
   #:use-module (gnu packages javascript)
   #:use-module (gnu packages libffi)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages multiprecision)
@@ -203,7 +204,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
 (define r-with-tests
   (package
     (name "r-with-tests")
-    (version "4.1.3")
+    (version "4.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://cran/src/base/R-"
@@ -211,7 +212,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1mpy4sar1amx5ai9rqr9s0nw8p65iqfrqbm5n9h402b17hrmpzqm"))))
+                "123l17sv3smh5cz0vrjxjj8jf81bb860kah6iww9bl3skdqvgsiq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
@@ -237,6 +238,16 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
                  (("uname") uname-bin))
                (substitute* "src/unix/sys-std.c"
                  (("rm -Rf ") (string-append rm-bin " -Rf "))))))
+         (add-after 'unpack 'patch-tests
+           (lambda _
+             ;; This is needed because R is run during the check phase and
+             ;; /bin/sh doesn't exist in the build container.
+             (substitute* "src/unix/sys-unix.c"
+               (("\"/bin/sh\"")
+                (string-append "\"" (which "sh") "\"")))
+             ;; This test fails because line numbers are off by two.
+             (substitute* "tests/reg-packages.R"
+               (("8 <= print" m) (string-append "## " m)))))
          (add-after 'unpack 'build-reproducibly
            (lambda _
              ;; The documentation contains time stamps to demonstrate
@@ -315,6 +326,9 @@ as.POSIXct(if (\"\" != Sys.getenv(\"SOURCE_DATE_EPOCH\")) {\
              (setenv "TZDIR"
                      (search-input-directory inputs
                                              "share/zoneinfo"))))
+         (add-before 'check 'set-home
+           ;; Some tests require that HOME be set.
+           (lambda _ (setenv "HOME" "/tmp")))
          (add-after 'build 'make-info
           (lambda _ (invoke "make" "info")))
          (add-after 'build 'install-info
@@ -493,14 +507,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.")
 (define-public r-mass
   (package
     (name "r-mass")
-    (version "7.3-56")
+    (version "7.3-57")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "MASS" version))
        (sha256
         (base32
-         "11gv5965ba6xr4qsp1945vd39rp0sggzpa103rwj1c5hw0abvnlv"))))
+         "13asg609szqq8d1a4ybr508qcanr9gvqd439vfras6mw0l0qi2xx"))))
     (properties `((upstream-name . "MASS")))
     (build-system r-build-system)
     (home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
@@ -912,13 +926,13 @@ additions (tooltips, bipartite diagram type).")
 (define-public r-dichromat
   (package
     (name "r-dichromat")
-    (version "2.0-0")
+    (version "2.0-0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "dichromat" version))
        (sha256
-        (base32 "1l8db1nk29ccqg3mkbafvfiw0775iq4gapysf88xq2zp6spiw59i"))))
+        (base32 "10b0avdar3d1y8x2ya3x5kqxqg0z0mq872hdzvc1nn4amplph1d1"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/dichromat")
     (synopsis "Color schemes for dichromats")
@@ -1215,13 +1229,13 @@ using just two functions: melt and dcast (or acast).")
 (define-public r-ggplot2
   (package
     (name "r-ggplot2")
-    (version "3.3.5")
+    (version "3.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "ggplot2" version))
        (sha256
-        (base32 "1si46bf9p09qzs208hqffwcb40305p361whmwhc1pwrsmx7jjxdh"))))
+        (base32 "1aa377jdfajj8ld2fh159y8havlibsr4pjisf6mkzk8g5awlxjxz"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-digest
@@ -1537,13 +1551,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
 (define-public r-knitr
   (package
     (name "r-knitr")
-    (version "1.38")
+    (version "1.39")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "knitr" version))
               (sha256
                (base32
-                "1bg7nmd2bvfd2gscp4nly4a2c05bpgzq536bmmf93vaf860yhf6i"))))
+                "0wmcj6xv0bcqzmp5vm8s574rfx366rkgm03lgyppk9ywxgnna6n9"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-evaluate r-highr r-stringr r-xfun r-yaml))
@@ -1680,13 +1694,13 @@ R packages that praise their users.")
 (define-public r-testthat
   (package
     (name "r-testthat")
-    (version "3.1.3")
+    (version "3.1.4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "testthat" version))
               (sha256
                (base32
-                "0c7whxl6zwapqzdplwplvhs73w9blb419h2mdl21pwmqjhzjaq68"))))
+                "02cwdix7v8zsvcmcl3h5hfi66w1ln9qi60risf5nl62f3c1yqzm4"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-brio
@@ -1760,14 +1774,14 @@ like tidy evaluation.")
 (define-public r-tibble
   (package
     (name "r-tibble")
-    (version "3.1.6")
+    (version "3.1.7")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tibble" version))
        (sha256
         (base32
-         "14l2i6ri3v5y0h8g0ahc4kz0pdqsp5yabxk2w8wavss6y44xjcsv"))))
+         "0wn8j7slfqrdl126g536sg1xkrvjd9rlsk0bjqk3b03nyj8hi9g1"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-ellipsis
@@ -1790,13 +1804,13 @@ and printing capabilities than traditional data frames.")
 (define-public r-dplyr
   (package
     (name "r-dplyr")
-    (version "1.0.8")
+    (version "1.0.9")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "dplyr" version))
               (sha256
                (base32
-                "0xb04ckp29pva1h2rfahqhmk9gcwp2dbbx3av8ip40v7dnha6siv"))))
+                "0sxl9yzccsdhlrrwj26lmh9frsijxyfaf7csv8mf7d0q4qqzgqg2"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-generics
@@ -1929,13 +1943,13 @@ and density estimation.")
 (define-public r-chron
   (package
     (name "r-chron")
-    (version "2.3-56")
+    (version "2.3-57")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "chron" version))
               (sha256
                (base32
-                "0p9zz96jfyf139924hdwkzhr8knkjvx6547ac53rknm3a6wwngl6"))))
+                "0cn2367mw27qf2nj8d1i182ns3nlzlkgix6c18mc3byihimdhicn"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/chron")
     (synopsis "Chronological R objects which can handle dates and times")
@@ -2019,9 +2033,6 @@ building design matrices.")
     ;; and is covered by the PSFL.
     (license (list license:bsd-2 license:psfl))))
 
-(define-public python2-patsy
-  (package-with-python2 python-patsy))
-
 (define-public python-statsmodels
   (package
     (name "python-statsmodels")
@@ -2068,27 +2079,6 @@ statistical computations including descriptive statistics and estimation and
 inference for statistical models.")
     (license license:bsd-3)))
 
-(define-public python2-statsmodels
-  (let ((stats (package-with-python2 python-statsmodels)))
-    (package/inherit stats
-      ;; Version 0.11.1 and later does not work with Python 2.  It may build
-      ;; fine but loading modules fails.
-      (version "0.9.0")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "statsmodels" version))
-         (sha256
-          (base32
-           "0fxs8a7sp4d7jvqlm36yi45i2d28kjfvraf9q8i9jr1chhxgjqb4"))))
-      (propagated-inputs
-       `(("python2-pytz" ,python2-pytz)
-         ("python2-numpy" ,python2-numpy)
-         ("python2-scipy" ,python2-scipy)
-         ("python2-pandas" ,python2-pandas)
-         ("python2-patsy" ,python2-patsy)
-         ("python2-matplotlib" ,python2-matplotlib))))))
-
 (define-public r-coda
   (package
     (name "r-coda")
@@ -2113,14 +2103,14 @@ chain.")
 (define-public r-ade4
   (package
     (name "r-ade4")
-    (version "1.7-18")
+    (version "1.7-19")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "ade4" version))
         (sha256
           (base32
-            "09f5kh2mwygqpnvf53k0r54k0cvaafxm9x4nm819gwv05k2g9dpc"))))
+            "1vv5y6badksnpjb3bcphhjdzzh6i2grmwnsalcf2cfpr3y412lf8"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-mass r-pixmap r-sp))
@@ -2245,17 +2235,19 @@ R version.")
 (define-public r-checkmate
   (package
     (name "r-checkmate")
-    (version "2.0.0")
+    (version "2.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "checkmate" version))
        (sha256
         (base32
-         "193gkifr9spp0x0rwnjq1spdhjkfkh4mv27iklskcj604075phhd"))))
+         "1ii11lypfz8qwswaiagaxnfq6wqkg3cq4j7k9q40sdd0cd8xv15p"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-backports))
+    (native-inputs
+     (list r-knitr))
     (home-page "https://github.com/mllg/checkmate")
     (synopsis "Fast and versatile argument checks")
     (description
@@ -2406,16 +2398,17 @@ tables, autolinks and strikethrough text.")
 (define-public r-roxygen2
   (package
     (name "r-roxygen2")
-    (version "7.1.2")
+    (version "7.2.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "roxygen2" version))
               (sha256
                (base32
-                "1zf55wywlpy7mk7zfyi3s9fhhg1m9kvafzj46iqw5cbvnlg3ssdk"))))
+                "12s436jn7aagjpc2lnlrhzwqgsdl8lbbwhkddih6rnxrczawzgrf"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-brew
+           r-cli
            r-commonmark
            r-cpp11
            r-desc
@@ -2427,6 +2420,7 @@ tables, autolinks and strikethrough text.")
            r-rlang
            r-stringi
            r-stringr
+           r-withr
            r-xml2))
     (native-inputs
      (list r-knitr))
@@ -2440,14 +2434,14 @@ collation, and NAMESPACE files.")
 (define-public r-openssl
   (package
     (name "r-openssl")
-    (version "2.0.0")
+    (version "2.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "openssl" version))
        (sha256
         (base32
-         "0jsnzxa72bfxsdai25xyklmmrraaf9yv2nmqmf0bgzrkbzkgsa7b"))))
+         "1i7il5kkr1yp2xk8zw7max4llga4hfz0cx9sx0v2xnb9pg4ksbc6"))))
     (build-system r-build-system)
     (arguments
      (list
@@ -2482,13 +2476,13 @@ integers.")
 (define-public r-httr
   (package
     (name "r-httr")
-    (version "1.4.2")
+    (version "1.4.3")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "httr" version))
               (sha256
                (base32
-                "1y8y1g1dkgv9jafrk1kj6pzxpw95c0rr9lplblfq2byrs1pfsas6"))))
+                "0skwi501rzndywn81704d68n1l6lrvqilf91q08cjfhpjvx171ls"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-curl r-jsonlite r-openssl r-mime r-r6))
@@ -2721,13 +2715,13 @@ well as additional utilities such as panel and axis annotation functions.")
 (define-public r-rcpparmadillo
   (package
     (name "r-rcpparmadillo")
-    (version "0.11.0.0.0")
+    (version "0.11.1.1.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RcppArmadillo" version))
               (sha256
                (base32
-                "13blvrlbw8194a96v38hnllnwvyhdw5x9m0dnkyw3xsi3jrhcxin"))))
+                "15s8lx3s0g9npwmys509ahrqc786lg2cid21civ3wm219i4gq2zb"))))
     (properties `((upstream-name . "RcppArmadillo")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2813,13 +2807,13 @@ certain criterion, e.g., it contains a certain regular file.")
 (define-public r-rmarkdown
   (package
     (name "r-rmarkdown")
-    (version "2.13")
+    (version "2.14")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "rmarkdown" version))
         (sha256
-          (base32 "0i07p3dxxv2s2a4xmyhc3qxmwg86vakniq5jjjclmcq2sahvw5vj"))))
+          (base32 "081j1hpxcwadn606ch5lq279s66c1b0f0mjvap7yimnrljpigv79"))))
     (properties `((upstream-name . "rmarkdown")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2928,13 +2922,13 @@ a column in data frame.")
 (define-public r-rsqlite
   (package
     (name "r-rsqlite")
-    (version "2.2.12")
+    (version "2.2.14")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "RSQLite" version))
               (sha256
                (base32
-                "12ka9cp591sc3hn5r6z4skbjzm3nfq338wlpjdmw6rz26mmr2c9s"))))
+                "0z307d7rx7blh2apc9dbw9vgad2ldbf9vbdjhmwlj0mwbs3nmqra"))))
     (properties `((upstream-name . "RSQLite")))
     (build-system r-build-system)
     (propagated-inputs
@@ -2958,15 +2952,13 @@ engine (version 3.8.8.2) is included.")
 (define-public r-rcurl
   (package
     (name "r-rcurl")
-    (version "1.95-0.1.2")
+    (version "1.98-1.6")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://www.bioconductor.org/packages/"
-                                  "release/extra/src/"
-                                  "contrib/RCurl_" version ".tar.gz"))
+              (uri (cran-uri "RCurl" version))
               (sha256
                (base32
-                "0l7qi45jxlf898n0jazabnam1yyczvqfdknd00bdirhhiplpd1sc"))))
+                "18nif4phr5vfhri07mnchiym0qfm31ak9nxvb2v9ac84mij6idbc"))))
     (properties `((upstream-name . "RCurl")))
     (build-system r-build-system)
     (arguments
@@ -2979,10 +2971,11 @@ engine (version 3.8.8.2) is included.")
                 (string-append "\
 certs = Sys.getenv(\"CURL_CA_BUNDLE\")
 if (certs != \"\") { .opts = merge.list(.opts, list(cainfo=certs)) }
-" m)))
-             #t)))))
+" m))))))))
+    (native-inputs
+     (list libxml2))
     (inputs
-     `(("libcurl" ,curl)))
+     (list curl))
     (propagated-inputs
      (list r-bitops))
     (home-page "http://www.omegahat.net/RCurl")
@@ -3122,14 +3115,14 @@ statements.")
 (define-public r-segmented
   (package
     (name "r-segmented")
-    (version "1.4-1")
+    (version "1.5-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "segmented" version))
        (sha256
         (base32
-         "1aagn2v48ncwxx79h601nlalbgc40fc81nqaw6nbncqkqm0zaxi3"))))
+         "1d8np6psnmqyq3bxxd17ivp6pq6p8rx5hal4bgz8ckc4d1i9lp6n"))))
     (build-system r-build-system)
     (propagated-inputs (list r-mass))
     (home-page "https://cran.r-project.org/web/packages/segmented")
@@ -3565,13 +3558,13 @@ using the multicore functionality of the parallel package.")
             "datatables-extensions/Select"))))
     (package
       (name "r-dt")
-      (version "0.22")
+      (version "0.23")
       (source (origin
                 (method url-fetch)
                 (uri (cran-uri "DT" version))
                 (sha256
                  (base32
-                  "16ah0h60ygvj49cs6cxxhdxx68cs6v6m35w5r1j5h8nxz171q61z"))
+                  "0w6wgiwa3zgldp175a3q7zfw853xqc7mfj34n6hja48ln7yf42in"))
                 (modules '((guix build utils)))
                 (snippet
                  '(for-each delete-file
@@ -3716,13 +3709,13 @@ analysis of large sparse or dense matrices.")
 (define-public r-glmnet
   (package
    (name "r-glmnet")
-   (version "4.1-3")
+   (version "4.1-4")
    (source
     (origin
      (method url-fetch)
      (uri (cran-uri "glmnet" version))
      (sha256
-      (base32 "0nij8v44b5dvp1vc843sfkl9ds83n6g687m2p37q1rdn82m3bg34"))))
+      (base32 "1y80a3b5s24ywhlil3r7b3a0vs9j59d7jkxrqa8zz09x1c5ggc7n"))))
    (build-system r-build-system)
    (native-inputs
     (list gfortran r-knitr))
@@ -3817,14 +3810,14 @@ the way current RNG settings can be changed.")
 (define-public r-rtsne
   (package
     (name "r-rtsne")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Rtsne" version))
        (sha256
         (base32
-         "0v17vxizrs1msay24xl2bckfajr2c82wpqj07lyssbrq197nwdsn"))))
+         "1mgviwrqwapn8w7rq0sjxca5vi7ylgmm876ijwp22a3chbf5m82j"))))
     (properties `((upstream-name . "Rtsne")))
     (build-system r-build-system)
     (propagated-inputs
@@ -3905,17 +3898,19 @@ message passing.")
 (define-public r-bigmemory
   (package
     (name "r-bigmemory")
-    (version "4.5.36")
+    (version "4.6.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "bigmemory" version))
        (sha256
         (base32
-         "03pg8mxdc7q0249visjmc8bc3xmwxsfg3i2n6higicj4cfz7zihq"))))
+         "0hainqkm7cs8gjm42vkpdrr0284smsbwdfackp34yv7dhxy1avmm"))))
     (build-system r-build-system)
     (propagated-inputs
-     (list r-bh r-rcpp r-bigmemory-sri))
+     (list r-bh r-bigmemory-sri r-rcpp r-uuid))
+    (inputs
+     (list `(,util-linux "lib"))) ;for -luuid
     (home-page "http://www.bigmemory.org")
     (synopsis "Manage large matrices with shared memory or memory-mapped files")
     (description "This package provides methods to create, store, access, and
@@ -4075,13 +4070,13 @@ t-probabilities, quantiles, random deviates and densities.")
 (define-public r-matrixstats
   (package
     (name "r-matrixstats")
-    (version "0.61.0")
+    (version "0.62.0")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "matrixStats" version))
               (sha256
                (base32
-                "16pxsba5i51ifbbgvxln2w6nigbwd3290b2ckgzn5bmib7nc1lyv"))))
+                "1jjfsi5vzx6js7phlnd3v64fd05fg0jyz8iq5pivy36jdmmh3ql5"))))
     (properties `((upstream-name . "matrixStats")))
     (build-system r-build-system)
     (arguments
@@ -4466,13 +4461,13 @@ package instead.")
 (define-public r-hmisc
   (package
     (name "r-hmisc")
-    (version "4.6-0")
+    (version "4.7-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "Hmisc" version))
        (sha256
-        (base32 "1bd1c8sichyijprfpnqj5g72nmgs9jvi0zyw8v4nsg1kn83fj71c"))))
+        (base32 "1gc71wg6f17x6nriphs1kk39ix7lpqk32clk1qshqy8wl6f2vv19"))))
     (properties `((upstream-name . "Hmisc")))
     (build-system r-build-system)
     (native-inputs
@@ -4592,14 +4587,14 @@ Zurich, including many that are related to graphics.")
 (define-public r-gtools
   (package
     (name "r-gtools")
-    (version "3.9.2")
+    (version "3.9.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gtools" version))
        (sha256
         (base32
-         "0lx97yafrms2mjym8rhcq5586z7s1iqgy8qfm4px3xl1yn5qkc83"))))
+         "0pxg0ang9q26hlwgf53pp1hq6rlarq5rnrrr9dl14f5kgfnynpzc"))))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/web/packages/gtools")
     (synopsis "Various R programming tools")
@@ -4614,14 +4609,14 @@ tests for whether a value is missing, empty or contains only @code{NA} and
 (define-public r-gdata
   (package
     (name "r-gdata")
-    (version "2.18.0")
+    (version "2.18.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gdata" version))
        (sha256
         (base32
-         "0zwdj7lscgxr8r62ii8hbdh4mb7sa9w4f5nv32zzrxdvymcpya2b"))))
+         "1n9jw136kk5ld27qvny7cx2s8l34jdgmzlx40x62mmcqjddksbsy"))))
     (build-system r-build-system)
     (inputs
      (list perl))
@@ -4654,14 +4649,14 @@ including:
 (define-public r-gplots
   (package
     (name "r-gplots")
-    (version "3.1.1")
+    (version "3.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "gplots" version))
        (sha256
         (base32
-         "0f8khaymz383w2ksnk80d4kpnvgmdk37pbycpsnl2vabaz11kbpr"))))
+         "05k7a8x62qs5g6mps62vb3mwjdnfjzvjb20yws3x0r2j42g3p1cz"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-catools r-gtools r-kernsmooth))
@@ -4997,14 +4992,14 @@ mixture models.")
 (define-public r-lars
   (package
     (name "r-lars")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "lars" version))
        (sha256
         (base32
-         "0blj44wqrx6lmym1m9v6wkz8zxzbjax2zl6swgdczci0ixb5nx34"))))
+         "17al1g0pvfz9frs2kxicqr8dyp7ciz3x87yx2l4lqd53ls6nm7n6"))))
     (build-system r-build-system)
     (inputs
      (list gfortran))
@@ -5044,14 +5039,14 @@ perform @dfn{independent component analysis} (ICA) and projection pursuit.")
 (define-public r-randomforest
   (package
     (name "r-randomforest")
-    (version "4.7-1")
+    (version "4.7-1.1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "randomForest" version))
        (sha256
         (base32
-         "04q6gb917md4yw837cf9vlx1q8ljl06jw7yhykzb6nl47w55jnkq"))))
+         "1micz9794j7xmj755ln2692rzip8azndflxgdg6xn3j86issi7pm"))))
     (properties `((upstream-name . "randomForest")))
     (build-system r-build-system)
     (home-page "https://www.stat.berkeley.edu/~breiman/RandomForests/")
@@ -5130,14 +5125,14 @@ models, generalized linear models and model-based clustering.")
 (define-public r-mclust
   (package
     (name "r-mclust")
-    (version "5.4.9")
+    (version "5.4.10")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "mclust" version))
        (sha256
         (base32
-         "0s4mva0n04f3pl41msmzhlh7pnk0zbmf06n826smxkw6mz327wb5"))))
+         "0wh6nsbma4b0wsmqm2ynbznl2wlwdly4vg583f6z0zd1qkrvn6ra"))))
     (build-system r-build-system)
     (native-inputs
      (list gfortran r-knitr))
@@ -5222,14 +5217,14 @@ regression methodology including model selections and multivariate statistics.")
 (define-public r-pcapp
   (package
     (name "r-pcapp")
-    (version "1.9-74")
+    (version "2.0-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "pcaPP" version))
        (sha256
         (base32
-         "1dlrz5plb8b89vr3j6sn9jwryyhcwflqkiilxkybbr379m1pp0sh"))))
+         "06hjhr0dzdp5yhd421q9scbv6w6bchicbn2bl7am490ncgrf544n"))))
     (properties `((upstream-name . "pcaPP")))
     (build-system r-build-system)
     (propagated-inputs
@@ -5244,14 +5239,14 @@ analysis} (PCA) by projection pursuit.")
 (define-public r-rrcov
   (package
     (name "r-rrcov")
-    (version "1.6-2")
+    (version "1.7-0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "rrcov" version))
        (sha256
         (base32
-         "18x8y2b9n2plpn4086nkjk9c27p7gb78kbrv5pj9r8fb0idl5rn5"))))
+         "1z98j9973hl19b70dcwfcf55ifxr2a9v53daaq2sagynh95aik6b"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-lattice r-mvtnorm r-pcapp r-robustbase))
@@ -5507,18 +5502,24 @@ using modular prediction and response module classes.")
 (define-public r-quantreg
   (package
     (name "r-quantreg")
-    (version "5.88")
+    (version "5.93")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "quantreg" version))
        (sha256
-        (base32 "0grsha18zkiil0qnxc1d7kc3w26i6aaa4av9n9ahdm8yf59yah0r"))))
+        (base32 "0fg5x6sa8mz2hh9nak0wajh4l6h03x216462vs94rgq0ln24kafl"))))
     (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'set-HOME
+           (lambda _ (setenv "HOME" "/tmp"))))))
     (native-inputs
-     (list gfortran))
+     (list gfortran
+           r-r-rsp)) ;for vignettes
     (propagated-inputs
-     (list r-matrix r-matrixmodels r-sparsem))
+     (list r-mass r-matrix r-matrixmodels r-sparsem r-survival))
     (home-page "https://www.r-project.org")
     (synopsis "Quantile regression")
     (description
@@ -5532,14 +5533,14 @@ expected shortfall risk are also included.")
 (define-public r-nloptr
   (package
     (name "r-nloptr")
-    (version "2.0.0")
+    (version "2.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "nloptr" version))
        (sha256
         (base32
-         "16k124ll14p3ygny6i1zd7yza83bv2sk87x922n1bfn9rx4k3jk5"))))
+         "1mqnjswm0dl6vqc8b2s5k3n1mhanaha3l33vh68dh6zx8q9aq9kv"))))
     (build-system r-build-system)
     (native-inputs
      (list r-knitr ; for building vignettes
@@ -5642,13 +5643,13 @@ Companion to Applied Regression, Third Edition, Sage.")
 (define-public r-car
   (package
     (name "r-car")
-    (version "3.0-12")
+    (version "3.0-13")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "car" version))
        (sha256
-        (base32 "00kk8l71508f73kyn21is1mx6kjbrzdq3ls94c5ajhiqmvpsd6dq"))))
+        (base32 "1ss7kvi5hf9s4b6i7y06zl4iip1w1h8ff4zzf529wk18h3dfhnnk"))))
     (build-system r-build-system)
     (propagated-inputs
      (list r-abind
@@ -5792,14 +5793,14 @@ multivariate case.")
 (define-public r-tclust
   (package
     (name "r-tclust")
-    (version "1.4-2")
+    (version "1.5-1")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "tclust" version))
        (sha256
         (base32
-         "1nb5iky4kc832627jf28lzj19wrvgwg5da6fyl3kyf0npmyx1p4m"))))
+         "09zk38gih67a8lk72k46mfgv21jpnxh2nzrxc5ypdc2bfwq8nckk"))))
     (build-system r-build-system)
     ;; These are all suggested packages, not build dependencies.
     (propagated-inputs
@@ -6454,14 +6455,14 @@ mediation and estimating power.")
 (define-public r-clubsandwich
   (package
     (name "r-clubsandwich")
-    (version "0.5.5")
+    (version "0.5.6")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "clubSandwich" version))
        (sha256
         (base32
-         "1ifnc2rg5agf7lpilmm27iq0af7ghfhkvwykajhvykgf6h4clvhf"))))
+         "0mll8q61vnb980dck8ihxcy89z8m7f8i16mqdvr4l2ljywkhpzvd"))))
     (properties `((upstream-name . "clubSandwich")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6603,14 +6604,14 @@ or eta squared effect size.")
 (define-public r-logspline
   (package
     (name "r-logspline")
-    (version "2.1.16")
+    (version "2.1.17")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "logspline" version))
         (sha256
           (base32
-            "12hkdi77vkic05p2vhap025xdcg1n53ywm239v18713pihdlj63l"))))
+            "05c8l22zcvb086909h9vw7icphww703vkcxp2h881y4n1232pdq3"))))
     (properties `((upstream-name . "logspline")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -6778,14 +6779,14 @@ Michael Lim & Trevor Hastie (2015)")
 (define-public r-datasaurus
   (package
     (name "r-datasaurus")
-    (version "0.1.4")
+    (version "0.1.6")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "datasauRus" version))
         (sha256
           (base32
-            "1w1yhwwrmh95bklacz44wjwynxd8cj3z8b9zvsnzmk18m5a4k0fl"))))
+            "0vgylf3bab0xcfg08xwvfq9yhxy6w0fxi7wp4kkxfyjb0pw15qxk"))))
     (properties `((upstream-name . "datasauRus")))
     (build-system r-build-system)
     (native-inputs (list r-knitr))
@@ -6810,13 +6811,13 @@ Annealing\" @url{doi:10.1145/3025453.3025912}.")
 (define-public r-lmom
   (package
     (name "r-lmom")
-    (version "2.8")
+    (version "2.9")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "lmom" version))
         (sha256
-          (base32 "1lnj41gynaar5isyijg5nbll64qdxa12dnqvz7lxhaclqcjskqna"))))
+          (base32 "145va4dhl767mywk36xcmqilm21sfkqhcqi0s07qgq3k39sn4gin"))))
     (properties `((upstream-name . "lmom")))
     (build-system r-build-system)
     (native-inputs (list gfortran))
@@ -6894,13 +6895,13 @@ Calculates confidence intervals for the difference in proportion.")
 (define-public r-desctools
   (package
     (name "r-desctools")
-    (version "0.99.44")
+    (version "0.99.45")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "DescTools" version))
         (sha256
-          (base32 "04wp3sp6sahgq167465y38y13h1ia5a4zqazysacpjxd1if0578j"))))
+          (base32 "01gbmikpzjmymvb7p76k7wqvfvwznl6v0qa78jy7bi6fzmbp1zld"))))
     (properties `((upstream-name . "DescTools")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6910,9 +6911,11 @@ Calculates confidence intervals for the difference in proportion.")
             r-exact
             r-expm
             r-gld
+            r-httr
             r-mass
             r-mvtnorm
             r-rcpp
+            r-readxl
             r-rstudioapi))
     (native-inputs (list gfortran))
     (home-page "https://andrisignorell.github.io/DescTools/")
@@ -7016,13 +7019,13 @@ the presence of variance components/nonparametric terms for models fit with
 (define-public r-binom
   (package
     (name "r-binom")
-    (version "1.1-1")
+    (version "1.1-1.1")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "binom" version))
         (sha256
-          (base32 "0mjj92dqf5q69jxzqya4izb1mly3mkydbnmlm4wb3zqqg82a324c"))))
+          (base32 "1yxyhsd0savwirlmgnq6973slfakqyfvjm0zz60cmc9v490my8gf"))))
     (properties `((upstream-name . "binom")))
     (build-system r-build-system)
     (home-page "https://cran.r-project.org/package=binom")
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index 801aef3f44..3dfaf40796 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -451,35 +451,42 @@ written in @command{scsh}.  It makes use of @command{unison} and
       (license license:expat))))
 
 (define-public casync
-  (package
-    (name "casync")
-    (version "2")
-    (home-page "https://github.com/systemd/casync/")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url home-page)
-                    (commit (string-append "v" version))))
-              (sha256
-               (base32
-                "0znkp3fcksrykcsv06y2mjvf2lbwmin25snmvfa8i5qfm3f4rm88"))
-              (file-name (string-append name "-" version "-checkout"))
-              (patches (search-patches "casync-renameat2-declaration.patch"))))
-    (build-system meson-build-system)
-    (native-inputs
-     (list pkg-config python-sphinx rsync))                         ;for tests
-    (inputs
-     (list xz ;for liblzma
-           `(,zstd "lib")
-           curl
-           acl
-           libselinux
-           fuse
-           openssl
-           zlib))
-    (synopsis "File synchronization and backup system")
-    (description
-     "casync is a @dfn{content-addressable data synchronizer} that can be used
+  (let ((commit "99559cd1d8cea69b30022261b5ed0b8021415654")
+        (revision "0"))
+    (package
+      (name "casync")
+      (version (git-version "2" revision commit))
+      (home-page "https://github.com/systemd/casync/")
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url home-page)
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "139g82rkwv1kzss6crfmw3p01xnyjzz66b1ckprpbfncxb24047w"))
+                (file-name (string-append name "-" version "-checkout"))))
+      (build-system meson-build-system)
+      (arguments
+       `(#:configure-flags
+         (let ((out (assoc-ref %outputs "out")))
+           (list (string-append "-Dudevrulesdir="
+                                out "/lib/udev/rules.d")))))
+      (native-inputs
+       (list pkg-config python python-sphinx rsync))                  ;for tests
+      (inputs
+       (list xz ;for liblzma
+             `(,zstd "lib")
+             curl
+             acl
+             libselinux
+             eudev
+             fuse
+             openssl
+             zlib))
+      (synopsis "File synchronization and backup system")
+      (description
+       "casync is a @dfn{content-addressable data synchronizer} that can be used
 as the basis of a backup system.  It is:
 
 @itemize
@@ -490,7 +497,7 @@ large file systems or directory trees;
 over the Internet in an HTTP and CDN friendly way;
 @item An efficient backup system.
 @end itemize\n")
-    (license license:lgpl2.1+)))
+      (license license:lgpl2.1+))))
 
 (define-public rclone
   (package
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 6002c10560..4dfa62c017 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -202,8 +202,6 @@ Protocol.")
              python-pygobject
              psmisc
              syncthing))
-      ;; (native-inputs
-      ;;  `(("python2-setuptools" ,python2-setuptools)))
       (home-page "https://github.com/syncthing/syncthing-gtk")
       (synopsis "GTK3 based GUI and notification area icon for Syncthing")
       (description "@code{syncthing-gtk} is a GTK3 Python based GUI and
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 20929aa7ad..6eb88afb8f 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -491,31 +491,6 @@ a simple interface that makes it easy to organize and browse feeds.")
     (license (list license:expat
                    license:gpl3+))))    ; tuir/packages/praw
 
-(define-public rawdog
-  (package
-    (name "rawdog")
-    (version "2.23")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://offog.org/files/rawdog-"
-                           version ".tar.gz"))
-       (sha256
-        (base32
-         "18nyg19mwxyqdnykplkqmzb4n27vvrhvp639zai8f81gg9vdbsjp"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2.7))
-    (inputs
-     (list python2-feedparser python2-pytidylib))
-    (home-page "https://offog.org/code/rawdog/")
-    (synopsis "RSS Aggregator Without Delusions Of Grandeur")
-    (description
-     "@command{rawdog} is a feed aggregator, capable of producing a personal
-\"river of news\" or a public \"planet\" page.  It supports all common feed
-formats, including all versions of RSS and Atom.")
-    (license license:gpl2+)))
-
 (define-public gfeeds
   (package
     (name "gfeeds")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 83e0e46377..4ad21fd05a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1063,9 +1063,6 @@ pyte is a fork of vt102, which was an incomplete pure Python implementation
 of VT100 terminal.")
     (license license:lgpl3+)))
 
-(define-public python2-pyte
-  (package-with-python2 python-pyte))
-
 (define-public python-blessings
   (package
     (name "python-blessings")
@@ -1094,9 +1091,6 @@ avoids styling altogether when the output is redirected to something other
 than a terminal.")
     (license license:expat)))
 
-(define-public python2-blessings
-  (package-with-python2 python-blessings))
-
 (define-public python-curtsies
   (package
     (name "python-curtsies")
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 7cbad042c9..cb86a907ff 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -1132,42 +1132,6 @@ systems that displays its buffer(s) as a hex dump.  The user interface is kept
 similar to vi/ex.")
     (license license:bsd-3)))
 
-(define-public virtaal
-  (package
-    (name "virtaal")
-    (version "0.7.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/translate/Virtaal/"
-                                  version "/virtaal-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "0cyimjp3191qlmw6n0ipqdr9xr0cq4f6dqvz4rl9q31h6l3kywf9"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:use-setuptools? #f
-       #:tests? #f ;; Failing tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'configure
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Set data file path to absolute store path.
-             (substitute* "virtaal/common/pan_app.py"
-               (("file_discovery\\.get_abs_data_filename.*")
-                (string-append "os.path.join('"
-                               (assoc-ref outputs "out")
-                               "/share', *path_parts)"))))))))
-    (inputs
-     (list python2-lxml python2-pygtk python2-simplejson
-           python2-translate-toolkit python2-pycurl))
-    (synopsis "Graphical translation tool")
-    (description "Virtaal is a powerful yet simple translation tool with an
-uncluttered user interface.  It supports a multitude of translation formats
-provided by the Translate Toolkit, including XLIFF and PO.")
-    (home-page "https://virtaal.translatehouse.org/")
-    (license license:gpl2+)))
-
 (define-public tree-sitter
   (package
     (name "tree-sitter")
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 2a77d4d4d2..eede7b9bd7 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -119,9 +119,6 @@ expressions.")
      "This library provides a timezone database for Python.")
     (license expat)))
 
-(define-public python2-tzdata
-  (package-with-python2 python-pytzdata))
-
 (define-public python-pytz
   (package
     (name "python-pytz")
@@ -143,9 +140,6 @@ higher.  It also solves the issue of ambiguous times at the end of daylight
 saving time.  Almost all of the Olson timezones are supported.")
     (license expat)))
 
-(define-public python2-pytz
-  (package-with-python2 python-pytz))
-
 (define-public python-pendulum
   (package
     (name "python-pendulum")
@@ -232,46 +226,6 @@ datetime module, available in Python 2.3+.")
     ;; BSD-3 still; but all new code is dual licensed (the user can choose).
     (license (list bsd-3 asl2.0))))
 
-(define-public python2-dateutil
-  (package
-    (name "python2-dateutil")
-    (version "2.8.2")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "python-dateutil" version))
-       (sha256
-        (base32
-         "11iy7m4bp2lgfkcl0r6xzf34bvk7ppjmsyn2ygfikbi72v6cl8q1"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:phases (modify-phases %standard-phases
-                  (replace 'check
-                    (lambda _
-                      ;; Delete tests that depend on "freezegun" to avoid a
-                      ;; circular dependency.
-                      (delete-file "dateutil/test/test_utils.py")
-                      (delete-file "dateutil/test/test_rrule.py")
-
-                      ;; XXX: Fails to get timezone from /etc/localtime.
-                      (delete-file "dateutil/test/test_tz.py")
-
-                      (invoke "pytest" "-vv"))))))
-    (native-inputs
-     (list python2-pytest python2-pytest-cov python2-setuptools-scm))
-    (propagated-inputs
-     (list python2-six))
-    (home-page "https://dateutil.readthedocs.io/en/stable/")
-    (synopsis "Extensions to the standard datetime module")
-    (description
-     "The dateutil module provides powerful extensions to the standard
-datetime module, available in Python 2.3+.")
-    ;; The license was changed from the three-clause BSD license to a dual
-    ;; Apache 2.0/BSD-3 variant at 2017-12-01.  Some code is only available as
-    ;; BSD-3 still; but all new code is dual licensed (the user can choose).
-    (license (list bsd-3 asl2.0))))
-
 (define-public python-parsedatetime
   (package
     (name "python-parsedatetime")
@@ -294,9 +248,6 @@ datetime module, available in Python 2.3+.")
      "Parse human-readable date/time text.")
     (license asl2.0)))
 
-(define-public python2-parsedatetime
-  (package-with-python2 python-parsedatetime))
-
 (define-public python-ciso8601
   (package
     (name "python-ciso8601")
@@ -384,9 +335,6 @@ under several distributions that's hard or impossible to figure out.")
 ISO 8601 dates, time and duration.")
     (license bsd-3)))
 
-(define-public python2-isodate
-  (package-with-python2 python-isodate))
-
 (define-public python-iso8601
   (package
     (name "python-iso8601")
@@ -411,22 +359,8 @@ ISO 8601 dates, time and duration.")
     (description
      "This module parses the most common forms of ISO 8601 date strings (e.g.
 @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.")
-    (properties `((python2-variant . ,(delay python2-iso8601))))
     (license expat)))
 
-(define-public python2-iso8601
-  (let ((base (package-with-python2 (strip-python2-variant python-iso8601))))
-    (package
-      (inherit base)
-      (version "0.1.16")
-      (source
-       (origin
-         (method url-fetch)
-         (uri (pypi-uri "iso8601" version))
-         (sha256
-          (base32
-           "0ny8dlycapxr8n2m13jxy0r7kbqvgypfshb6y7l981c0rivjylrn")))))))
-
 (define-public python-monotonic
   (package
     (name "python-monotonic")
@@ -447,9 +381,6 @@ ISO 8601 dates, time and duration.")
 value (in fractional seconds) of a clock which never goes backwards.")
     (license asl2.0)))
 
-(define-public python2-monotonic
-  (package-with-python2 python-monotonic))
-
 (define-public python-pyrfc3339
   (package
     (name "python-pyrfc3339")
@@ -472,9 +403,6 @@ value (in fractional seconds) of a clock which never goes backwards.")
 timestamps.")
     (license expat)))
 
-(define-public python2-pyrfc3339
-  (package-with-python2 python-pyrfc3339))
-
 (define-public python-arrow
   (package
     (name "python-arrow")
@@ -532,9 +460,6 @@ datetime type.")
      "This package contains a library for parsing ISO 8601 datetime strings.")
     (license bsd-3)))
 
-(define-public python2-aniso8601
-  (package-with-python2 python-aniso8601))
-
 (define-public datefudge
   (package
     (name "datefudge")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 277acf4754..4c4ccbb003 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -73,6 +73,16 @@
                    "--enable-zstd")
            #:phases
            #~(modify-phases %standard-phases
+               (add-before 'build 'adjust-torify
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; Record in 'torify' the absolute file name of 'torsocks'.
+                   (let ((torsocks (search-input-file
+                                    inputs "/bin/torsocks")))
+                     (substitute* "contrib/client-tools/torify"
+                       (("pathfind torsocks")
+                        "true")
+                       (("exec torsocks")
+                        (string-append "exec " torsocks))))))
                (add-before 'check 'skip-practracker
                  ;; This is a style linter.  It doesn't get to throw fatal errors.
                  (lambda _
@@ -98,6 +108,7 @@
      (list libevent
            libseccomp
            openssl
+           torsocks
            xz
            zlib
            `(,zstd "lib")))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 9d0786d2d9..a43382e94f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -139,44 +139,6 @@
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
-(define-public bazaar
-  (package
-    (name "bazaar")
-    (version "2.7.0")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (string-append "https://launchpad.net/bzr/"
-                          (version-major+minor version) "/" version
-                          "/+download/bzr-" version ".tar.gz"))
-      (patches (search-patches "bazaar-CVE-2017-14176.patch"))
-      (sha256
-       (base32
-        "1cysix5k3wa6y7jjck3ckq3abls4gvz570s0v0hxv805nwki4i8d"))))
-    (build-system python-build-system)
-    (inputs
-     ;; Note: 'tools/packaging/lp-upload-release' and 'tools/weavemerge.sh'
-     ;; require Zsh.
-     `(("gettext" ,gettext-minimal)))
-    (arguments
-     `(#:tests? #f ; no test target
-       #:python ,python-2   ; Python 3 apparently not yet supported, see
-                            ; https://answers.launchpad.net/bzr/+question/229048
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-mandir
-           (lambda _
-             (substitute* "setup.py"
-                          (("man/man1") "share/man/man1"))
-             #t)))))
-    (home-page "https://gnu.org/software/bazaar")
-    (synopsis "Version control system supporting both distributed and centralized workflows")
-    (description
-     "GNU Bazaar is a version control system that allows you to record
-changes to project files over time.  It supports both a distributed workflow
-as well as the classic centralized workflow.")
-    (license license:gpl2+)))
-
 (define-public breezy
   (package
     (name "breezy")
@@ -187,33 +149,70 @@ as well as the classic centralized workflow.")
        (uri (string-append "https://launchpad.net/brz/"
                            (version-major+minor version) "/" version
                            "/+download/breezy-" version ".tar.gz"))
+       (modules '((guix build utils)))
+       ;; Delete pre-generated Cython C files.
+       (snippet '(for-each delete-file (find-files "." "\\pyx.c$")))
        (sha256
-        (base32 "1md4b6ajawf5h50fqizmjj0g833ihc674dh7fn0mvl4d412nwyhq"))))
+        (base32
+         "1md4b6ajawf5h50fqizmjj0g833ihc674dh7fn0mvl4d412nwyhq"))
+       (patches (search-patches "breezy-fix-gio.patch"))))
     (build-system python-build-system)
-    ;; TODO: Maybe regenerate C files with Cython?
-    (inputs
-     `(("gettext" ,gettext-minimal)
-       ("python-configobj" ,python-configobj)
-       ("python-dulwich" ,python-dulwich)
-       ("python-fastbencode" ,python-fastbencode)
-       ("python-fastimport" ,python-fastimport)
-       ("python-paramiko" ,python-paramiko)
-       ("python-patiencediff" ,python-patiencediff)
-       ("python-pycryptodome" ,python-pycryptodome)
-       ("python-pygpgme" ,python-pygpgme)))
     (arguments
-     `(#:tests? #f))                    ; no tests in release tarball
+     (list
+      #:tests? #f                       ;FIXME: the test suite hangs
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-test-shebangs
+            (lambda _
+              (substitute* (append (find-files "breezy/bzr/tests")
+                                   (find-files "breezy/tests"))
+                (("#!/bin/sh")
+                 (format #f "#!~a" (which "sh"))))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; The test_read_bundle tests fails with "TypeError: a
+                ;; bytes-like object is required, not '_ResultTuple'" (see:
+                ;; https://bugs.launchpad.net/brz/+bug/1968415/comments/4).
+                (substitute* "breezy/bzr/tests/__init__.py"
+                  (("'test_read_bundle'," all)
+                   (string-append "# " all)))
+                (setenv "BZR_EDITOR" "nano")
+                (setenv "HOME" "/tmp")
+                (invoke "testr" "init")
+                (invoke "testr" "run")))))))
+    (native-inputs
+     (list nano                         ;for tests
+           python-cython
+           python-docutils
+           python-subunit
+           python-testrepository))
+    (inputs
+     (list gettext-minimal
+           python-configobj
+           python-dulwich
+           python-fastbencode
+           python-fastimport
+           python-launchpadlib
+           python-paramiko
+           python-patiencediff
+           python-pycryptodome
+           python-pygobject
+           python-pygpgme))
     (home-page "https://www.breezy-vcs.org/")
     (synopsis "Decentralized revision control system")
     (description
      "Breezy (@command{brz}) is a decentralized revision control system.  By
 default, Breezy provides support for both the
-@uref{https://www.bazaar-vcs.org, Bazaar} and @uref{https://www.git-scm.com,
-Git} file formats.  Breezy is backwards compatible with Bazaar's disk format
+@uref{https://bazaar.canonical.com/, Bazaar} and @uref{https://www.git-scm.com,
+Git} file formats.  Breezy is backwabrds compatible with Bazaar's disk format
 and protocols.  One of the key differences with Bazaar is that Breezy runs on
 Python 3.3 and later, rather than on Python 2.")
     (license license:gpl2+)))
 
+(define-public bazaar
+  (deprecated-package "bazaar" breezy))
+
 (define git-cross-configure-flags
   '("ac_cv_fread_reads_directories=yes"
     "ac_cv_snprintf_returns_bogus=no"
@@ -1651,7 +1650,7 @@ visualize your public Git repositories on a web interface.")
 (define-public pre-commit
   (package
     (name "pre-commit")
-    (version "2.18.1")
+    (version "2.19.0")
     (source
      (origin
        (method git-fetch)               ; no tests in PyPI release
@@ -1660,7 +1659,7 @@ visualize your public Git repositories on a web interface.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08c1nxqyqmy5sbmfnpvc8z82cx1rv9q290w7x2mrm0nd718s9yvp"))))
+        (base32 "102z1n6wjrmk5h4p59l929bi0r91bl3vz62j4k6sz2j7k0a791g5"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 97e6f9a072..45e64b207a 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2464,7 +2464,7 @@ YouTube.com and many more sites.")
 (define-public yt-dlp
   (package/inherit youtube-dl
     (name "yt-dlp")
-    (version "2022.02.04")
+    (version "2022.05.18")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/yt-dlp/yt-dlp/"
@@ -2472,7 +2472,7 @@ YouTube.com and many more sites.")
                                   version "/yt-dlp.tar.gz"))
               (sha256
                (base32
-                "1qx8sx47lzyrcl00r2657zjaq0mwfbzjyfnv5lr5dlm552f13pf8"))
+                "0wiiwqj8m4z6lladmrsp9354ddwlhn2gf0b39j271001g6fyi82r"))
               (snippet
                '(begin
                   ;; Delete the pre-generated files, except for the man page
@@ -2482,8 +2482,7 @@ YouTube.com and many more sites.")
                                           ;;"yt-dlp.1"
                                           "completions/bash/yt-dlp"
                                           "completions/fish/yt-dlp.fish"
-                                          "completions/zsh/_yt-dlp"))
-                  #t))))
+                                          "completions/zsh/_yt-dlp"))))))
     (arguments
      (substitute-keyword-arguments (package-arguments youtube-dl)
        ((#:tests? _) #t)
@@ -2494,8 +2493,7 @@ YouTube.com and many more sites.")
              (lambda _
                (substitute* "yt_dlp/postprocessor/ffmpeg.py"
                  (("\\.get_param\\('ffmpeg_location'\\)" match)
-                  (format #f "~a or '~a'" match (which "ffmpeg"))))
-               #t))
+                  (format #f "~a or '~a'" match (which "ffmpeg"))))))
            (replace 'build-generated-files
              (lambda _
                ;; Avoid the yt-dlp.1 target, which requires pandoc.
@@ -2507,15 +2505,16 @@ YouTube.com and many more sites.")
                    (("'etc/")
                     (string-append "'" prefix "/etc/"))
                    (("'share/")
-                    (string-append "'" prefix "/share/"))))
-               #t))
+                    (string-append "'" prefix "/share/"))))))
            (delete 'install-completion)
            (replace 'check
              (lambda* (#:key tests? #:allow-other-keys)
                (when tests?
                  (invoke "pytest" "-k" "not download"))))))))
     (inputs
-     `(("python-mutagen" ,python-mutagen)
+     `(("python-brotli" ,python-brotli)
+       ("python-certifi" ,python-certifi)
+       ("python-mutagen" ,python-mutagen)
        ("python-pycryptodomex" ,python-pycryptodomex)
        ("python-websockets" ,python-websockets)
        ,@(package-inputs youtube-dl)))
@@ -2530,103 +2529,6 @@ original project.")
     (properties '((release-monitoring-url . "https://pypi.org/project/yt-dlp/")))
     (home-page "https://github.com/yt-dlp/yt-dlp")))
 
-(define-public youtube-dl-gui
-  (package
-    (name "youtube-dl-gui")
-    (version "0.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "Youtube-DLG" version))
-       (sha256
-        (base32
-         "1bvq2wyn6az59vpdy04dh68fs8m2qzz948xhphibbcpwpcdk00cd"))))
-    (build-system python-build-system)
-    (arguments
-     ;; In Guix, wxpython has not yet been packaged for Python 3.
-     `(#:python ,python-2
-       ;; This package has no tests.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'patch-source
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; The youtube-dl-gui program lets you configure options.  Some of
-             ;; them are problematic, so we change their defaults.
-             (substitute* "youtube_dl_gui/optionsmanager.py"
-               ;; When this is true, the builder process will try (and fail) to
-               ;; write logs to the builder user's home directory.
-               (("'enable_log': True") "'enable_log': False")
-               ;; This determines which youtube-dl program youtube-dl-gui will
-               ;; run.  If we don't set this, then youtube-dl-gui might download
-               ;; an arbitrary copy from the Internet into the user's home
-               ;; directory and run it, so let's make sure youtube-dl-gui uses
-               ;; the youtube-dl from the inputs by default.
-               (("'youtubedl_path': self.config_path")
-                (string-append "'youtubedl_path': '"
-                               (assoc-ref inputs "youtube-dl")
-                               "/bin'"))
-               ;; When this is True, when youtube-dl-gui is finished downloading
-               ;; a file, it will try (and possibly fail) to open the directory
-               ;; containing the downloaded file.  This can fail because it
-               ;; assumes that xdg-open is in PATH.  Unfortunately, simply
-               ;; adding xdg-utils to the propagated inputs is not enough to
-               ;; make this work, so for now we set the default to False.
-               (("'open_dl_dir': True") "'open_dl_dir': False"))
-             ;; The youtube-dl program from the inputs is actually a wrapper
-             ;; script written in bash, so attempting to invoke it as a python
-             ;; script will fail.
-             (substitute* "youtube_dl_gui/downloaders.py"
-               (("cmd = \\['python', self\\.youtubedl_path\\]")
-                "cmd = [self.youtubedl_path]"))
-             ;; Use relative paths for installing data files so youtube-dl-gui
-             ;; installs the files relative to its prefix in the store, rather
-             ;; than relative to /.  Also, instead of installing data files into
-             ;; $prefix/usr/share, install them into $prefix/share for
-             ;; consistency (see: (standards) Directory Variables).
-             (substitute* "setup.py"
-               (("= '/usr/share") "= 'share"))
-             ;; Update get_locale_file() so it finds the installed localization
-             ;; files.
-             (substitute* "youtube_dl_gui/utils.py"
-               (("os\\.path\\.join\\('/usr', 'share'")
-                (string-append "os.path.join('"
-                               (assoc-ref %outputs "out")
-                               "', 'share'")))
-             #t))
-         (add-after 'install 'create-desktop-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (applications (string-append out "/share/applications")))
-               (mkdir-p applications)
-               (call-with-output-file
-                   (string-append applications "/youtube-dl-gui.desktop")
-                 (lambda (file)
-                   (format
-                    file
-                    "[Desktop Entry]~@
-                     Name=Youtube-dl GUI~@
-                     Comment=Graphical interface to download video with youtube-dl~@
-                     Exec=youtube-dl-gui~@
-                     TryExec=youtube-dl-gui~@
-                     Terminal=false~@
-                     Icon=youtube-dl-gui~@
-                     Type=Application~@
-                     Categories=AudioVideo;Audio;Video;Network~%")))
-               #t))))))
-    (native-inputs
-     (list gettext-minimal))
-    (inputs
-     (list python2-twodict python2-wxpython youtube-dl))
-    (home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
-    (synopsis
-     "GUI (Graphical User Interface) for @command{youtube-dl}")
-    (description
-     "Youtube-dlG is a GUI (Graphical User Interface) for
-@command{youtube-dl}.  You can use it to download videos from YouTube and any
-other site that youtube-dl supports.")
-    (license license:unlicense)))
-
 (define-public you-get
   (package
     (name "you-get")
@@ -3500,7 +3402,7 @@ OBS audio sources.")
 (define-public obs-websocket
   (package
     (name "obs-websocket")
-    (version "4.9.0")
+    (version "4.9.1")
     (source
      (origin
        (method git-fetch)
@@ -3510,7 +3412,7 @@ OBS audio sources.")
              (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1r47861ma1s3998clahbnbc216wcf706b1ps514k5p28h511l5w0"))))
+        (base32 "0giwhm0rbc578qng4invqqma935zzjlf05msz1gx986aqk654s7k"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ;no tests
@@ -3520,10 +3422,10 @@ OBS audio sources.")
            (lambda* _
              (substitute* "CMakeLists.txt"
                ;; Remove lines that set writeable permissions on outputs.
+               (("PERMISSIONS [^)]*") "")
                (("set\\(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS") "")
-               (("OWNER_READ.*\\)") "")
-               (("PERMISSIONS") ")"))
-             #t)))))
+               ;; Ug^WClever hack to comment out the next line, which is ‘)’.
+               (("(OWNER|GROUP|WORLD)_READ .*") "#")))))))
     (inputs
      (list obs qtbase-5))
     (home-page "https://github.com/Palakis/obs-websocket")
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index caf9ea85b3..f82f8498e1 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -77,7 +77,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "8.2.4912")
+    (version "8.2.5048")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -86,7 +86,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0wcvwmybkw76ha58idrq6pf4gxk14wbw1f8cwqs0slvkfdc8jyya"))))
+               "0bwps6r7g2c3nkn97s5kccqh6pb3a0bc11cmyacydsgxiwzq8xz4"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -95,7 +95,8 @@
        (modify-phases %standard-phases
          (add-after 'configure 'patch-absolute-paths
            (lambda _
-             (substitute* '("src/testdir/Makefile"
+             (substitute* '("runtime/autoload/context.vim"
+                            "src/testdir/Makefile"
                             "src/testdir/test_filetype.vim"
                             "src/testdir/test_normal.vim"
                             "src/testdir/test_popupwin.vim"
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 9dbc24ed6c..a7e1ccd6ca 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020, 2021 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
@@ -1097,7 +1097,7 @@ all common programming languages.  Vala bindings are also provided.")
 (define-public lxc
   (package
     (name "lxc")
-    (version "4.0.11")
+    (version "4.0.12")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1105,7 +1105,7 @@ all common programming languages.  Vala bindings are also provided.")
                     version ".tar.gz"))
               (sha256
                (base32
-                "0b7hv4n8b3lndhr0jf9j1gkbzxm8897a1myjsfgwzad9gkhq395g"))))
+                "1vyk2j5w9gfyh23w3ar09cycyws16mxh3clbb33yhqzwcs1jy96v"))))
     (build-system gnu-build-system)
     (native-inputs
      (list pkg-config docbook2x))
@@ -1656,26 +1656,71 @@ mainly implemented in user space.")
     ;; LGPLv2.1.
     (license (list license:gpl2 license:lgpl2.1))))
 
+(define-public python-qemu-qmp
+  (package
+    (name "python-qemu-qmp")
+    (version "0.0.0a0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "qemu.qmp" version))
+       (sha256
+        (base32 "1rpsbiwvngij6fjcc5cx1azcc4dxmm080crr31wc7jrm7i61p7c2"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                ;; The Avocado test runner insists on writing stuff to HOME.
+                (setenv "HOME" "/tmp")
+                ;; The mypy tests fail (see:
+                ;; https://gitlab.com/jsnow/qemu.qmp/-/issues/1).
+                (delete-file "tests/mypy.sh")
+                (invoke "avocado" "--show=all" "run" "tests")))))))
+    (native-inputs
+     (list python-avocado-framework
+           python-setuptools-scm
+           python-flake8
+           python-isort
+           python-pylint))
+    (propagated-inputs
+     (list python-pygments
+           python-urwid
+           python-urwid-readline))
+    (home-page "https://gitlab.com/jsnow/qemu.qmp")
+    (synopsis "QEMU Monitor Protocol Python library")
+    (description "@code{emu.qmp} is a
+@url{https://gitlab.com/qemu-project/qemu/-/blob/master/docs/interop/qmp-intro.txt,
+QEMU Monitor Protocol (QMP)} library written in Python.  It is used to send
+QMP messages to running QEMU emulators.  It can be used to communicate with
+QEMU emulators, the QEMU Guest Agent (QGA), the QEMU Storage Daemon (QSD), or
+any other utility or application that speaks QMP.")
+    (license license:gpl2+)))
+
 (define-public qmpbackup
   (package
     (name "qmpbackup")
-    (version "0.2")
+    (version "0.23")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/abbbi/qmpbackup")
-                     (commit version)))
+                    (url "https://github.com/abbbi/qmpbackup")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0swhp5byz44brhyis1a39p11fyn9q84xz5q6v2fah29r7d71kmmx"))))
+                "0x9v81z0b2qr2y6m46rfnl4kl5jnixsdrl1c790iwl6pq9kzzvzg"))))
     (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2))
+    ;; The test suite requires to download a 241 MiB QEMU image; skip it.
+    (arguments (list #:tests? #f))
+    (inputs (list python-qemu-qmp))
     (home-page "https://github.com/abbbi/qmpbackup")
     (synopsis "Backup and restore QEMU machines")
-    (description "qmpbackup is designed to create and restore full and
-incremental backups of running QEMU virtual machines via QMP, the QEMU
+    (description "@command{qmpbackup} is designed to create and restore full
+and incremental backups of running QEMU virtual machines via QMP, the QEMU
 Machine Protocol.")
     (license license:gpl3+)))
 
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index ff11366d06..b327338cd5 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -159,14 +159,14 @@ management, extensions such as advertisement blocker and colorful tabs.")
 (define-public links
   (package
     (name "links")
-    (version "2.26")
+    (version "2.27")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://links.twibright.com/download/"
                                   "links-" version ".tar.bz2"))
               (sha256
                (base32
-                "1jy90k04kl7y3l8jzg5jx7fglyqzngng0964j7j67gjxy9vkanzh"))))
+                "1d7bz6bbis94jq82xydwnazaczzmb1ij62pbmf0dxkg7xpycppfq"))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -708,7 +708,7 @@ is fully configurable and extensible in Common Lisp.")
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.12.1")
+    (version "1.13.6")
     (source
      (origin
        (method url-fetch)
@@ -716,13 +716,14 @@ is fully configurable and extensible in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "10v4bp5h1qq24by61yw52rr13m23smfj2whxfzcxc34qgsdjsd4a"))
+        (base32 "19xaw6lspl4mjx1wls0s15l97dzfkv20gph652yzwk6ia3ly92bs"))
        (modules '((guix build utils)))
        (snippet
         '(begin
            ;; TODO: unbundle fonts.
            (delete-file-recursively "lib/fribidi")
-           (delete-file-recursively "lib/harfbuzz")))))
+           (delete-file-recursively "lib/harfbuzz")
+           (delete-file-recursively "lib/sealcurses")))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #false                  ;no tests
@@ -924,14 +925,14 @@ interface.")
 (define-public telescope
   (package
     (name "telescope")
-    (version "0.7.1")
+    (version "0.8.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/omar-polo/telescope/releases/download/"
                            version "/telescope-" version ".tar.gz"))
        (sha256
-        (base32 "055iqld99l4jshs10mhl2ml0p74wcyyv5kxjy8izzysw9lnkjjb5"))))
+        (base32 "1fblm3mjddhjmcj1c065n9440n72ld037bdjdlyk1fpwd240m1pa"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f))                    ;no tests
@@ -939,7 +940,7 @@ interface.")
      (list gettext-minimal pkg-config))
     (inputs
      (list libevent libressl ncurses))
-    (home-page "https://git.omarpolo.com/telescope/about/")
+    (home-page "https://telescope.omarpolo.com/")
     (synopsis "Gemini client with a terminal interface")
     (description "Telescope is a w3m-like browser for Gemini.")
     (license license:x11)))
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b0e3aa1c78..554e7f623a 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -793,32 +793,29 @@ programming language.")))
        ,@(package-inputs nginx)))
     (arguments
      (substitute-keyword-arguments
-         `(#:make-flags '("modules")
-           #:modules ((guix build utils)
-                      (guix build gnu-build-system))
-           ,@(package-arguments nginx)
-           #:configure-flags '("--add-dynamic-module=."))
+         `(#:make-flags '("modules") ;Only build this module not all of nginx.
+           ,@(package-arguments nginx))
+       ((#:configure-flags flags)
+        #~(cons "--add-dynamic-module=." #$flags))
        ((#:phases phases)
         #~(modify-phases #$phases
             (add-after 'unpack 'unpack-nginx-sources
-              (lambda* (#:key inputs native-inputs #:allow-other-keys)
+              (lambda _
                 (begin
                   ;; The nginx source code is part of the module’s source.
                   (format #t "decompressing nginx source code~%")
-                  (invoke "tar" "xvf" (assoc-ref inputs "nginx-sources")
+                  (invoke "tar" "xvf" #$(this-package-input "nginx-sources")
                           ;; This package's LICENSE file would be
                           ;; overwritten with the one from nginx when
                           ;; unpacking the nginx source, so rename the nginx
                           ;; one when unpacking.
                           "--transform=s,/LICENSE$,/LICENSE.nginx,"
-                          "--strip-components=1")
-                  #t)))
+                          "--strip-components=1"))))
             (replace 'install
-              (lambda* (#:key outputs #:allow-other-keys)
-                (let ((modules-dir (string-append (assoc-ref outputs "out")
+              (lambda _
+                (let ((modules-dir (string-append #$output
                                                   "/etc/nginx/modules")))
-                  (install-file "objs/ngx_rtmp_module.so" modules-dir)
-                  #t)))
+                  (install-file "objs/ngx_rtmp_module.so" modules-dir))))
             (delete 'fix-root-dirs)
             (delete 'install-man-page)))))
     (home-page "https://github.com/arut/nginx-rtmp-module")
@@ -4655,30 +4652,6 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
     (license (list license:bsd-2           ; source code
                    license:freebsd-doc)))) ; documentation
 
-(define-public python2-feedparser
-  (package
-    (name "python2-feedparser")
-    (version "5.2.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (pypi-uri "feedparser" version ".tar.bz2"))
-       (sha256
-        (base32
-         "00hb4qg2am06g81mygfi1jsbx8830024jm45g6qp9g8fr6am91yf"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:tests? #f
-       #:python ,python-2))
-    (home-page
-     "https://github.com/kurtmckee/feedparser")
-    (synopsis "Parse feeds in Python")
-    (description
-     "Universal feed parser which handles RSS 0.9x, RSS 1.0, RSS 2.0,
-CDF, Atom 0.3, and Atom 1.0 feeds.")
-    (license (list license:bsd-2 ; source code
-                   license:freebsd-doc)))) ; documentation
-
 (define-public guix-data-service
   (let ((commit "198b6ef719745a48918e703990d1e846ffcd65b0")
         (revision "31"))
@@ -6256,14 +6229,14 @@ inspired by Ruby's @code{fakeweb}.")
 (define-public jo
   (package
     (name "jo")
-    (version "1.4")
+    (version "1.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/jpmens/jo/releases/download/"
                            version "/jo-" version ".tar.gz"))
        (sha256
-        (base32 "18jna9xlpxci3cak3z85c448zv2zr41baclgym3hk433p0p4vii4"))))
+        (base32 "18fizi0368jgajrmy13xpdiks76jwch8lhx1d1sagmd63cpmj5gb"))))
     (build-system gnu-build-system)
     (home-page "https://github.com/jpmens/jo")
     (synopsis "Output JSON from a shell")
@@ -6381,9 +6354,6 @@ internetarchive python module for programmatic access to archive.org.")
 snippets on @url{https://commandlinefu.com}.")
       (license license:expat))))
 
-(define-public python2-clf
-  (package-with-python2 python-clf))
-
 (define-public rss-bridge
   (package
     (name "rss-bridge")
diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm
index ec655b95bd..73338c73b3 100644
--- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019-2022 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -25,6 +25,7 @@
 (define-module (gnu packages wget)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages gnunet)
@@ -45,7 +46,7 @@
 (define-public wget
   (package
     (name "wget")
-    (version "1.21.1")
+    (version "1.21.3")
     (source
      (origin
       (method url-fetch)
@@ -53,7 +54,7 @@
                           version ".tar.lz"))
       (sha256
        (base32
-        "1bchzkacjsc5c0x01ngaana9fs5j12wfw1c8qxps1yp68x9vx6yv"))))
+        "19afmyr1i3zwdwr8wkyz8q6z5764ik3dm87as194g78l8xggplnv"))))
     (build-system gnu-build-system)
     (inputs
      (list gnutls libidn2 libpsl))
@@ -100,16 +101,14 @@ in downloaded documents to relative links.")
              (substitute* "wgetpaste"
                ;; dpaste blocks Tor users.  Use a better default.
                (("DEFAULT_SERVICE:-dpaste")
-                "DEFAULT_SERVICE-bpaste"))
-             #t))
+                "DEFAULT_SERVICE-bpaste"))))
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
                     (zsh (string-append out "/share/zsh/site-functions")))
                (install-file "wgetpaste" bin)
-               (install-file "_wgetpaste" zsh)
-               #t)))
+               (install-file "_wgetpaste" zsh))))
          (add-after 'install 'wrap-program
            ;; /bin/wgetpaste prides itself on relying only on the following
            ;; inputs, and doesn't need to execute arbitrary commands, so
@@ -121,11 +120,10 @@ in downloaded documents to relative links.")
                    ,(delete-duplicates
                      (map (lambda (command) (dirname (which command)))
                           (list "bash" "mktemp" "sed" "sort" "tee" "tr"
-                                "wget" "xclip")))))
-               #t))))
+                                "wget" "xclip")))))))))
        #:tests? #f))                    ; no test target
     (inputs
-     (list wget xclip))
+     (list bash-minimal wget xclip))
     (home-page "https://wgetpaste.zlin.dk/")
     (synopsis "Script that automates pasting to a number of pastebin services")
     (description
@@ -135,43 +133,40 @@ online pastebin services.")
 
 (define-public wget2
   (package
-   (name "wget2")
-   (version "2.0.0")
-   (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://gnu/wget/wget2-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0i0m4k6w9smsr2m5mj05zvl1fb110izyl2qqrk0yqlxnmfhgpqjg"))))
-   (build-system gnu-build-system)
-   (arguments
-    `(#:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'skip-network-tests
-          (lambda _
-            (substitute* "tests/Makefile.in"
-              (("test-gpg-verify-no-file\\$\\(EXEEXT)") "")
-              (("test-gpg-valid\\$\\(EXEEXT)") "")
-              (("test-gpg-styles\\$\\(EXEEXT)") ""))
-            #t)))
-      #:configure-flags '("--enable-static=no")))
-   (inputs
-    (list bzip2
-          gnutls/dane
-          gpgme
-          libidn2
-          libmicrohttpd
-          libpsl
-          pcre2
-          zlib))
-   ;; TODO: Add libbrotlidec, libnghttp2.
-   (native-inputs
-    (list pkg-config))
-   (home-page "https://gitlab.com/gnuwget/wget2")
-   (synopsis "Successor of GNU Wget")
-   (description "GNU Wget2 is the successor of GNU Wget, a file and recursive
-website downloader.  Designed and written from scratch it wraps around libwget,
-that provides the basic functions needed by a web client.")
-   (properties '((ftp-directory . "/gnu/wget")))
-   (license (list license:gpl3+ license:lgpl3+))))
+    (name "wget2")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/wget/wget2-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1caxhkwk08z3npzw8x2qhkmjc224cfw1aphvbv8bidbvd41zmdqb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'skip-network-tests
+                    (lambda _
+                      (substitute* "tests/Makefile.in"
+                        (("test-gpg-verify-no-file\\$\\(EXEEXT)") "")
+                        (("test-gpg-valid\\$\\(EXEEXT)") "")
+                        (("test-gpg-styles\\$\\(EXEEXT)") "")))))
+       #:configure-flags
+       '("--enable-static=no")))
+    (inputs (list bzip2
+                  gnutls/dane
+                  gpgme
+                  libidn2
+                  libmicrohttpd
+                  libpsl
+                  pcre2
+                  zlib))
+    ;; TODO: Add libbrotlidec, libnghttp2.
+    (native-inputs (list pkg-config))
+    (home-page "https://gitlab.com/gnuwget/wget2")
+    (synopsis "Successor of GNU Wget")
+    (description
+     "GNU Wget2 is the successor of GNU Wget, a file and recursive website
+downloader.  Designed and written from scratch it wraps around libwget, that
+provides the basic functions needed by a web client.")
+    (properties '((ftp-directory . "/gnu/wget")))
+    (license (list license:gpl3+ license:lgpl3+))))
diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm
deleted file mode 100644
index 073d440479..0000000000
--- a/gnu/packages/wicd.scm
+++ /dev/null
@@ -1,197 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
-;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages wicd)
-  #:use-module (guix packages)
-  #:use-module (guix download)
-  #:use-module (guix build-system python)
-  #:use-module (guix licenses)
-  #:use-module (guix utils)
-  #:use-module (gnu packages)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gtk)
-  #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gettext)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages admin)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages python-xyz))
-
-(define-public wicd
-  (package
-    (name "wicd")
-    (version "1.7.4")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://launchpad.net/wicd/"
-                           (version-major+minor version) "/" version
-                           "/+download/wicd-" version ".tar.gz"))
-       (sha256
-        (base32 "0qpbwwsrqdp40mm3a8djpn2d055rxxspdhwijwsdnws700a9d637"))
-       (patches (search-patches
-                 "wicd-bitrate-none-fix.patch"
-                 "wicd-get-selected-profile-fix.patch"
-                 "wicd-urwid-1.3.patch"
-                 "wicd-wpa2-ttls.patch"))))
-    (build-system python-build-system)
-    (native-inputs `(("gettext" ,gettext-minimal)))
-    (inputs `(("dbus-glib" ,dbus-glib)
-              ("python2-dbus" ,python2-dbus)
-              ("python2-pygtk" ,python2-pygtk)
-              ("python2-urwid" ,python2-urwid)
-              ("python2-babel" ,python2-babel)
-              ("wireless-tools" ,wireless-tools)
-              ("wpa-supplicant" ,wpa-supplicant)
-              ("net-tools" ,net-tools)
-              ("isc-dhcp" ,isc-dhcp)
-              ("iproute" ,iproute)
-              ("hicolor-icon-theme" ,hicolor-icon-theme)))
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f                      ; test suite requires networking
-       ;; wicd directly extends distutils command classes,
-       ;; we can't easily make setup.py use setuptools.
-       #:use-setuptools? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'configure
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (python (assoc-ref inputs "python")))
-               (define (which* cmd)
-                 (cond ((string=? cmd "ping")
-                        "/run/setuid-programs/ping")
-                       ((which cmd)
-                        => identity)
-                       (else
-                        (format (current-error-port)
-                                "WARNING: Unable to find absolute path for ~s~%"
-                                cmd)
-                        #f)))
-               (substitute* "setup.py"
-                 ;; The handling of unrecognized distros in setup.py is
-                 ;; broken.  Work around the problem.
-                 (("\\('init=', " all)
-                  (string-append "#" all))
-                 ;; Inhibit attempts to install in /var or /etc.
-                 (("\\(wpath\\.(log|etc|networks|.*scripts), " all)
-                  (string-append "#" all)))
-
-               ;; Patch references to subprograms with absolute pathnames.
-               (substitute* "wicd/wnettools.py"
-                 (("(misc\\.Run\\(\\[?[\"'])([^\"' ]*)" all pre cmd)
-                  (string-append pre (which* cmd)))
-                 (("(self\\._find_program_path|misc\\.find_path)\\([\"']([^\"']*)[\"']\\)"
-                   all dummy cmd)
-                  (let ((pathname (which* cmd)))
-                    (if pathname
-                        (string-append "'" pathname "'")
-                        "None")))
-                 (("([\"'])(ifconfig|route|wpa_cli|wpa_supplicant|iwconfig|iwpriv|iwlist|ping)"
-                   all open-quote cmd)
-                  (string-append open-quote (which* cmd))))
-
-               ;; setup.py cannot cope without LANG
-               (setenv "LANG" "C")
-
-               (let ((params
-                      (list
-                       (string-append "--python=" python "/bin/python")
-                       "--no-install-init"
-                       "--no-install-docs"
-                       "--no-install-acpi"
-                       "--no-install-pmutils"
-                       "--no-install-kde"
-                       "--no-install-gnome-shell-extensions"
-
-                       ;; Don't pass --distro= despite setup.py's complaints.
-                       ;; Guix isn't recognised, and if it ever would be we'd
-                       ;; rather ask upstream to follow standards instead.
-
-                       "--wicdgroup=netdev"
-                       "--loggroup=root"
-                       "--logperms=0640"
-
-                       ;; XXX setup.py configure asks us to pass --init=,
-                       ;; but if we do it says "no such option 'init'".
-                       ;; (string-append "--init=" out "/etc/init.d")
-
-                       (string-append "--initfile=" out "/etc/init.d/wicd")
-                       (string-append "--lib=" out "/lib/wicd")
-                       (string-append "--share=" out "/share/wicd")
-
-                       "--etc=/etc/wicd"
-                       "--scripts=/etc/wicd/scripts"
-                       "--pmutils=/etc/pm-utils/sleep.d"
-
-                       (string-append "--encryption="
-                                      out "/etc/encryption/templates")
-                       (string-append "--bin=" out "/bin")
-                       (string-append "--sbin=" out "/sbin")
-                       (string-append "--daemon=" out "/share/wicd/daemon")
-                       (string-append "--backends=" out "/share/wicd/backends")
-                       (string-append "--curses=" out "/share/wicd/curses")
-                       (string-append "--gtk=" out "/share/wicd/gtk")
-                       (string-append "--cli=" out "/share/wicd/cli")
-                       (string-append "--gnome-shell-extensions="
-                                      out "/share/gnome-shell-extensions")
-                       (string-append "--icons=" out "/share/icons/hicolor")
-                       (string-append "--pixmaps=" out "/share/pixmaps")
-                       (string-append "--images=" out "/share/icons")
-                       (string-append "--dbus=" out "/etc/dbus-1/system.d")
-                       (string-append "--dbus-service="
-                                      out "/share/dbus-1/system-services")
-                       (string-append "--systemd=" out "/lib/systemd/system")
-                       (string-append "--logrotate=" out "/etc/logrotate.d")
-                       (string-append "--desktop=" out "/share/applications")
-                       (string-append "--translations=" out "/share/locale")
-                       (string-append "--autostart=" out "/etc/xdg/autostart")
-                       (string-append "--docdir=" out "/share/doc/wicd")
-                       (string-append "--mandir=" out "/share/man")
-                       (string-append "--kdedir=" out "/share/autostart"))))
-                 (format #t
-                         "running ~s with command ~s and parameters ~s~%"
-                         "python setup.py" "configure" params)
-                 (apply invoke "python" "setup.py" "configure" params)))))
-         (add-after 'install 'post-install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               ;; wicd's installer tries to put dhclient.conf.template.default
-               ;; in /etc/wicd/other, which is not available in the build
-               ;; environment, so here we install it manually in the output
-               ;; directory.
-               (let ((dest-dir (string-append out "/etc/wicd"))
-                     (name "dhclient.conf.template.default"))
-                 (install-file (string-append "other/" name) dest-dir))
-
-               ;; Copy index.theme from hicolor-icon-theme.  This is needed to
-               ;; allow wicd-gtk to find its icons.
-               (let ((hicolor (assoc-ref inputs "hicolor-icon-theme"))
-                     (name "/share/icons/hicolor/index.theme"))
-                 (install-file (string-append hicolor name)
-                               (string-append out "/share/icons/hicolor")))
-               #t))))))
-    (synopsis "Network connection manager")
-    (description "Wicd is a network manager that aims to simplify wired and
-wireless networking.")
-    (home-page "https://launchpad.net/wicd")
-    (license gpl2+)))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 83b75ca9b8..123e6ca7e7 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -53,6 +53,7 @@
 ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
 ;;; Copyright © 2022 Pier-Hugues Pellerin <ph@heykimo.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -545,9 +546,6 @@ kinds of messages to i3, select the affected containers, filter results and
 subscribe to events.")
     (license license:gpl3+)))
 
-(define-public python2-i3-py
-  (package-with-python2 python-i3-py))
-
 (define-public qtile
   (package
     (name "qtile")
@@ -1243,39 +1241,13 @@ all of them.  Currently supported window managers include:
 (define-public keybinder
   (package
     (name "keybinder")
-    (version "0.3.1")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/kupferlauncher/keybinder"
-                           "/releases/download/v" version "/keybinder-"
-                           version ".tar.gz"))
-       (file-name (string-append name "-" version ".tar.gz"))
-       (sha256
-        (base32
-         "0h52hj3ay8mfhwvmfxbxlfyq74hifdk8wxgxp7fr4iy6189hg7w7"))))
-    (build-system gnu-build-system)
-    (inputs
-     (list python-2 gtk+-2))
-    (native-inputs
-     (list python2-pygtk gtk-doc pkg-config))
-    (synopsis "Library for registering global keyboard shortcuts")
-    (description
-     "Keybinder is a library for registering global keyboard shortcuts.
-Keybinder works with GTK-based applications using the X Window System.")
-    (home-page "https://github.com/kupferlauncher/keybinder")
-    (license license:gpl2+)))
-
-(define-public keybinder-3.0
-  (package
-    (name "keybinder-3.0")
     (version "0.3.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/kupferlauncher/keybinder"
-                           "/releases/download/" name "-v" version "/" name "-"
-                           version ".tar.gz"))
+                           "/releases/download/" name "-3.0-v" version "/"
+                           name "-3.0-" version ".tar.gz"))
        (file-name (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
@@ -1292,6 +1264,9 @@ Keybinder works with GTK-based applications using the X Window System.")
     (home-page "https://github.com/kupferlauncher/keybinder")
     (license license:x11)))
 
+(define-public keybinder-3.0
+  (deprecated-package "keybinder-3.0" keybinder))
+
 (define-public spectrwm
   (package
     (name "spectrwm")
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index ca1b33081d..4d2fd73cee 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -265,79 +265,6 @@ library.  In most cases, wxPython uses the native widgets on each platform to
 provide a 100% native look and feel for the application.")
     (license l:wxwindows3.1+)))
 
-(define-public python2-wxpython
-  (package
-    (name "python2-wxpython")
-    (version "3.0.2.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append "mirror://sourceforge/wxpython/wxPython/"
-                            version "/wxPython-src-" version ".tar.bz2"))
-        (sha256
-         (base32
-          "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm"))
-        (modules '((guix build utils)))
-        (snippet
-         '(begin
-            (lambda (folder)
-              (delete-file-recursively (string-append "src/" folder))
-              '("expat" "jpeg" "png" "tiff" "zlib" "msw" "osx" "msdos"))
-            (substitute* '("wxPython/setup.py")
-              ;; setup.py tries to keep its own license the same as wxwidget's
-              ;; license (which it expects under $WXWIN/docs).
-              (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'")
-               ""))
-            #t))))
-    (build-system python-build-system)
-    (arguments
-     `(#:python ,python-2
-       #:tests? #f ; tests fail
-       ;; wxPython directly extends distutils command classes,
-       ;; we can't easily make setup.py use setuptools.
-       #:use-setuptools? #f
-       #:configure-flags (list "WXPORT=gtk2"
-                               "UNICODE=1")
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'chdir
-           (lambda _
-             (chdir "wxPython")
-             #t))
-         (add-after 'chdir 'set-wx-out-dir
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; By default, install phase tries to copy the wxPython headers in
-             ;; gnu/store/...-wxwidgets-3.0.2 , which it can't, so they are
-             ;; redirected to the output directory by setting WXPREFIX.
-             (substitute* "config.py"
-               (("= getWxConfigValue\\('--prefix'\\)")
-                (string-append "= '" (assoc-ref outputs "out") "'")))
-             (substitute* "wx/build/config.py"
-               (("= getWxConfigValue\\('--prefix'\\)")
-                (string-append "= '" (assoc-ref outputs "out") "'")))
-             #t))
-         (add-after 'set-wx-out-dir 'setenv
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (setenv "WXWIN" (assoc-ref inputs "wxwidgets"))
-             (use-modules (ice-9 popen) (ice-9 rdelim))
-             (let ((port (open-pipe* OPEN_READ
-                                     (search-input-file inputs
-                                                        "/bin/wx-config")
-                                     "--cppflags")))
-               (setenv "CPPFLAGS" (read-string port))
-               (close-pipe port))
-             #t)))))
-    (native-inputs
-     (list mesa ; for glcanvas
-           pkg-config))
-    (inputs
-     `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp
-       ("wxwidgets" ,wxwidgets-gtk2)))
-    (synopsis "Python 2 Bindings for wxWidgets")
-    (description "@code{wxpython} provides Python 2 bindings for wxWidgets.")
-    (home-page "https://wxpython.org/")
-    (license (package-license wxwidgets))))
-
 (define-public wxsvg
   (package
     (name "wxsvg")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 08f4780fc2..e5a98edb35 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2961,7 +2961,7 @@ This package is the fork of hsetroot by Hyriand.")
 (define-public jumpapp
   (package
     (name "jumpapp")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -2970,7 +2970,7 @@ This package is the fork of hsetroot by Hyriand.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jrk4mm42sz6ca2gkb6w3dad53d4im4shpgsq8s4vr6xpl3b43ry"))))
+        (base32 "05shgw4agkhgk5vbvc05s12q7m0djc0m4qrd328hmis37bxp9j7n"))))
     (build-system gnu-build-system)
     (arguments `(#:phases
                  (modify-phases %standard-phases
@@ -2981,8 +2981,7 @@ This package is the fork of hsetroot by Hyriand.")
                        (let ((out (assoc-ref outputs "out")))
                          (substitute* "Makefile"
                            (("PREFIX =.*")
-                            (string-append "PREFIX = " out "\n")))
-                         #true))))))
+                            (string-append "PREFIX = " out "\n")))))))))
     (propagated-inputs
      (list wmctrl xdotool xprop))
     (native-inputs
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 11b0a4ef54..c26ca68672 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -27,7 +27,7 @@
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
@@ -345,9 +345,6 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
     (inputs `(("libxml2" ,libxml2)))
     (synopsis "Python bindings for the libxml2 library")))
 
-(define-public python2-libxml2
-  (package-with-python2 python-libxml2))
-
 (define-public libxslt
   (package
     (name "libxslt")
@@ -1119,9 +1116,6 @@ code for classes that correspond to data structures defined by XMLSchema.")
                    license:gpl2      ; bundled jquery in doc is dual MIT/GPL2
                    license:psfl))))  ; pyxb/utils/activestate.py
 
-(define-public python2-pyxb
-  (package-with-python2 python-pyxb))
-
 (define-public xmlto
   (package
     (name "xmlto")
@@ -1424,7 +1418,7 @@ elements to their parents
 (define-public xlsx2csv
   (package
     (name "xlsx2csv")
-    (version "0.7.4")
+    (version "0.7.8")
     (source
      (origin
        (method git-fetch)
@@ -1433,17 +1427,17 @@ elements to their parents
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "168dm6p7w6pvgd87yb9hcxv9y0liv6mxgril202nfva68cp8y939"))))
+        (base32 "1p10571295f8zw1lsma8k5z07hrk9aspar0lsz8zpgjl7v35zcq7"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2               ; use python-2 for the test script
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
          (replace 'check
            (lambda _
              (substitute* "test/run"
                ;; Run tests with `python' only.
-               (("^(PYTHON_VERSIONS = ).*" all m) (string-append m "['']")))
+               (("^(PYTHON_VERSIONS = ).*" all m)
+                (string-append m "['']")))
              (invoke "test/run"))))))
     (home-page "https://github.com/dilshod/xlsx2csv")
     (synopsis "XLSX to CSV converter")
@@ -2238,7 +2232,7 @@ implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
 (define-public java-jdom2
   (package
     (name "java-jdom")
-    (version "2.0.6")
+    (version "2.0.6.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2247,7 +2241,7 @@ implements @code{XMLStreamWriter} and @code{XMLStreamReader} and supports
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "14vv1kxrsdvwi4cz3rx6r48w5y6fvk9cymil8qhvxwp56xxrgxiq"))))
+                "1r4pwl0z7hm45v9l2wbq3fjmqi13zmwzbrggyqizrwv31kghhx56"))))
     (build-system ant-build-system)
     (arguments
      `(#:build-target "package"
@@ -2544,9 +2538,6 @@ libxml2 and libxslt.")
         (base32
          "090viyanaki4q7w7i000xl0qh4in52bkl3qal55sz2bbm8w3hqd1"))))))
 
-(define-public python2-lxml
-  (package-with-python2 python-lxml))
-
 (define-public python-untangle
   ;; The latest tagged release is from 2014; use the latest commit.
   (let ((revision "1")
diff --git a/gnu/services.scm b/gnu/services.scm
index 6f0f4d5bdc..cc2540ee50 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -846,7 +846,7 @@ FILES must be a list of name/file-like object pairs."
                           (append config extensions)))
                 (description
                  "Populate @file{/run/setuid-programs} with the specified
-executables, making them setuid-root.")))
+executables, making them setuid and/or setgid.")))
 
 (define (packages->profile-entry packages)
   "Return a system entry for the profile containing PACKAGES."
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 24fd43a207..0499071436 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1075,10 +1075,60 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
    ("HybridSleepMode" (sleep-list elogind-hybrid-sleep-mode))))
 
 (define (elogind-dbus-service config)
-  (list (wrapped-dbus-service (elogind-package config)
-                              "libexec/elogind/elogind"
-                              `(("ELOGIND_CONF_FILE"
-                                 ,(elogind-configuration-file config))))))
+  "Return a @file{org.freedesktop.login1.service} file that tells D-Bus how to
+\"start\" elogind.  In practice though, our elogind is started when booting by
+shepherd.  Thus, the @code{Exec} line of this @file{.service} file does not
+explain how to start elogind; instead, it spawns a wrapper that waits for the
+@code{elogind} shepherd service.  This avoids a race condition where both
+@command{shepherd} and @command{dbus-daemon} would attempt to start elogind."
+  ;; For more info on the elogind startup race, see
+  ;; <https://issues.guix.gnu.org/55444>.
+
+  (define elogind
+    (elogind-package config))
+
+  (define wrapper
+    (program-file "elogind-dbus-shepherd-sync"
+                  (with-imported-modules '((gnu services herd))
+                    #~(begin
+                        (use-modules (gnu services herd)
+                                     (srfi srfi-34))
+
+                        (guard (c ((service-not-found-error? c)
+                                   (format (current-error-port)
+                                           "no elogind shepherd service~%")
+                                   (exit 1))
+                                  ((shepherd-error? c)
+                                   (format (current-error-port)
+                                           "elogind shepherd service not \
+started~%")
+                                   (exit 2)))
+                          (wait-for-service 'elogind))))))
+
+  (define build
+    (with-imported-modules '((guix build utils))
+      #~(begin
+          (use-modules (guix build utils)
+                       (ice-9 match))
+
+          (define service-directory
+            "/share/dbus-1/system-services")
+
+          (mkdir-p (dirname (string-append #$output service-directory)))
+          (copy-recursively (string-append #$elogind service-directory)
+                            (string-append #$output service-directory))
+          (symlink (string-append #$elogind "/etc") ;for etc/dbus-1
+                   (string-append #$output "/etc"))
+
+          ;; Replace the "Exec=" line of the 'org.freedesktop.login1.service'
+          ;; file with one that refers to WRAPPER instead of elogind.
+          (match (find-files #$output "\\.service$")
+            ((file)
+             (substitute* file
+               (("Exec[[:blank:]]*=.*" _)
+                (string-append "Exec=" #$wrapper "\n"))))))))
+
+  (list (computed-file "elogind-dbus-service-wrapper" build)))
 
 (define (pam-extension-procedure config)
   "Return an extension for PAM-ROOT-SERVICE-TYPE that ensures that all the PAM
diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm
index 80d08f849e..a7c845b4b0 100644
--- a/gnu/services/herd.scm
+++ b/gnu/services/herd.scm
@@ -58,7 +58,8 @@
             load-services/safe
             start-service
             stop-service
-            restart-service))
+            restart-service
+            wait-for-service))
 
 ;;; Commentary:
 ;;;
@@ -313,6 +314,39 @@ when passed a service with an already-registered name."
   (with-shepherd-action name ('restart) result
     result))
 
+(define* (wait-for-service name #:key (timeout 20))
+  "Wait for the service providing NAME, a symbol, to be up and running, and
+return its \"running value\".  Give up after TIMEOUT seconds and raise a
+'&shepherd-error' exception.  Raise a '&service-not-found-error' exception
+when NAME is not found."
+  (define (relevant-service? service)
+    (memq name (live-service-provision service)))
+
+  (define start
+    (car (gettimeofday)))
+
+  ;; Note: As of Shepherd 0.9.1, we cannot just call the 'start' method and
+  ;; wait for it: it would spawn an additional elogind process.  Thus, poll.
+  (let loop ((attempts 0))
+    (define services
+      (current-services))
+
+    (define now
+      (car (gettimeofday)))
+
+    (when (>= (- now start) timeout)
+      (raise (condition (&shepherd-error))))      ;XXX: better exception?
+
+    (match (find relevant-service? services)
+      (#f
+       (raise (condition (&service-not-found-error
+                          (service name)))))
+      (service
+       (or (live-service-running service)
+           (begin
+             (sleep 1)
+             (loop (+ attempts 1))))))))
+
 ;; Local Variables:
 ;; eval: (put 'alist-let* 'scheme-indent-function 2)
 ;; eval: (put 'with-shepherd 'scheme-indent-function 1)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index d8fe638940..90b9317510 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -57,7 +57,6 @@
   #:use-module (gnu packages messaging)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages ntp)
-  #:use-module (gnu packages wicd)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages ipfs)
   #:use-module (gnu build linux-container)
@@ -130,9 +129,6 @@
             tor-hidden-service
             tor-service-type
 
-            wicd-service-type
-            wicd-service
-
             network-manager-configuration
             network-manager-configuration?
             network-manager-configuration-dns
@@ -1094,64 +1090,6 @@ project's documentation} for more information."
 
 
 ;;;
-;;; Wicd.
-;;;
-
-(define %wicd-activation
-  ;; Activation gexp for Wicd.
-  #~(begin
-      (use-modules (guix build utils))
-
-      (mkdir-p "/etc/wicd")
-      (let ((file-name "/etc/wicd/dhclient.conf.template.default"))
-        (unless (file-exists? file-name)
-          (copy-file (string-append #$wicd file-name)
-                     file-name)))
-
-      ;; Wicd invokes 'wpa_supplicant', which needs this directory for its
-      ;; named socket files.
-      (mkdir-p "/var/run/wpa_supplicant")
-      (chmod "/var/run/wpa_supplicant" #o750)))
-
-(define (wicd-shepherd-service wicd)
-  "Return a shepherd service for WICD."
-  (list (shepherd-service
-         (documentation "Run the Wicd network manager.")
-         (provision '(networking))
-         (requirement '(user-processes dbus-system loopback))
-         (start #~(make-forkexec-constructor
-                   (list (string-append #$wicd "/sbin/wicd")
-                         "--no-daemon")))
-         (stop #~(make-kill-destructor)))))
-
-(define wicd-service-type
-  (service-type (name 'wicd)
-                (extensions
-                 (list (service-extension shepherd-root-service-type
-                                          wicd-shepherd-service)
-                       (service-extension dbus-root-service-type
-                                          list)
-                       (service-extension activation-service-type
-                                          (const %wicd-activation))
-
-                       ;; Add Wicd to the global profile.
-                       (service-extension profile-service-type list)))
-                (description
-                 "Run @url{https://launchpad.net/wicd,Wicd}, a network
-management daemon that aims to simplify wired and wireless networking.")))
-
-(define* (wicd-service #:key (wicd wicd))
-  "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
-management daemon that aims to simplify wired and wireless networking.
-
-This service adds the @var{wicd} package to the global profile, providing
-several commands to interact with the daemon and configure networking:
-@command{wicd-client}, a graphical user interface, and the @command{wicd-cli}
-and @command{wicd-curses} user interfaces."
-  (service wicd-service-type wicd))
-
-
-;;;
 ;;; ModemManager
 ;;;
 
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index dd32e58c2d..f02f6e0b8c 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -312,7 +312,9 @@ used in the image."
         (cond
          ((member 'esp flags) "0xEF")
          ((string-prefix? "ext" file-system) "0x83")
-         ((string=? file-system "vfat") "0x0E")
+         ((or (string=? file-system "vfat")
+              (string=? file-system "fat16")) "0x0E")
+         ((string=? file-system "fat32") "0x0C")
          (else
           (raise (condition
                   (&message
@@ -329,7 +331,9 @@ used in the image."
         (cond
          ((member 'esp flags) "U")
          ((string-prefix? "ext" file-system) "L")
-         ((string=? file-system "vfat") "F")
+         ((or (string=? file-system "vfat")
+              (string=? file-system "fat16")
+              (string=? file-system "fat32")) "F")
          (else
           (raise (condition
                   (&message
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index eeb0f68c02..24077e347a 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -129,8 +129,7 @@ containerized OS.  EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
                  static-networking-service-type
                  dhcp-client-service-type
                  network-manager-service-type
-                 connman-service-type
-                 wicd-service-type)
+                 connman-service-type)
                 (list))))
 
   (define services-to-add